File: example.lp

package info (click to toggle)
gringo 5.8.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 32,128 kB
  • sloc: cpp: 210,867; ansic: 37,507; python: 11,271; yacc: 825; javascript: 627; sh: 368; xml: 364; makefile: 102
file content (18 lines) | stat: -rw-r--r-- 448 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#show in/2.

{in(X,Y)} :- edge(X,Y).

&cannot {"pick outgoing edges %->% and %->%",X,Y,X,Z}
:- in(X,Y), in(X,Z), Y!=Z.
&cannot {"pick incoming edges %->% and %->%",X,Z,Y,Z}
:- in(X,Z), in(Y,Z), X!=Y.

reached(X) :- in(1,X).
reached(Y) :- reached(X), in(X,Y).

&cannot {"reach vertex % from vertex 1",X}
:- vtx(X), not reached(X).

vtx(1). vtx(2). vtx(3). vtx(4). vtx(5).
edge(1,2). edge(2,3). edge(2,4).
edge(3,1). edge(3,4). edge(4,3). edge(4,1).