@ FII

Laborator 11


Exerciții de antrenament:

Exerciții propuse:

Definiți un interpretor pentru λ-calcul în Coq și testați implementarea pe câteva exemple interesante.

  1. (1 punct) Definiți sintaxa pentru λ-calcul.
  2. (1 punct) Definiți cele două tipuri de substituții (cea care nu evită capturarea și cea care evită capturarea).
  3. (1 punct) Definiți regula de β-reducere.
  4. (1 punct) Implementați strategia CBN și testați această strategie pe 2 exemple netriviale.
  5. (1 punct) Implementați strategia CBV și testați această strategie pe 2 exemple netriviale.
  6. (3 puncte) Formulați și demonstrați o teoremă de confluență pentru lambda calcul (adică, demonstrați că dacă o λ-expresie e se reduce atât la e1 cât și la e2, atunci există e' astfel încât e1 și e2 se reduc la e').

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