Update examples
This updates the examples to showcase the scope of anthem’s feature set. New examples are added concerning placeholders, hiding predicates, and simplifications related to integer variables.
This commit is contained in:
parent
bb9013e7c5
commit
d60e2a736b
|
@ -0,0 +1,2 @@
|
||||||
|
p(a).
|
||||||
|
{q(a)}.
|
|
@ -1,10 +1,18 @@
|
||||||
#external color(1).
|
% assign a set of colors to each vertex
|
||||||
#external edge(2).
|
|
||||||
#external vertex(1).
|
|
||||||
#show color/2.
|
|
||||||
|
|
||||||
{color(V, C)} :- vertex(V), color(C).
|
{color(V, C)} :- vertex(V), color(C).
|
||||||
|
|
||||||
|
% at most one color per vertex
|
||||||
|
:- color(V, C1), color(V, C2), C1 != C2.
|
||||||
|
|
||||||
|
% at least one color per vertex
|
||||||
covered(V) :- color(V, _).
|
covered(V) :- color(V, _).
|
||||||
:- vertex(V), not covered(V).
|
:- vertex(V), not covered(V).
|
||||||
|
|
||||||
|
% adjacent vertices don’t share the same color
|
||||||
:- color(V1, C), color(V2, C), edge(V1, V2).
|
:- color(V1, C), color(V2, C), edge(V1, V2).
|
||||||
:- color(V, C1), color(V, C2), C1 != C2.
|
|
||||||
|
#show color/2.
|
||||||
|
|
||||||
|
#external vertex(1).
|
||||||
|
#external edge(2).
|
||||||
|
#external color(1).
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
letter(a).
|
||||||
|
letter(b).
|
||||||
|
letter(c).
|
||||||
|
|
||||||
|
{p(1..3, Y)} :- letter(Y).
|
||||||
|
:- p(X1, Y), p(X2, Y), X1 != X2.
|
||||||
|
|
||||||
|
q(X) :- p(X, _).
|
||||||
|
:- X = 1..3, not q(X).
|
||||||
|
|
||||||
|
#show p/2.
|
|
@ -1,3 +1,5 @@
|
||||||
|
#show p/2.
|
||||||
|
|
||||||
{p(1..n, 1..n)}.
|
{p(1..n, 1..n)}.
|
||||||
|
|
||||||
:- p(X, Y1), p(X, Y2), Y1 != Y2.
|
:- p(X, Y1), p(X, Y2), Y1 != Y2.
|
||||||
|
@ -8,5 +10,3 @@ q2(Y) :- p(_, Y).
|
||||||
|
|
||||||
:- not q1(X), X = 1..n.
|
:- not q1(X), X = 1..n.
|
||||||
:- not q2(Y), Y = 1..n.
|
:- not q2(Y), Y = 1..n.
|
||||||
|
|
||||||
#show p/2.
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
#show in/2.
|
||||||
|
|
||||||
{in(1..n, 1..r)}.
|
{in(1..n, 1..r)}.
|
||||||
covered(I) :- in(I, S).
|
covered(I) :- in(I, S).
|
||||||
|
|
||||||
:- I = 1..n, not covered(I).
|
:- I = 1..n, not covered(I).
|
||||||
:- in(I, S), in(J, S), in(I + J, S).
|
:- in(I, S), in(J, S), in(I + J, S).
|
||||||
|
|
||||||
#show in/2.
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
s(X) :- p(X).
|
||||||
|
s(X) :- q(X).
|
||||||
|
u(X) :- r(X), not s(X).
|
||||||
|
|
||||||
|
#show u/1.
|
||||||
|
|
||||||
|
#external p(1).
|
||||||
|
#external q(1).
|
||||||
|
#external r(1).
|
|
@ -0,0 +1,5 @@
|
||||||
|
s(X) :- p(X).
|
||||||
|
s(X) :- q(X).
|
||||||
|
|
||||||
|
#external p(1).
|
||||||
|
#external q(1).
|
Loading…
Reference in New Issue