ECLiPSe Constraint Logic Programming System [sepia parallel mps] Version 4.0.2, Copyright ECRC GmbH and ICL/IC-Parc, Fri Jul 28 15:30 1998 [eclipse 1]: [pref]. grounder.pl compiled traceable 8888 bytes in 0.00 seconds pp.pl compiled traceable 7804 bytes in 0.00 seconds dlv.pl compiled traceable 3964 bytes in 0.00 seconds smodels.pl compiled traceable 1232 bytes in 0.00 seconds pref.pl compiled traceable 26696 bytes in 0.02 seconds yes. [eclipse 2]: lp2dlv('Examples/penguin'). -- Input Clauses -- penguin(tweety). bird(tweety). flies(tweety) :- name(1), not neg flies(tweety), bird(tweety). neg flies(tweety) :- name(2), not flies(tweety), penguin(tweety). 1 < 2. == Leaving : penguin(tweety) : untouched Leaving : bird(tweety) : untouched Leaving : (1 < 2) : untouched -- Intermediate Rules -- penguin(tweety). bird(tweety). flies(tweety) :- ap(1). ap(1) :- name(1), ok(1), not neg flies(tweety), bird(tweety). bl(1) :- ok(1), neg flies(tweety). bl(1) :- ok(1), not bird(tweety). neg flies(tweety) :- ap(2). ap(2) :- name(2), ok(2), not flies(tweety), penguin(tweety). bl(2) :- ok(2), flies(tweety). bl(2) :- ok(2), not penguin(tweety). 1 < 2. ok(N) :- name(N), oko(N, 1), oko(N, 2). oko(N, M) :- name(N), name(M), not N < M. oko(N, M) :- name(N), name(M), N < M, ap(M). oko(N, M) :- name(N), name(M), N < M, bl(M). neg M < N :- name(N), name(M), N < M. N < M :- name(N), name(M), name(O), N < O, O < M. == Leaving : penguin(tweety) : untouched Leaving : bird(tweety) : untouched Leaving : (1 < 2) : untouched -- Output Procedures -- penguin(tweety). bird(tweety). flies(tweety) :- ap(1). neg_flies(tweety) :- ap(2). ap(1) :- ok(1), not neg_flies(tweety), bird(tweety). ap(2) :- ok(2), not flies(tweety), penguin(tweety). ok(N) :- name(N), oko(N, 1), oko(N, 2). bl(1) :- ok(1), neg_flies(tweety). bl(1) :- ok(1), not bird(tweety). bl(2) :- ok(2), flies(tweety). bl(2) :- ok(2), not penguin(tweety). prec(1, 2). neg_prec(M, N) :- name(N), name(M), prec(N, M). prec(N, M) :- name(N), name(M), name(O), prec(N, O), prec(O, M). oko(N, M) :- name(N), name(M), not prec(N, M). oko(N, M) :- name(N), name(M), prec(N, M), ap(M). oko(N, M) :- name(N), name(M), prec(N, M), bl(M). false :- penguin(_5596), neg_penguin(_5596). false :- bird(_5608), neg_bird(_5608). false :- flies(_5620), neg_flies(_5620). false :- name(N), name(M), prec(N, M), neg_prec(N, M). name(2). name(1). == IDBing (for dlv) : penguin(tweety) IDBing (for dlv) : bird(tweety) IDBing (for dlv) : prec(1, 2) -- DLV Program -- true. :- false. penguin(tweety) :- true. bird(tweety) :- true. flies(tweety) :- ap(1). neg_flies(tweety) :- ap(2). ap(1) :- ok(1), not neg_flies(tweety), bird(tweety). ap(2) :- ok(2), not flies(tweety), penguin(tweety). ok(X) :- name(X), oko(X, 1), oko(X, 2). bl(1) :- ok(1), neg_flies(tweety). bl(1) :- ok(1), not bird(tweety). bl(2) :- ok(2), flies(tweety). bl(2) :- ok(2), not penguin(tweety). prec(1, 2) :- true. neg_prec(Y, X) :- name(X), name(Y), prec(X, Y). prec(X, Z) :- name(X), name(Z), name(Y), prec(X, Y), prec(Y, Z). oko(X, Y) :- name(X), name(Y), not prec(X, Y). oko(X, Y) :- name(X), name(Y), prec(X, Y), ap(Y). oko(X, Y) :- name(X), name(Y), prec(X, Y), bl(Y). false :- penguin(X), neg_penguin(X). false :- bird(X), neg_bird(X). false :- flies(X), neg_flies(X). false :- name(X), name(Y), prec(X, Y), neg_prec(X, Y). name(2). name(1). == yes. [eclipse 3]: dlv('Examples/penguin'). Calling : dlv Examples/penguin.dlv dlv [build BEN/Nov 24 1999 gcc egcs-2.91.66 19990314 (egcs-1.1.2 release)] Reading "Examples/penguin.dlv" {true, name(1), name(2), penguin(tweety), bird(tweety), ok(2), oko(1,1), oko(2,1), oko(2,2), prec(1,2), neg_prec(2,1), ap(2), neg_flies(tweety), oko(1,2), ok(1), bl(1)} -- yes. [eclipse 4]: dlv('Examples/penguin',nice). Calling : dlv -filter=penguin -filter=bird -filter=flies -filter=neg_flies -filter=false -filter=neg_penguin -filter=neg_bird Examples/penguin.dlv dlv [build BEN/Nov 24 1999 gcc egcs-2.91.66 19990314 (egcs-1.1.2 release)] Reading "Examples/penguin.dlv" {penguin(tweety), bird(tweety), neg_flies(tweety)} -- yes. [eclipse 5]: