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
2
examples/choice-rules.lp
Normal file
2
examples/choice-rules.lp
Normal file
@ -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).
|
||||||
|
11
examples/letters.lp
Normal file
11
examples/letters.lp
Normal file
@ -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.
|
|
||||||
|
9
examples/simple-external-show.lp
Normal file
9
examples/simple-external-show.lp
Normal file
@ -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).
|
5
examples/simple-external.lp
Normal file
5
examples/simple-external.lp
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
s(X) :- p(X).
|
||||||
|
s(X) :- q(X).
|
||||||
|
|
||||||
|
#external p(1).
|
||||||
|
#external q(1).
|
Loading…
Reference in New Issue
Block a user