Program w Prologu

Witam,

 

mam problem z zadaniem na studia : Ułóż procedurę przekształcającą formulę rachunku zadań do koniunkcyjnej postaci normalnej. Procedurę należy zapisać w prologu.

 

Znalazłem coś takiego, będzie git jak mu to oddam? ?

boolean(true).
boolean(false).

cnf(X, Y, Z) :-
        maplist(boolean, [X,Y,Z]),
        (\+ X; Y ; \+ Z),
        ( X ; \+ Y ; Z),
        ( X ; Y ; Z),
        ( \+ X ; \+ Y ; \+ Z)

?- cnf(X, Y, Z).
X = true,
Y = true,
Z = false