For this part, add the following query to the beginning of your file:
Require Import untypedLC.
It allows to import the definitions of lexp expressions.
- Booleans (coding of constants and basic operations)
- Natural integers (coding of some constants, successor, addition and multiplication operations, and of the test at 0)
- Couples
- Choice structure (inj1, inj2)
- Predecessor
- Factorial
- Booleans (coding of constants and basic operations)
- Natural integers (coding of some constants, successor, addition and multiplication operations, and of the test at 0)
To use polymorphic typing, you have to launch Coq with the following command:
$ coqide -impredicative-set
- Identity: id def = ΛT.λx ^ T.x
- Booleans: pbool def = ∀T. T → T → T
- True: ptr def = ΛT.λx ^ T y ^ T.x
- False: pfa def = ΛT.λx ^ T y ^ T.y
- Couples: A × B def = ∀T, (A → B → T) → T.
- Choice: A + B def = ∀T, (A → T) → (B → T) → T.
- Integers: pnat def = ∀T, (T → T) → (T → T)
- Addition, multiplication and test operations at 0.
- Calculation of the predecessor of an integer n.
Pour cette partie, il faut ajouter la requête suivante au début de votre fichier :
Require Import untypedLC.
Elle permet d'importer les définitions des expressions lexp.
- Booléens (codage des constantes et des opérations de base)
- Entiers naturels (codage de quelques constantes, des opérations successeur, addition et multiplica-tion, et du test à 0)
- Couples
- Structure de choix (inj1, inj2)
- Prédécesseur
- Factorielle
- Booléens (codage des constantes et des opérations de base)
- Entiers naturels (codage de quelques constantes, des opérations successeur, addition et multiplica-tion, et du test à 0)
Pour utliser le typage polymorphe, il faut lancer Coq avec la commande suivante :
$ coqide -impredicative-set
- L'identité : id def= ΛT.λx^T.x
- Booléens : pbool def= ∀T. T→T→T
- Vrai : ptr def= ΛT.λx^T y^T.x
- Faux : pfa def= ΛT.λx^T y^T.y
- Couples : A×B def= ∀T, (A→B→T)→T.
- Choix : A+B def = ∀T, (A→T)→(B→T)→T.
- Entiers : pnat def= ∀T, (T→T)→(T→T)
- Opérations d’addition, de multiplication et de test à 0.
- Calcul du prédécesseur d’un entier n.