Did you know ... | Search Documentation: |
Pack pac -- prolog/zdd/zdd.pl |
opp_compare(C, 1, 2)
.
?- opp_compare(C, a->b, b)
.
?- opp_compare(C, p(0,0), p(1,0))
.
?- opp_compare(C, p(1,0)-p(0,0), p(1,0)-p(1,0))
.--- only basic expressions follow ---
x x if x is nummber, string, or list. $E E (quote). @(a) {{a}} as a singleton family of a.
!E apply E without evaluating args.
--- expression ---
X + Y join (union) of X and Y
X - Y subtract Y from X
X \ Y subtract Y from X
X & Y intersection of X and Y
merge(X, Y)
merge/multiply X and Y
X * Y merge/multiply X and Y
X // Y quotient X by Y.
X / Y remainder of X by Y.
prod(X, YO)
product of X and Y
X ** Y product of X and Y
pow(X)
powerset of X
power(X)
powerset of X
set(L)
read L a singleton family {L}.
sets(X, S)
convet X in S to list of lists
*E merge all elements of a list E.
+E join all elements of a list E.
{A,B,..} family of sets [A, B, ...]
--- Boolean terms ---
cnf(F, X) X is CNF of F. dnf(F, X) X is DNF of F,
cofact(Z, t(X, 0, Y), S)
.
Having analogy Z = [X|Y] in mind.pow([a])
, psa(X)
.
?- X<<{[a]}, psa(X)
.
?- ((X << pow([a, b, c])
, zdd_rand_path(X)
)).
?- ((X << {[a], [b], [c]}, zdd_rand_path(X)
)).
?- ((X << pow([a, b, c, d, e, f, g])
, zdd_rand_path(X)
)).
a(e0,e1)
, where a is an atom,
e0 and e1 are integer expressions.
A is the list of atoms ai with suffix i (j=<i=<k),
where j and k is the value of e0 and e1.charlist(A-B, X)
.
?- charlist(a, c, X)
.
@ X = [a, b, c].
?- ((zdd_insert(a, 1, X)
, zdd_insert(b, X, X1)
, prz(X1)
)).
?- ((X<<pow([a,b,c])
, zdd_insert(x, X, X1)
, psa(X1)
)).
time(( N = 100, numlist(1, N, Ns), X<<pow(Ns), card_filter_between(50, 51, X, Y), card(Y, C)))
.The following predicates are exported, but not or incorrectly documented.