@ FII

Laborator 8


Exerciții de antrenament:

Exerciții propuse:

Se consideră cunoscută următoarea sintaxa BNF a unui limbaj de expresii:

E ::= 'O' | 'S' E | 'isZero' E | 'T' | 'F' | 'ite' E E E
  1. (1 punct) Definiți o semantică Small-Step pentru expresiile de mai sus.

  2. (2 puncte) Scrieți (în ASCII) regulile de tipizare pentru expresiile de mai sus. Exemplu:

            .
TZero ------------
           O : Nat

           e : Nat
TSucc -------------
          S e : Nat
  1. (2 puncte) Scrieți (în ASCII, ca mai sus) 2 exemple de derivări care utilizează regulile de tipizare pe care le-ați definit la exercițiul 2. Cele 2 exemple trebuie să acopere toate construcțiile limbajului de expresii.

  2. (2 puncte) Implementați regulile de la exercițiul 2 în Coq și testați implementarea pe exemplele de la exercițiul 3 (fără a folosi eauto).

  3. (8 puncte) Demonstrați proprietățile: progress (5 puncte), type preservation (1 punct) și type soundness (2 puncte) pentru limbajul de expresii.


Coq Reference Manual: https://coq.inria.fr/distrib/current/refman/