Logică și structuri discrete - Tema 6

Tema se trimite prin Campus Virtual UPT până miercuri ora 22, împreună cu exercițiile date ca temă după laborator.

Folosiți tipul de formulă propozițională definit în exercițiul de la curs:

type bform = B of bool | V of string | Neg of bform
             | And of bform * bform | Or of bform * bform

Exercițiul 1 Scrieți o funcție care ia ca parametru o formulă propozițională și o atribuire pentru (unele) propoziții, dată ca dicționar sau listă de asociere (perechi string * bool), și returnează valoarea formulei pentru atribuirea dată (true/false) sau generează excepția Failure "not constant" dacă formula nu are o valoare determinată.

Exercițiul 2 Scrieți o funcție care ia ca parametru o formulă propozițională, un nume de variabilă (șir) și o valoare booleană (true/false) si returnează o formulă în care variabila a fost substituită peste tot cu valoarea dată.
Opțional, scrieți o funcție care simplifică o formulă. Indicați pe fiecare ramură regula de simplificare folosită.


Marius Minea
Last modified: Mon Oct 31 20:25:00 EET 2016