Finding models for logic programs with Clark’ s Completion. Implementation in programming language Haskell

Author: Aleksandra Czyż

Keywords: Haskell, logic programming, Clark’s Completion, functional programming

Clark’s Completion is one of the semantics which can be used for logic programs containing negation understood as negation as failure. It is a procedure of translating logic programs into language of Classical Propositional Logic introduced by Clark in 1978. Such translation allows us to effectively establish models for considered programs. In this work I characterise steps needed to conduct Clark’s Completion, discuss its theoretical background and the way we can use it to find models for normal logic programs. Furthermore, I introduce an implementation of the whole procedure, consisting steps needed for both Clark’s Completion and establishing models. An implementation was executed with use of functional programming language Haskell. Its features let us keep the code clean and condensed. In the conclusion, I will discuss broader use of the presented procedure and future plans for its extension.