protocol

assignvarsp

Assignable variables (supporting backtracable assignement of non-variable terms) protocol.

author:
Nobukuni Kino and Paulo Moura
version:
1.0
date:
2015/7/31
compilation flags:
static

(no dependencies on other files)

Public interface

assignable/1

Makes Variable an assignable variable. Initial state will be empty.

compilation flags:
static
template:
assignable(Variable)
mode – number of proofs:
assignable(-assignvar) – one
exceptions:
Variable is not a variable: type_error(variable,Variable)

assignable/2

Makes Variable an assignable variable and sets its initial state to Value.

compilation flags:
static
template:
assignable(Variable,Value)
mode – number of proofs:
assignable(-assignvar,@nonvar) – one
exceptions:
Variable is not a variable: type_error(variable,Variable)
Value is not instantiated: instantiation_error

(<=)/2

Sets the state of the assignable variable Variable to Value (initializing the variable if needed).

compilation flags:
static
template:
Variable<=Value
mode – number of proofs:
(?assignvar)<= (@nonvar) – one
exceptions:
Value is not instantiated: instantiation_error

(=>)/2

Unifies Value with the current state of the assignable variable Variable.

compilation flags:
static
template:
Variable=>Value
mode – number of proofs:
(+assignvar)=> (?nonvar) – zero_or_one
exceptions:
Variable is not instantiated: instantiation_error

Protected interface

(none)

Private predicates

(none)

Operators

op(100,xfx,<=) (public)

op(100,xfx,=>) (public)

Remarks

(none)