Correction du Partiel LOFO – Logique Formelle
EPITA – Tous documents autorisés ∗ Juin 2005 (1h30)
Le sujet et sa correction ont été écrits par Akim Demaille.
Une copie synthétique, bien orthographiée, avec un affichage clair des résultats, sera toujours mieux notée qu’une autre demandant une quelconque forme d’effort de la part du correcteur.
1 λ -calcul
Dans ce sujet on s’intéresse aux « entiers de Church », une façon de coder les nombres naturels directement en λ-calcul, sans avoir à l’étendre avec de nouvelles constantes (comme 0 et succ ).
L’idée est simple : les entiers de Church sont des fonctions de répétition. Le nombre de Church 0 applique 0 fois son argument fonction à un argument valeur, 42 le fait 42 fois. On pose :
n = λ f · λx · ( f ) · · · ( f )
| {z }
n
foisx
1. Écrire 2 et 3.
2. Écrire une fonction succ qui prenne n et calcule n + 1.
Correction:
succ := λn · λ f · λx · f (n f x)
3. Écrire une fonction plus qui prennent deux entiers n et m et calcule n + m. Attention aux associativités.
Correction:
plus := λn · λm · λ f · λx · m f (n f x)
2 λ-calcul Simplement Typé
1. Quel est le type de 1 ? Le prouver en fournissant l’arbre de preuve.
2. Quel est le type de 2 ? Le prouver en fournissant l’arbre de preuve.
3. Quel est le type de n pour n > 2 ? Le prouver.
∗
“Tout document autorisé” signifie que notes de cours, livres, annales, etc. sont explicitement consultables pendant l’épreuve. En cas de problème contacter le lrde au 01 53 14 59 22.
1
Correction:
[ f : σ → σ]
2[x : σ]
1f x : σ
· ·
· n-times ( f ) · · · ( f )x : σ λx · ( f ) · · · ( f )x : σ → σ 1
λ f · λx · ( f ) · · · ( f )x : (σ → σ) → σ → σ 2
Dans la suite on considère que tous les entiers n ont ce dernier type qu’on abrégera ι, y compris 0 et 1.
4. Écrire le type de plus.
5. Faisons l’hypothèse de l’existence d’une fonction fois pour la multiplication. Quel est son type ?
3 Déduction Naturelle
On rappelle les règles de la déduction naturelle de la logique intuitionniste.
[A] ·
· · B ⇒I A ⇒ B
A A ⇒ B
⇒E B
⊥
⊥E A
¬ A := A ⇒ ⊥
A B
∧I A ∧ B
A ∧ B
∧ l E A
A ∧ B
∧ r E B
A ∨ l I A ∨ B
B ∨ r I
A ∨ B A ∨ B [A] ·
· · C
[B] ·
· · C ∨E C
1. Prouver que (A ⇒ A) ⇒ A ⇒ A. Qu’est-ce que ça vous rappelle ? Correction:
[A]
1⇒I
1A ⇒ A
⇒I (A ⇒ A) ⇒ A ⇒ A 2. Prouver A ⇒ B, B ⇒ C ` A ⇒ (B ∧ C).
Correction:
[A]
1A ⇒ B
⇒E B
[A]
1A ⇒ B
⇒E
B B ⇒ C
⇒E C ∧I
B ∧ C
⇒I
1A ⇒ (B ∧ C)
3. Montrer que A ∨ B, ¬ B ` A, en utilisant la négation intuitionniste.
2
Correction: On rappelle que ¬ B := B ⇒ ⊥ .
A ∨ B [A]
1[B]
2B ⇒ ⊥
⇒E
⊥
⊥E A ∨E
1A
4 Calcul des Séquents
On rappelle les règles du calcul des séquents classique.
Calcul des Séquents Classiques
Γ ` ∆
`
XΓ ` τ(∆)
Γ ` ∆
X` σ(Γ) ` ∆
Γ ` ∆
`
WΓ ` A ,∆
Γ ` ∆
W` Γ, A ` ∆
Γ ` A , A ,∆
`
CΓ ` A ,∆
Γ, A , A ` ∆
C` Γ, A ` ∆
Id