
?Result tent_is +Expr

   Maintain tentative result of arithmetic expression

Arguments
   Result              A (free or tentative) variable
   Expr                Arithmetic expression containing tentative variables

Type
   library(tentative)

Description

	
	Implementation of arithemtic invariants.
	
	This is similar to the normal arithmetic is/2 predicate, but
	evaluates the expression based on the tentative values of its
	variables.  The result is delivered as (an update to) the
	tentative value of the Result variable.  Once initiated,
	tent_is will stay active and keep updating Result's tentative
	value eagerly whenever the tentative value of any variable in
	Expression changes.
	
    

Modes and Determinism
   tent_is(+, ?) is det

Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

Examples
   
    ?- [X, Y] tent_set [3, 4], Z tent_is X + Y.
    X = X{3 -> 0}
    Y = Y{4 -> 0}
    Z = Z{7 -> 0}
    Yes (0.00s cpu)

    ?- [X, Y] tent_set [3, 4], Z tent_is X + Y, X tent_set 7.
    X = X{7 -> 0}
    Y = Y{4 -> 0}
    Z = Z{11 -> 0}
    Yes (0.00s cpu)
    

See Also
   tent_set / 2, tent_get / 2
