/*
onko(Kaava,Totuusarvo) on totta kun

1. Totuusarvo on joko 'tosi' tai 'vale'.

2. Lauselogiikan Kaava on esitetty seuraavasti:

   a. Jakamattomat atomikaavat P_i on esitetty termeinä x(V_i)
      missä V_i on oma Prolog-muuttuja kullekin i.

   b. Konjunktiot 'F/\G' eli 'F ja  G' on esitetty terminä  'ja(F,G)'.

   c. Disjunktiot 'F\/G' eli 'F tai G' on esitetty terminä 'tai(F,G)'.

   d. Negaatiot '-F' on esitetty terminä 'ei(F)'.

   Esimerkiksi kaava '(A\/B)/\-A' esitetään terminä 
   'ja(tai(x(A),x(B)),ei(x(A)))'.

3. Kaava saa Totuusarvon muuttujien V_i nykyisillä sidonnoilla.

*/

onko(x(T),T).

onko(ja(F,G),tosi):-
	onko(F,tosi),
	onko(G,tosi).
onko(ja(F,G),vale):-
	onko(tai(ei(F),ei(G)),tosi).

onko(tai(F,_),tosi):-
	onko(F,tosi).
onko(tai(_,G),tosi):-
	onko(G,tosi).
onko(tai(F,G),vale):-
	onko(ja(ei(F),ei(G)),tosi).

onko(ei(F),tosi):-
	onko(F,vale).
onko(ei(F),vale):-
	onko(F,tosi).
