Author(s): Manuel Hermenegildo, Manuel Carro.
Version: 1.7#116 (2001/8/9, 17:56:37 CEST)
Version of last change: 1.7#94 (2001/4/27, 8:37:49 CEST)
This library allows and-parallel execution of goals in (Herbrand-)independent fashion. It resembles the execution rules of &-Prolog [BibRef: iclp90-performance]. Basically, goals are run in and-parallel provided that their arguments do not share bindings, i.e., are not bound to terms which contain a common variable.
andprolog
)andprolog
)
@&(GoalA,GoalB)
GoalA
and GoalB
are run in independent and-parallel fashion. This is just a first sketch, and valid only for deterministic independent goals.
Meta-predicate with arguments: @&(goal,goal)
.
=>(A,B)
If A
is true B
is run in parallel, otherwise sequentially.
Meta-predicate with arguments: =>(goal,goal)
.
Usage: =>(A,B)
B
is of the form goal&goal
.
(andprolog:andcallable/1
)
=>(A,B)
may not conform the functionality documented.
(doc_props:doc_incomplete/1
)
indep(X)
The variables in each pair of the list
are pairwise independent.
X
Usage: indep(X)
X
are pairwise independent.
indep(X,Y)
X
and Y
are
independent, i.e., they are bound to terms which have no variables in common. For example, indep(X,Y)
holds for X=f(Z),Y=g(K)
and also for X=f(a),Y=X
(since both X
and Y
are bound to ground terms). It does not hold for X=f(Z),Y=g(Z)
and for X=Y
.
Usage: indep(X,Y)
X
and Y
do not have variables in common.
Usage: active_agents(?NumberOfAgents)
?NumberOfAgents
is an integer.
(basic_props:int/1
)
andprolog
)=>
) are not supported.
indep/1
,
indep/2
, and
ground/1
are not very efficient; they might be replaced by native versions in a future.
Go to the first, previous, next, last section, table of contents.