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)

Remarks

(none)

See also

assignvars