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 entities)
Public interface¶
assignable/1
¶
Makes Variable an assignable variable. Initial state will be empty.
Compilation flags:
static
Template:
assignable(Variable)
Mode and 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 and 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 and 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 and 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)