Exerciții Laboratorul 3, Exercițiul 8

taut/1 — test de tautologie

Laboratorul 3, Exercițiul 8 medium Calculul propozițional în PrologRecursivitate pe liste

Definiți un predicat taut/1 astfel încât, pentru orice formulă X, avem că taut(X) este true exact atunci când X este tautologie.

?- taut(imp(a, a)).
true

?- taut(imp(a, b)).
false

Hint: o formulă este tautologie dacă toate evaluările ei dau 1. Folosește all_evals/2 de la exercițiul precedent, apoi verifică că lista rezultatelor e formată doar din 1.

Te-ai blocat?
editor soluție
?-
Tastează o interogare (ex. father_of(sandra, X).) și apasă Enter — sau apasă pe un caz de test de mai jos.
Cazuri de test (3 — apasă pe unul ca să îl rulezi, sau Verifică pentru toate)
?
taut(imp(a, a)). așteptat: true
?
taut(imp(a, b)). așteptat: false
?
taut(or(a, non(a))). așteptat: true