Epistemic logic programming with
clingo
eclingo
contains 3 different solvers for epistemic logic programs following the semantics of:
- Michael Gelfond: Strong Introspection. AAAI 1991: 386-391
The input to eclingo
is a clingo
program,
where the atoms of the predicate k/1
have a special meaning.
The current implementation requires that there is a choice rule { k(A) }.
for every atom A
such that k(A)
appears in the input program.
Furthermore, k(A)
must be #shown
, as well as the atoms A
inside the k
's.
The 3 implementations are described and implemented in the files
meta.lp
, inc_meta.py
, and egc.py
in the directory eclingo
.
Some examples are available in the eclingo/examples
directory.