<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">			     %%%%%%%%%%%%
			     % Literale %
			     %%%%%%%%%%%%


:- op(550,fx,p).      %Aussagenvariable z.B.  p 3
:- op(600,fy,nicht).
:- op(620,xfy,und).   %oder :- op(630,xfx,und).
:- op(630,xfy,oder).  %oder :- op(630,xfx,oder).
:- op(800,xf,ist_Aussagenvariable).
:- op(800,xf,ist_Literal).

p _ ist_Aussagenvariable.

P ist_Literal:-
   P ist_Aussagenvariable.
nicht P  ist_Literal:-
   P ist_Aussagenvariable.



		       %%%%%%%%%%%%%%%%%%%%%%%
		       % Negationsnormalform %
		       %%%%%%%%%%%%%%%%%%%%%%%


:- op(800,xf,ist_in_NNF).

L ist_in_NNF:-
   L ist_Literal.
F und G  ist_in_NNF:-
   F ist_in_NNF,
   G ist_in_NNF.
F oder G  ist_in_NNF:-
   F ist_in_NNF,
   G ist_in_NNF.



		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		% Verwandlung in Negationsnormalform %
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


:- op(800,xfx,hat_die_NNF).

L hat_die_NNF L:-
   L ist_Literal.
nicht nicht F  hat_die_NNF G:-
   F hat_die_NNF G.
nicht (F und G)  hat_die_NNF  H oder I:-
   nicht F  hat_die_NNF  H,
   nicht G  hat_die_NNF  I.
nicht (F oder G)  hat_die_NNF  H und I:-
   nicht F  hat_die_NNF  H,
   nicht G  hat_die_NNF  I.
F und G  hat_die_NNF  H und I:-
   F hat_die_NNF H,
   G hat_die_NNF I.
F oder G  hat_die_NNF  H oder I:-
   F hat_die_NNF H,
   G hat_die_NNF I.



		      %%%%%%%%%%%%%%%%%%%%%%%%%%
		      % Disjunktive Normalform %
		      %%%%%%%%%%%%%%%%%%%%%%%%%%


:- op(800,xf,ist_Konjunktion_von_Literalen).
:- op(800,xf,ist_in_DNF).

L ist_Konjunktion_von_Literalen:-
   L ist_Literal.
L und F  ist_Konjunktion_von_Literalen:-
   L ist_Literal,
   F ist_Konjunktion_von_Literalen.

F ist_in_DNF:-
   F ist_Konjunktion_von_Literalen.
F oder G  ist_in_DNF:-
   F ist_Konjunktion_von_Literalen,
   G ist_in_DNF.



		      %%%%%%%%%%%%%%%%%%%%%%%%%%
		      % Konjunktive Normalform %
		      %%%%%%%%%%%%%%%%%%%%%%%%%%


:- op(800,xf,ist_Disjunktion_von_Literalen).
:- op(800,xf,ist_in_KNF).

L ist_Disjunktion_von_Literalen:-
   L ist_Literal.
L oder F  ist_Disjunktion_von_Literalen:-
   L ist_Literal,
   F ist_Disjunktion_von_Literalen.

F ist_in_KNF:-
   F ist_Disjunktion_von_Literalen.
F und G  ist_in_KNF:-
   F ist_Disjunktion_von_Literalen,
   G ist_in_KNF.
</pre></body></html>