Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2)...
Transcript of Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2)...
![Page 1: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/1.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
An introduction to classical realizability
Alexandre Miquel
EQUIPO
. D E . LO -GICA
U
DE L A
R
January 27th, 2017 – EJCIM’17 – Lyon
![Page 2: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/2.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Curry-Howard correspondence
The dictionary:
Proof theory Functional programming
Proposition (formula) Data typeProof (derivation) Program (or data)
p is a proof of the formula A p is a program of type A
A ∧ B, A ∨ B, A⇒ B A× B, A + B, A→ B
Deduction rule Typing ruleProof checker Type checker
Cut elimination ComputationCut-free proof Value
Proof of a lemma Sub-programTheory (statements & proofs) Module (interface & implem.)
![Page 3: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/3.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Curry-Howard correspondence
The dictionary:
Proof theory Functional programming
Proposition (formula) Data typeProof (derivation) Program (or data)
p is a proof of the formula A p is a program of type A
A ∧ B, A ∨ B, A⇒ B A× B, A + B, A→ B
Deduction rule Typing ruleProof checker Type checker
Cut elimination ComputationCut-free proof Value
Proof of a lemma Sub-programTheory (statements & proofs) Module (interface & implem.)
![Page 4: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/4.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Curry-Howard correspondence
The dictionary:
Proof theory Functional programming
Proposition (formula) Data typeProof (derivation) Program (or data)
p is a proof of the formula A p is a program of type A
A ∧ B, A ∨ B, A⇒ B A× B, A + B, A→ B
Deduction rule Typing ruleProof checker Type checker
Cut elimination ComputationCut-free proof Value
Proof of a lemma Sub-programTheory (statements & proofs) Module (interface & implem.)
![Page 5: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/5.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Curry-Howard correspondence
The dictionary:
Proof theory Functional programming
Proposition (formula) Data typeProof (derivation) Program (or data)
p is a proof of the formula A p is a program of type A
A ∧ B,
A ∨ B, A⇒ B
A× B,
A + B, A→ B
Deduction rule Typing ruleProof checker Type checker
Cut elimination ComputationCut-free proof Value
Proof of a lemma Sub-programTheory (statements & proofs) Module (interface & implem.)
![Page 6: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/6.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Curry-Howard correspondence
The dictionary:
Proof theory Functional programming
Proposition (formula) Data typeProof (derivation) Program (or data)
p is a proof of the formula A p is a program of type A
A ∧ B, A ∨ B,
A⇒ B
A× B, A + B,
A→ B
Deduction rule Typing ruleProof checker Type checker
Cut elimination ComputationCut-free proof Value
Proof of a lemma Sub-programTheory (statements & proofs) Module (interface & implem.)
![Page 7: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/7.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Curry-Howard correspondence
The dictionary:
Proof theory Functional programming
Proposition (formula) Data typeProof (derivation) Program (or data)
p is a proof of the formula A p is a program of type A
A ∧ B, A ∨ B, A⇒ B A× B, A + B, A→ B
Deduction rule Typing ruleProof checker Type checker
Cut elimination ComputationCut-free proof Value
Proof of a lemma Sub-programTheory (statements & proofs) Module (interface & implem.)
![Page 8: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/8.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Curry-Howard correspondence
The dictionary:
Proof theory Functional programming
Proposition (formula) Data typeProof (derivation) Program (or data)
p is a proof of the formula A p is a program of type A
A ∧ B, A ∨ B, A⇒ B A× B, A + B, A→ B
Deduction rule Typing ruleProof checker Type checker
Cut elimination ComputationCut-free proof Value
Proof of a lemma Sub-programTheory (statements & proofs) Module (interface & implem.)
![Page 9: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/9.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Curry-Howard correspondence
The dictionary:
Proof theory Functional programming
Proposition (formula) Data typeProof (derivation) Program (or data)
p is a proof of the formula A p is a program of type A
A ∧ B, A ∨ B, A⇒ B A× B, A + B, A→ B
Deduction rule Typing ruleProof checker Type checker
Cut elimination ComputationCut-free proof Value
Proof of a lemma Sub-programTheory (statements & proofs) Module (interface & implem.)
![Page 10: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/10.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Curry-Howard correspondence
The dictionary:
Proof theory Functional programming
Proposition (formula) Data typeProof (derivation) Program (or data)
p is a proof of the formula A p is a program of type A
A ∧ B, A ∨ B, A⇒ B A× B, A + B, A→ B
Deduction rule Typing ruleProof checker Type checker
Cut elimination ComputationCut-free proof Value
Proof of a lemma Sub-programTheory (statements & proofs) Module (interface & implem.)
![Page 11: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/11.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Core language: the λ-calculus [Church’41]
A universal language of functions
Only three constructions: variable, abstraction, application:
Language Var. Abstraction Applicationλ-calculus x λx . 〈expr〉 〈expr〉 〈expr〉Math. x x 7→ 〈expr〉 f (〈expr〉)LISP x (lambda (x) 〈expr〉) (〈expr〉 〈expr〉)Python x lambda x : 〈expr〉 〈expr〉(〈expr〉)
Computation rule = β-reduction
(λx . x + x + 18)(3× 4) �β (3× 4) + (3× 4) + 18� · · · � 42
Formally: (λx . t) u �β t{x := u}
![Page 12: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/12.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Core language: the λ-calculus [Church’41]
A universal language of functions
Only three constructions: variable, abstraction, application:
Language Var. Abstraction Applicationλ-calculus x λx . 〈expr〉 〈expr〉 〈expr〉Math. x x 7→ 〈expr〉 f (〈expr〉)LISP x (lambda (x) 〈expr〉) (〈expr〉 〈expr〉)Python x lambda x : 〈expr〉 〈expr〉(〈expr〉)
Computation rule = β-reduction
(λx . x + x + 18)(3× 4) �β (3× 4) + (3× 4) + 18� · · · � 42
Formally: (λx . t) u �β t{x := u}
![Page 13: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/13.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From proofs to programs
[∀x (Q(x)⇒ R(x))]
g
Q(x)⇒ R(x)
[∀x (P(x)⇒ Q(x))]
f
P(x)⇒ Q(x) [P(x)]
u
Q(x)
@
R(x)
@
P(x)⇒ R(x)
λu
∀x (P(x)⇒ R(x))
∀x (Q(x)⇒ R(x)) ⇒ ∀x (P(x)⇒ R(x))
λg
∀x (P(x)⇒ Q(x)) ⇒ ∀x (Q(x)⇒ R(x)) ⇒ ∀x (P(x)⇒ R(x))
λf
λf . λg . λu . g (f u)
![Page 14: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/14.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From proofs to programs
[∀x (Q(x)⇒ R(x))]
g
Q(x)⇒ R(x)
[∀x (P(x)⇒ Q(x))]
f
P(x)⇒ Q(x) [P(x)]
u
Q(x)
@
R(x)
@
P(x)⇒ R(x)
λu
∀x (P(x)⇒ R(x))
∀x (Q(x)⇒ R(x)) ⇒ ∀x (P(x)⇒ R(x))
λg
∀x (P(x)⇒ Q(x)) ⇒ ∀x (Q(x)⇒ R(x)) ⇒ ∀x (P(x)⇒ R(x))
λf
λf . λg . λu . g (f u)
![Page 15: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/15.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From proofs to programs
[∀x (Q(x)⇒ R(x))]Ax.
g
Q(x)⇒ R(x)∀-elim
[∀x (P(x)⇒ Q(x))]Ax.
f
P(x)⇒ Q(x)∀-elim
[P(x)]Ax.
u
Q(x)⇒-elim
@
R(x)⇒-elim
@
P(x)⇒ R(x)⇒-intro
λu
∀x (P(x)⇒ R(x))∀-intro
∀x (Q(x)⇒ R(x)) ⇒ ∀x (P(x)⇒ R(x))⇒-intro
λg
∀x (P(x)⇒ Q(x)) ⇒ ∀x (Q(x)⇒ R(x)) ⇒ ∀x (P(x)⇒ R(x))⇒-intro
λf
λf . λg . λu . g (f u)
![Page 16: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/16.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From proofs to programs
[∀x (Q(x)⇒ R(x))]g
Q(x)⇒ R(x)
[∀x (P(x)⇒ Q(x))]f
P(x)⇒ Q(x) [P(x)]u
Q(x)@
R(x)@
P(x)⇒ R(x)λu
∀x (P(x)⇒ R(x))
∀x (Q(x)⇒ R(x)) ⇒ ∀x (P(x)⇒ R(x))λg
∀x (P(x)⇒ Q(x)) ⇒ ∀x (Q(x)⇒ R(x)) ⇒ ∀x (P(x)⇒ R(x))λf
λf . λg . λu . g (f u)
![Page 17: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/17.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From proofs to programs
[∀x (Q(x)⇒ R(x))]g
Q(x)⇒ R(x)
[∀x (P(x)⇒ Q(x))]f
P(x)⇒ Q(x) [P(x)]u
Q(x)@
R(x)@
P(x)⇒ R(x)λu
∀x (P(x)⇒ R(x))
∀x (Q(x)⇒ R(x)) ⇒ ∀x (P(x)⇒ R(x))λg
∀x (P(x)⇒ Q(x)) ⇒ ∀x (Q(x)⇒ R(x)) ⇒ ∀x (P(x)⇒ R(x))λf
λf . λg . λu . g (f u)
![Page 18: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/18.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Significance of the Curry-Howard correspondence
Theoretical impact on:
Proof theoryConstructive mathematicsCategory theoryDenotational semanticsFunctional programming
Theoretical by-products:
Type theory (Martin-Lof),Linear logic (Girard)
Applications:
Proof assistants: Coq, AgdaProgram certificationProgram extraction
![Page 19: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/19.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Significance of the Curry-Howard correspondence
Theoretical impact on:
Proof theoryConstructive mathematicsCategory theoryDenotational semanticsFunctional programming
Theoretical by-products:
Type theory (Martin-Lof),Linear logic (Girard)
Applications:
Proof assistants: Coq, AgdaProgram certificationProgram extraction
![Page 20: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/20.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From intuitionistic logic to classical logic (1/2)
For a long time, the Curry-Howard correspondence was limited tointuitionistic logic and constructive mathematics, since it was(thought to be) incompatible with classical reasoning principles,such as for instance:
The law of excluded middle: A ∨ ¬ADouble-negation elimination: ¬¬A⇒ A
Reductio ad absurdum: from the absurdity of ¬A, deduce A
Most De Morgan laws, e.g.: ¬(A ∧ B)⇒ ¬A ∨ ¬BPeirce’s law: ((A⇒ B)⇒ A)⇒ A
The full axiom of choice
However, a lot of interesting mathematics can be formalized inintuitionistic logic (i.e. without using classical reasoning)
![Page 21: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/21.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From intuitionistic logic to classical logic (2/2)
In 1990, Griffin’s discovered a connection between classical reasoningand control operators (call/cc)
call/cc : ((A⇒ B)⇒ A)⇒ A (Peirce’s law)
A new paradigm for the Curry-Howard correspondence:
Classical reasoning = programming with continuations= computing by trial/error
Many classical λ-calculi:
λµ [Parigot 1992]λ-sym [Barbanera & Berardi 1996]λc [Krivine 1994]λµµ [Curien & Herbelin 2000]
Classical realizability [Krivine ’00, ’03, ’09]
![Page 22: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/22.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From intuitionistic logic to classical logic (2/2)
In 1990, Griffin’s discovered a connection between classical reasoningand control operators (call/cc)
call/cc : ((A⇒ B)⇒ A)⇒ A (Peirce’s law)
A new paradigm for the Curry-Howard correspondence:
Classical reasoning = programming with continuations= computing by trial/error
Many classical λ-calculi:
λµ [Parigot 1992]λ-sym [Barbanera & Berardi 1996]λc [Krivine 1994]λµµ [Curien & Herbelin 2000]
Classical realizability [Krivine ’00, ’03, ’09]
![Page 23: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/23.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From intuitionistic logic to classical logic (2/2)
In 1990, Griffin’s discovered a connection between classical reasoningand control operators (call/cc)
call/cc : ((A⇒ B)⇒ A)⇒ A (Peirce’s law)
A new paradigm for the Curry-Howard correspondence:
Classical reasoning = programming with continuations= computing by trial/error
Many classical λ-calculi:
λµ [Parigot 1992]λ-sym [Barbanera & Berardi 1996]λc [Krivine 1994]λµµ [Curien & Herbelin 2000]
Classical realizability [Krivine ’00, ’03, ’09]
![Page 24: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/24.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
What is classical realizability?
An operational semantics for the programs extracted from classicalproofs, formulated using the tools of model theory
Based on the connection between Peirce’s law and call/cc
Allows to predict the behavior of classical programs
Interprets the Axiom of Dependent Choices (DC) [K. 2003]
Initially designed for PA2, but extends to:
Higher-order arithmetic (PAω)
Zermelo-Fraenkel set theory (ZF) [K. 2001, 2012]
The calculus of inductive constructions (CIC) [M. 2007](with classical logic in Prop)
Deep connections with Cohen forcing [K. 2011]
can be used to define new models of PA2/ZF [K. 2012]
![Page 25: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/25.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
What is classical realizability?
An operational semantics for the programs extracted from classicalproofs, formulated using the tools of model theory
Based on the connection between Peirce’s law and call/cc
Allows to predict the behavior of classical programs
Interprets the Axiom of Dependent Choices (DC) [K. 2003]
Initially designed for PA2, but extends to:
Higher-order arithmetic (PAω)
Zermelo-Fraenkel set theory (ZF) [K. 2001, 2012]
The calculus of inductive constructions (CIC) [M. 2007](with classical logic in Prop)
Deep connections with Cohen forcing [K. 2011]
can be used to define new models of PA2/ZF [K. 2012]
![Page 26: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/26.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
What is classical realizability?
An operational semantics for the programs extracted from classicalproofs, formulated using the tools of model theory
Based on the connection between Peirce’s law and call/cc
Allows to predict the behavior of classical programs
Interprets the Axiom of Dependent Choices (DC) [K. 2003]
Initially designed for PA2, but extends to:
Higher-order arithmetic (PAω)
Zermelo-Fraenkel set theory (ZF) [K. 2001, 2012]
The calculus of inductive constructions (CIC) [M. 2007](with classical logic in Prop)
Deep connections with Cohen forcing [K. 2011]
can be used to define new models of PA2/ZF [K. 2012]
![Page 27: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/27.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Plan
1 Introduction
2 Second-order arithmetic (PA2)
3 Extracted programs
4 The classical realizability interpretation
5 Witness extraction
![Page 28: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/28.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Plan
1 Introduction
2 Second-order arithmetic (PA2)
3 Extracted programs
4 The classical realizability interpretation
5 Witness extraction
![Page 29: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/29.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The language of (minimal) second-order logic
Second-order logic deals with two kinds of objects:
1st-order objects = individuals (i.e. basic objects of the theory)
2nd-order objects = k-ary relations over individuals
First-order terms and formulas
First-order terms
Formulas
e, e′ ::= x | f (e1, . . . , ek)
A,B ::= X (e1, . . . , ek) | A⇒ B| ∀x A | ∀X A
Two kinds of variables
1st-order variables: x , y , z , . . .2nd-order variables: X , Y , Z , . . . of all arities k ≥ 0
2nd-order arithmetic: individuals represent natural numbers
![Page 30: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/30.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The language of (minimal) second-order logic
Second-order logic deals with two kinds of objects:
1st-order objects = individuals (i.e. basic objects of the theory)
2nd-order objects = k-ary relations over individuals
First-order terms and formulas
First-order terms
Formulas
e, e′ ::= x | f (e1, . . . , ek)
A,B ::= X (e1, . . . , ek) | A⇒ B| ∀x A | ∀X A
Two kinds of variables
1st-order variables: x , y , z , . . .2nd-order variables: X , Y , Z , . . . of all arities k ≥ 0
2nd-order arithmetic: individuals represent natural numbers
![Page 31: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/31.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
First-order terms (1/2)
Defined from a first-order signature Σ (as usual):
First-order terms e, e′ ::= x | f (e1, . . . , ek)
f ranges over k-ary function symbols in Σconstant symbol = function symbol of arity 0
In what follows we assume that the signature Σ contains:
a constant symbol 0 (zero)a unary function symbol s (successor)binary function symbols +, ×, − (truncated subtraction)
function symbols for all primitive recursive functions (more generally)
Peano numerals: s(· · · s︸ ︷︷ ︸n
(0) · · · ) written n (n ∈ N)
First-order substitution written: e{x := e′}
![Page 32: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/32.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
First-order terms (1/2)
Defined from a first-order signature Σ (as usual):
First-order terms e, e′ ::= x | f (e1, . . . , ek)
f ranges over k-ary function symbols in Σconstant symbol = function symbol of arity 0
In what follows we assume that the signature Σ contains:
a constant symbol 0 (zero)a unary function symbol s (successor)binary function symbols +, ×, − (truncated subtraction)
function symbols for all primitive recursive functions (more generally)
Peano numerals: s(· · · s︸ ︷︷ ︸n
(0) · · · ) written n (n ∈ N)
First-order substitution written: e{x := e′}
![Page 33: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/33.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
First-order terms (1/2)
Defined from a first-order signature Σ (as usual):
First-order terms e, e′ ::= x | f (e1, . . . , ek)
f ranges over k-ary function symbols in Σconstant symbol = function symbol of arity 0
In what follows we assume that the signature Σ contains:
a constant symbol 0 (zero)a unary function symbol s (successor)binary function symbols +, ×, − (truncated subtraction)
function symbols for all primitive recursive functions (more generally)
Peano numerals: s(· · · s︸ ︷︷ ︸n
(0) · · · ) written n (n ∈ N)
First-order substitution written: e{x := e′}
![Page 34: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/34.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
First-order terms (1/2)
Defined from a first-order signature Σ (as usual):
First-order terms e, e′ ::= x | f (e1, . . . , ek)
f ranges over k-ary function symbols in Σconstant symbol = function symbol of arity 0
In what follows we assume that the signature Σ contains:
a constant symbol 0 (zero)a unary function symbol s (successor)binary function symbols +, ×, − (truncated subtraction)
function symbols for all primitive recursive functions (more generally)
Peano numerals: s(· · · s︸ ︷︷ ︸n
(0) · · · ) written n (n ∈ N)
First-order substitution written: e{x := e′}
![Page 35: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/35.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
First-order terms (2/2)
Each k-ary function symbol f is interpreted by the correspondingprimitive recursive function, written
f N : Nk → N
The constant symbol 0 is interpreted by 0N = 0 (∈ N)
The denotation in N (i.e. the value) of a closed first-order term eis written eN. For instance:
0N = 04N = (s(s(s(s(0)))))N = 4
((2− 3) + s(3× 4))N = 13
![Page 36: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/36.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
First-order terms (2/2)
Each k-ary function symbol f is interpreted by the correspondingprimitive recursive function, written
f N : Nk → N
The constant symbol 0 is interpreted by 0N = 0 (∈ N)
The denotation in N (i.e. the value) of a closed first-order term eis written eN. For instance:
0N = 04N = (s(s(s(s(0)))))N = 4
((2− 3) + s(3× 4))N = 13
![Page 37: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/37.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Formulas (1/2)
Formulas of minimal second-order logic
Formulas A,B ::= X (e1, . . . , ek) | A⇒ B| ∀x A | ∀X A
only based on implication and 1st/2nd-order universal quantification
Implication is right-associative:
A1 ⇒ · · · ⇒ An ⇒ B means A1 ⇒ (· · · ⇒ (An ⇒ B) · · · )
The above formula is equivalent to (A1 ∧ · · · ∧ An)⇒ Bbut without using conjunction
Two kinds of substitutions:
1st-order substitution, written A{x := e} (capture avoiding)
2nd-order substitution, written A{X := P} (postponed)
![Page 38: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/38.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Formulas (1/2)
Formulas of minimal second-order logic
Formulas A,B ::= X (e1, . . . , ek) | A⇒ B| ∀x A | ∀X A
only based on implication and 1st/2nd-order universal quantification
Implication is right-associative:
A1 ⇒ · · · ⇒ An ⇒ B means A1 ⇒ (· · · ⇒ (An ⇒ B) · · · )
The above formula is equivalent to (A1 ∧ · · · ∧ An)⇒ Bbut without using conjunction
Two kinds of substitutions:
1st-order substitution, written A{x := e} (capture avoiding)
2nd-order substitution, written A{X := P} (postponed)
![Page 39: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/39.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Formulas (1/2)
Formulas of minimal second-order logic
Formulas A,B ::= X (e1, . . . , ek) | A⇒ B| ∀x A | ∀X A
only based on implication and 1st/2nd-order universal quantification
Implication is right-associative:
A1 ⇒ · · · ⇒ An ⇒ B means A1 ⇒ (· · · ⇒ (An ⇒ B) · · · )
The above formula is equivalent to (A1 ∧ · · · ∧ An)⇒ Bbut without using conjunction
Two kinds of substitutions:
1st-order substitution, written A{x := e} (capture avoiding)
2nd-order substitution, written A{X := P} (postponed)
![Page 40: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/40.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Formulas (2/2)
Other connectives/quantifiers defined via second-order encodings:
⊥ ≡ ∀Z Z¬A ≡ A⇒ ⊥
A ∧ B ≡ ∀Z ((A⇒ B ⇒ Z)⇒ Z)A ∨ B ≡ ∀Z ((A⇒ Z)⇒ (B ⇒ Z)⇒ Z)
A⇔ B ≡ (A⇒ B) ∧ (B ⇒ A)
∃x A(x) ≡ ∀Z (∀x (A(x)⇒ Z)⇒ Z)∃X A(X ) ≡ ∀Z (∀X (A(X )⇒ Z)⇒ Z)
e1 = e2 ≡ ∀Z (Z(e1)⇒ Z(e2))
(absurdity)(negation)
(conjunction)(disjunction)
(equivalence)
(1st-order ∃)(2nd-order ∃)
(Leibniz equality)
We could also have used the De Morgan laws
A ∧ B ≡ ¬(A⇒ B ⇒ ⊥) ∃x A(x) ≡ ¬∀x ¬A(x)
A ∨ B ≡ ¬A⇒ ¬B ⇒ ⊥ ∃X A(x) ≡ ¬∀X ¬A(X )
that are classically equivalent
![Page 41: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/41.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Formulas (2/2)
Other connectives/quantifiers defined via second-order encodings:
⊥ ≡ ∀Z Z¬A ≡ A⇒ ⊥
A ∧ B ≡ ∀Z ((A⇒ B ⇒ Z)⇒ Z)A ∨ B ≡ ∀Z ((A⇒ Z)⇒ (B ⇒ Z)⇒ Z)
A⇔ B ≡ (A⇒ B) ∧ (B ⇒ A)
∃x A(x) ≡ ∀Z (∀x (A(x)⇒ Z)⇒ Z)∃X A(X ) ≡ ∀Z (∀X (A(X )⇒ Z)⇒ Z)
e1 = e2 ≡ ∀Z (Z(e1)⇒ Z(e2))
(absurdity)(negation)
(conjunction)(disjunction)
(equivalence)
(1st-order ∃)(2nd-order ∃)
(Leibniz equality)
We could also have used the De Morgan laws
A ∧ B ≡ ¬(A⇒ B ⇒ ⊥) ∃x A(x) ≡ ¬∀x ¬A(x)
A ∨ B ≡ ¬A⇒ ¬B ⇒ ⊥ ∃X A(x) ≡ ¬∀X ¬A(X )
that are classically equivalent
![Page 42: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/42.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Predicates
Concrete relations are represented using predicates (syntactic sugar)
Predicates P,Q ::= x1 · · · xkA0 (of arity k)
Definition (Predicate application and 2nd-order substitution)
1 P(e1, . . . , ek) is the formula defined by
P(e1, . . . , ek) ≡ A0{x1 := e1, . . . , xk := ek}
where P ≡ x1 · · · xkA0, and where e1, . . . , ek are k first-order terms
2 2nd-order substitution A{X := P} (where X and P are of the same arity k)
consists to replace in the formula A every atomic sub-formula of the form
X (e1, . . . , ek) by the formula P(e1, . . . , ek)
Note: Every k-ary 2nd-order variable X can be seen as a predicate:
X ≡ x1 · · · xkX (x1, . . . , xk)
![Page 43: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/43.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Predicates
Concrete relations are represented using predicates (syntactic sugar)
Predicates P,Q ::= x1 · · · xkA0 (of arity k)
Definition (Predicate application and 2nd-order substitution)
1 P(e1, . . . , ek) is the formula defined by
P(e1, . . . , ek) ≡ A0{x1 := e1, . . . , xk := ek}
where P ≡ x1 · · · xkA0, and where e1, . . . , ek are k first-order terms
2 2nd-order substitution A{X := P} (where X and P are of the same arity k)
consists to replace in the formula A every atomic sub-formula of the form
X (e1, . . . , ek) by the formula P(e1, . . . , ek)
Note: Every k-ary 2nd-order variable X can be seen as a predicate:
X ≡ x1 · · · xkX (x1, . . . , xk)
![Page 44: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/44.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Predicates
Concrete relations are represented using predicates (syntactic sugar)
Predicates P,Q ::= x1 · · · xkA0 (of arity k)
Definition (Predicate application and 2nd-order substitution)
1 P(e1, . . . , ek) is the formula defined by
P(e1, . . . , ek) ≡ A0{x1 := e1, . . . , xk := ek}
where P ≡ x1 · · · xkA0, and where e1, . . . , ek are k first-order terms
2 2nd-order substitution A{X := P} (where X and P are of the same arity k)
consists to replace in the formula A every atomic sub-formula of the form
X (e1, . . . , ek) by the formula P(e1, . . . , ek)
Note: Every k-ary 2nd-order variable X can be seen as a predicate:
X ≡ x1 · · · xkX (x1, . . . , xk)
![Page 45: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/45.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Predicates
Concrete relations are represented using predicates (syntactic sugar)
Predicates P,Q ::= x1 · · · xkA0 (of arity k)
Definition (Predicate application and 2nd-order substitution)
1 P(e1, . . . , ek) is the formula defined by
P(e1, . . . , ek) ≡ A0{x1 := e1, . . . , xk := ek}
where P ≡ x1 · · · xkA0, and where e1, . . . , ek are k first-order terms
2 2nd-order substitution A{X := P} (where X and P are of the same arity k)
consists to replace in the formula A every atomic sub-formula of the form
X (e1, . . . , ek) by the formula P(e1, . . . , ek)
Note: Every k-ary 2nd-order variable X can be seen as a predicate:
X ≡ x1 · · · xkX (x1, . . . , xk)
![Page 46: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/46.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Unary predicates as sets
Unary predicates represent sets of individuals
Syntactic sugar: {x : A} ≡ xA, e ∈ P ≡ P(e)
Example: The set N of Dedekind numerals
N ≡ {x : ∀Z (0 ∈ Z ⇒ ∀y (y ∈ Z ⇒ s(y) ∈ Z )⇒ x ∈ Z}
Relativized quantifications:
(∀x ∈P)A(x) ≡ ∀x (x ∈ P ⇒ A(x))
(∃x ∈P)A(x) ≡ ∀Z (∀x (x ∈ P ⇒ A(x)⇒ Z)⇒ Z)⇔ ∃x (x ∈ P ∧ A(x))
Inclusion and extensional equality:
P ⊆ Q ≡ ∀x (x ∈ P ⇒ x ∈ Q)P = Q ≡ ∀x (x ∈ P ⇔ x ∈ Q)
Set constructors: P ∪ Q ≡ {x : x ∈ P ∨ x ∈ Q} (etc.)
![Page 47: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/47.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Unary predicates as sets
Unary predicates represent sets of individuals
Syntactic sugar: {x : A} ≡ xA, e ∈ P ≡ P(e)
Example: The set N of Dedekind numerals
N ≡ {x : ∀Z (0 ∈ Z ⇒ ∀y (y ∈ Z ⇒ s(y) ∈ Z )⇒ x ∈ Z}
Relativized quantifications:
(∀x ∈P)A(x) ≡ ∀x (x ∈ P ⇒ A(x))
(∃x ∈P)A(x) ≡ ∀Z (∀x (x ∈ P ⇒ A(x)⇒ Z)⇒ Z)⇔ ∃x (x ∈ P ∧ A(x))
Inclusion and extensional equality:
P ⊆ Q ≡ ∀x (x ∈ P ⇒ x ∈ Q)P = Q ≡ ∀x (x ∈ P ⇔ x ∈ Q)
Set constructors: P ∪ Q ≡ {x : x ∈ P ∨ x ∈ Q} (etc.)
![Page 48: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/48.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Unary predicates as sets
Unary predicates represent sets of individuals
Syntactic sugar: {x : A} ≡ xA, e ∈ P ≡ P(e)
Example: The set N of Dedekind numerals
N ≡ {x : ∀Z (0 ∈ Z ⇒ ∀y (y ∈ Z ⇒ s(y) ∈ Z )⇒ x ∈ Z}
Relativized quantifications:
(∀x ∈P)A(x) ≡ ∀x (x ∈ P ⇒ A(x))
(∃x ∈P)A(x) ≡ ∀Z (∀x (x ∈ P ⇒ A(x)⇒ Z)⇒ Z)⇔ ∃x (x ∈ P ∧ A(x))
Inclusion and extensional equality:
P ⊆ Q ≡ ∀x (x ∈ P ⇒ x ∈ Q)P = Q ≡ ∀x (x ∈ P ⇔ x ∈ Q)
Set constructors: P ∪ Q ≡ {x : x ∈ P ∨ x ∈ Q} (etc.)
![Page 49: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/49.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Sequents
Definition (Sequent)
A sequent is a pair of the form
A1, . . . ,An ` A (n ≥ 0)
where A1, . . . ,An,A are formulas
A1, . . . ,An are the hypotheses, which form the context
A is the thesis
` is the entailment symbol (that reads: ‘entails’)
Sequents are usually written Γ ` A (Γ finite list of formulas)
Γ ` A means: “under the hypotheses in Γ, the formula A holds”
Notations FV (Γ), Γ{x := t} extended to finite lists Γ
![Page 50: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/50.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Rules of inference & systems of deduction
Definition (Rule of inference)
A rule of inference is a pair formed by a finite set of sequents{Γ1 ` A1, . . . , Γn ` An} and a sequent Γ ` A, usually written
Γ1 ` A1 · · · Γn ` An
Γ ` A
Γ1 ` A1, . . . , Γn ` An are the premises of the rule (n ≥ 0)
Γ ` A is the conclusion of the rule
Definition (System of deduction)
A system of deduction is a set of inference rules
![Page 51: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/51.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Natural deduction for classical 2nd-order logic (NK2)
Here, we work in system NK2, whose deduction rules are:
(Axiom) Γ ` Aif A∈Γ
(⇒-intro,elim)
Γ,A ` B
Γ ` A⇒ BΓ ` A⇒ B Γ ` A
Γ ` B
(∀1-intro,elim)Γ ` A
Γ ` ∀x Aif x /∈FV (Γ)
Γ ` ∀x AΓ ` A{x := e}
(∀2-intro,elim)Γ ` A
Γ ` ∀X Aif X /∈FV (Γ)
Γ ` ∀X AΓ ` A{X := P}
(Peirce’s law) Γ ` ((A⇒ B)⇒ A)⇒ A
System NK2 contains the usual rules of intuitionistic 2nd-order logic(NJ2), plus Peirce’s law, for classical reasoning
![Page 52: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/52.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Derivations
Deduction rules are the elementary bricks of reasoning. They can beassembled to form derivations (finite sequent-labelled trees)
Example: derivation of the syllogism Barbara
Γ3 ` ∀x (Q(x)⇒ R(x))(axiom)
Γ3 ` Q(x)⇒ R(x)(∀1-elim)
Γ3 ` ∀x (P(x)⇒ Q(x))(axiom)
Γ3 ` P(x)⇒ Q(x)(∀1-elim)
Γ3 ` P(x)(axiom)
Γ3 ` Q(x)(⇒-elim)
Γ3 ` R(x)(⇒-elim)
Γ2 ` P(x)⇒ R(x)(⇒-intro)
Γ2 ` ∀x (P(x)⇒ R(x))(∀1-intro)
Γ1 ` ∀x (Q(x)⇒ R(x))⇒ ∀x (P(x)⇒ R(x))(⇒-intro)
` ∀x (P(x)⇒ Q(x))⇒ ∀x (Q(x)⇒ R(x))⇒ ∀x (P(x)⇒ R(x))(⇒-intro)
with Γ1 ≡ ∀x (P(x)⇒ Q(x)), Γ2 ≡ Γ1, ∀x (Q(x)⇒ R(x)), Γ3 ≡ Γ2,P(x)
A sequent Γ ` A is derivable when it appears as the conclusion of aderivation. A formula A is derivable when the sequent ` A is
Remark: One also uses proof/provable for derivation/derivable
![Page 53: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/53.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Derivations
Deduction rules are the elementary bricks of reasoning. They can beassembled to form derivations (finite sequent-labelled trees)
Example: derivation of the syllogism Barbara
Γ3 ` ∀x (Q(x)⇒ R(x))(axiom)
Γ3 ` Q(x)⇒ R(x)(∀1-elim)
Γ3 ` ∀x (P(x)⇒ Q(x))(axiom)
Γ3 ` P(x)⇒ Q(x)(∀1-elim)
Γ3 ` P(x)(axiom)
Γ3 ` Q(x)(⇒-elim)
Γ3 ` R(x)(⇒-elim)
Γ2 ` P(x)⇒ R(x)(⇒-intro)
Γ2 ` ∀x (P(x)⇒ R(x))(∀1-intro)
Γ1 ` ∀x (Q(x)⇒ R(x))⇒ ∀x (P(x)⇒ R(x))(⇒-intro)
` ∀x (P(x)⇒ Q(x))⇒ ∀x (Q(x)⇒ R(x))⇒ ∀x (P(x)⇒ R(x))(⇒-intro)
with Γ1 ≡ ∀x (P(x)⇒ Q(x)), Γ2 ≡ Γ1, ∀x (Q(x)⇒ R(x)), Γ3 ≡ Γ2,P(x)
A sequent Γ ` A is derivable when it appears as the conclusion of aderivation. A formula A is derivable when the sequent ` A is
Remark: One also uses proof/provable for derivation/derivable
![Page 54: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/54.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Expressiveness
The 8 deduction rules of system NK2 allow us to derive the usual rules oflogic (for all connectives & quantifiers):
Introduction/elimination rules for defined connectives/quantifiers:
⊥ ⇒ A, A⇒ B ⇒ A ∧ B, A ∧ B ⇒ A, A ∧ B ⇒ B,
A⇒ A ∨ B, B ⇒ A ∨ B, (A⇒ C)⇒ (B ⇒ C)⇒ A ∨ B ⇒ C ,
A(e)⇒ ∃x A(x), ∀x (A(x)⇒ C)⇒ ∃x A(x)⇒ C ,
A(P)⇒ ∃X A(X ), ∀X (A(X )⇒ C)⇒ ∃X A(X )⇒ C ,
e = e, e1 = e2 ⇒ e2 = e1, e1 = e2 ⇒ e2 = e3 ⇒ e1 = e3, etc.
Classical reasoning + De Morgan laws:
A ∨ ¬A
¬¬A ⇔ A ¬(A ∧ B) ⇔ ¬A ∨ ¬B(A⇒ B) ⇔ (¬B ⇒ ¬A) ¬∀x A(x) ⇔ ∃x ¬A(x)
![Page 55: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/55.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Expressiveness
The 8 deduction rules of system NK2 allow us to derive the usual rules oflogic (for all connectives & quantifiers):
Introduction/elimination rules for defined connectives/quantifiers:
⊥ ⇒ A, A⇒ B ⇒ A ∧ B, A ∧ B ⇒ A, A ∧ B ⇒ B,
A⇒ A ∨ B, B ⇒ A ∨ B, (A⇒ C)⇒ (B ⇒ C)⇒ A ∨ B ⇒ C ,
A(e)⇒ ∃x A(x), ∀x (A(x)⇒ C)⇒ ∃x A(x)⇒ C ,
A(P)⇒ ∃X A(X ), ∀X (A(X )⇒ C)⇒ ∃X A(X )⇒ C ,
e = e, e1 = e2 ⇒ e2 = e1, e1 = e2 ⇒ e2 = e3 ⇒ e1 = e3, etc.
Classical reasoning + De Morgan laws:
A ∨ ¬A
¬¬A ⇔ A ¬(A ∧ B) ⇔ ¬A ∨ ¬B(A⇒ B) ⇔ (¬B ⇒ ¬A) ¬∀x A(x) ⇔ ∃x ¬A(x)
![Page 56: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/56.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Expressiveness
The 8 deduction rules of system NK2 allow us to derive the usual rules oflogic (for all connectives & quantifiers):
Introduction/elimination rules for defined connectives/quantifiers:
⊥ ⇒ A, A⇒ B ⇒ A ∧ B, A ∧ B ⇒ A, A ∧ B ⇒ B,
A⇒ A ∨ B, B ⇒ A ∨ B, (A⇒ C)⇒ (B ⇒ C)⇒ A ∨ B ⇒ C ,
A(e)⇒ ∃x A(x), ∀x (A(x)⇒ C)⇒ ∃x A(x)⇒ C ,
A(P)⇒ ∃X A(X ), ∀X (A(X )⇒ C)⇒ ∃X A(X )⇒ C ,
e = e, e1 = e2 ⇒ e2 = e1, e1 = e2 ⇒ e2 = e3 ⇒ e1 = e3, etc.
Classical reasoning + De Morgan laws:
A ∨ ¬A
¬¬A ⇔ A ¬(A ∧ B) ⇔ ¬A ∨ ¬B(A⇒ B) ⇔ (¬B ⇒ ¬A) ¬∀x A(x) ⇔ ∃x ¬A(x)
![Page 57: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/57.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Axioms of classical 2nd-order arithmetic (PA2)
We have defined (classical) 2nd-order logic (NK2)To get 2nd-order arithmetic (PA2), we add the following axioms:
Defining axioms of primitive recursive function symbols:
∀x (x + 0 = x) ∀x (x × 0 = 0)∀x ∀y (x + s(y) = s(x + y)) ∀x ∀y (x × s(y) = x × y + x)
∀x (x − 0 = x)∀y (0− y = 0) etc.∀x ∀y (s(x)− s(y) = x − y)
Peano axioms:
∀x ¬(s(x) = 0) ∀x ∀y (s(x) = s(y)⇒ x = y)
Technically, these axioms are aggregated to the deduction system as newinference rules of the form
Γ ` ∀x (x + 0 = x) (etc.)
![Page 58: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/58.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Axioms of classical 2nd-order arithmetic (PA2)
We have defined (classical) 2nd-order logic (NK2)To get 2nd-order arithmetic (PA2), we add the following axioms:
Defining axioms of primitive recursive function symbols:
∀x (x + 0 = x) ∀x (x × 0 = 0)∀x ∀y (x + s(y) = s(x + y)) ∀x ∀y (x × s(y) = x × y + x)
∀x (x − 0 = x)∀y (0− y = 0) etc.∀x ∀y (s(x)− s(y) = x − y)
Peano axioms:
∀x ¬(s(x) = 0) ∀x ∀y (s(x) = s(y)⇒ x = y)
Technically, these axioms are aggregated to the deduction system as newinference rules of the form
Γ ` ∀x (x + 0 = x) (etc.)
![Page 59: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/59.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Axioms of classical 2nd-order arithmetic (PA2)
We have defined (classical) 2nd-order logic (NK2)To get 2nd-order arithmetic (PA2), we add the following axioms:
Defining axioms of primitive recursive function symbols:
∀x (x + 0 = x) ∀x (x × 0 = 0)∀x ∀y (x + s(y) = s(x + y)) ∀x ∀y (x × s(y) = x × y + x)
∀x (x − 0 = x)∀y (0− y = 0) etc.∀x ∀y (s(x)− s(y) = x − y)
Peano axioms:
∀x ¬(s(x) = 0) ∀x ∀y (s(x) = s(y)⇒ x = y)
Technically, these axioms are aggregated to the deduction system as newinference rules of the form
Γ ` ∀x (x + 0 = x) (etc.)
![Page 60: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/60.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Axioms of classical 2nd-order arithmetic (PA2)
We have defined (classical) 2nd-order logic (NK2)To get 2nd-order arithmetic (PA2), we add the following axioms:
Defining axioms of primitive recursive function symbols:
∀x (x + 0 = x) ∀x (x × 0 = 0)∀x ∀y (x + s(y) = s(x + y)) ∀x ∀y (x × s(y) = x × y + x)
∀x (x − 0 = x)∀y (0− y = 0) etc.∀x ∀y (s(x)− s(y) = x − y)
Peano axioms:
∀x ¬(s(x) = 0) ∀x ∀y (s(x) = s(y)⇒ x = y)
Technically, these axioms are aggregated to the deduction system as newinference rules of the form
Γ ` ∀x (x + 0 = x) (etc.)
![Page 61: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/61.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The problem of induction (1/2)
The above presentation of PA2 contains no induction axiom
The reason is that the property of being a natural number isdefinable in 2nd-order logic, via the set/predicate:
N ≡{x : ∀Z (Z (0) ⇒ ∀y (Z (y)⇒ Z (s(y))) ⇒ Z (x))
}So we can replace 1st-order quantifications by their versionsrelativized to N (arithmetic quantifications):
(∀x ∈N)A(x) ≡ ∀x (x ∈ N⇒ A(x))
(∃x ∈N)A(x) ≡ ∀Z ((∀x ∈N) (A(x)⇒ Z ) ⇒ Z )⇔ ∃x (x ∈ N ∧ A(x))
![Page 62: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/62.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The problem of induction (1/2)
The above presentation of PA2 contains no induction axiom
The reason is that the property of being a natural number isdefinable in 2nd-order logic, via the set/predicate:
N ≡{x : ∀Z (Z (0) ⇒ ∀y (Z (y)⇒ Z (s(y))) ⇒ Z (x))
}
So we can replace 1st-order quantifications by their versionsrelativized to N (arithmetic quantifications):
(∀x ∈N)A(x) ≡ ∀x (x ∈ N⇒ A(x))
(∃x ∈N)A(x) ≡ ∀Z ((∀x ∈N) (A(x)⇒ Z ) ⇒ Z )⇔ ∃x (x ∈ N ∧ A(x))
![Page 63: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/63.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The problem of induction (1/2)
The above presentation of PA2 contains no induction axiom
The reason is that the property of being a natural number isdefinable in 2nd-order logic, via the set/predicate:
N ≡{x : ∀Z (Z (0) ⇒ ∀y (Z (y)⇒ Z (s(y))) ⇒ Z (x))
}So we can replace 1st-order quantifications by their versionsrelativized to N (arithmetic quantifications):
(∀x ∈N)A(x) ≡ ∀x (x ∈ N⇒ A(x))
(∃x ∈N)A(x) ≡ ∀Z ((∀x ∈N) (A(x)⇒ Z ) ⇒ Z )⇔ ∃x (x ∈ N ∧ A(x))
![Page 64: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/64.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The problem of induction (2/2)
Through this process of relativization, induction is derivable:
Relativized principle of induction
∀Z (Z (0) ⇒ (∀x ∈N) (Z (x)⇒ Z (s(x))) ⇒ (∀x ∈N)Z (x))
In practice, one works with relativized quantification the same wayas with unrelativized ones
However, we need to check that the set/predicate N is closed underall the operations of the signature Σ:
Proposition (Totality of arithmetic expressions)
For each arithmetic expression e(x1, . . . , xk), the formula
Total(e) ≡ (∀x1, . . . , xk ∈N) e(x1, . . . , xk) ∈ N
is derivable in system NK2 (without an axiom)
![Page 65: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/65.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The problem of induction (2/2)
Through this process of relativization, induction is derivable:
Relativized principle of induction
∀Z (Z (0) ⇒ (∀x ∈N) (Z (x)⇒ Z (s(x))) ⇒ (∀x ∈N)Z (x))
In practice, one works with relativized quantification the same wayas with unrelativized ones
However, we need to check that the set/predicate N is closed underall the operations of the signature Σ:
Proposition (Totality of arithmetic expressions)
For each arithmetic expression e(x1, . . . , xk), the formula
Total(e) ≡ (∀x1, . . . , xk ∈N) e(x1, . . . , xk) ∈ N
is derivable in system NK2 (without an axiom)
![Page 66: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/66.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Plan
1 Introduction
2 Second-order arithmetic (PA2)
3 Extracted programs
4 The classical realizability interpretation
5 Witness extraction
![Page 67: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/67.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The λc-calculus
Terms, stacks and processes
Terms
Stacks
Processes
t, u ::= x | λx . t | tu | cc | stop | kπ
π, π′ ::= � | t · π
p, q ::= t ? π
(t closed)
(t closed)
A λ-calculus with two kinds of constants:
Instructions cc (call/cc) and stopContinuation constants kπ, one for every stack π (generated by cc)
Notations:Λ = set of closed λc -termsΠ = set of stacks (closed)
Λ ? Π = set of processes (closed)
![Page 68: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/68.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The λc-calculus
Terms, stacks and processes
Terms
Stacks
Processes
t, u ::= x | λx . t | tu | cc | stop | kπ
π, π′ ::= � | t · π
p, q ::= t ? π
(t closed)
(t closed)
A λ-calculus with two kinds of constants:
Instructions cc (call/cc) and stopContinuation constants kπ, one for every stack π (generated by cc)
Notations:Λ = set of closed λc -termsΠ = set of stacks (closed)
Λ ? Π = set of processes (closed)
![Page 69: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/69.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Krivine Abstract Machine (KAM) (1/2)
The set of processes (Λ ? Π) is equipped with a preorder ofevaluation p � p′, that is generated from the following rules:
Krivine Abstract Machine (KAM)
Push
Grab
Save
Restore
tu ? π � t ? u · πλx . t ? u · π � t{x := u} ? π
cc ? u · π � u ? kπ · πkπ ? u · π′ � u ? π
(+ reflexivity & transitivity)
Extensible machinery: can add extra instructions and rules
![Page 70: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/70.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Krivine Abstract Machine (KAM) (2/2)
Rules Push and Grab implement weak head β-reduction:
PushGrab
tu ? π � t ? u · πλx . t ? u · π � t{x := u} ? π
Example: (λxy . t) u v ? π � λxy . t ? u · v · π� t{x := u}{y := v} ? π
Rules Save and Restore implement backtracking:
SaveRestore
cc ? u · π � u ? kπ · πkπ ? u · π′ � u ? π
Instruction cc most often used in the pattern
cc (λk . t) ? π � cc ? (λk . t) · π� (λk . t) ? kπ · π� t{k := kπ} ? π
Instruction stop has no evaluation rule: stop ? π 6�
![Page 71: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/71.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Krivine Abstract Machine (KAM) (2/2)
Rules Push and Grab implement weak head β-reduction:
PushGrab
tu ? π � t ? u · πλx . t ? u · π � t{x := u} ? π
Example: (λxy . t) u v ? π � λxy . t ? u · v · π� t{x := u}{y := v} ? π
Rules Save and Restore implement backtracking:
SaveRestore
cc ? u · π � u ? kπ · πkπ ? u · π′ � u ? π
Instruction cc most often used in the pattern
cc (λk . t) ? π � cc ? (λk . t) · π� (λk . t) ? kπ · π� t{k := kπ} ? π
Instruction stop has no evaluation rule: stop ? π 6�
![Page 72: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/72.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The Krivine Abstract Machine (KAM) (2/2)
Rules Push and Grab implement weak head β-reduction:
PushGrab
tu ? π � t ? u · πλx . t ? u · π � t{x := u} ? π
Example: (λxy . t) u v ? π � λxy . t ? u · v · π� t{x := u}{y := v} ? π
Rules Save and Restore implement backtracking:
SaveRestore
cc ? u · π � u ? kπ · πkπ ? u · π′ � u ? π
Instruction cc most often used in the pattern
cc (λk . t) ? π � cc ? (λk . t) · π� (λk . t) ? kπ · π� t{k := kπ} ? π
Instruction stop has no evaluation rule: stop ? π 6�
![Page 73: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/73.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
A type system for 2nd-order logic: λNK2 (1/2)
Aim: Turning the deduction system NK2 into a type systemwritten λNK2, where:
Formulas are used as types
The computational contents of proofs is given by λc -terms
Typing judgments of the form
x1 : A1, . . . , xn : An︸ ︷︷ ︸typing context Γ
` t : A
= sequent decorated with computational information
Note: We only use proof-like terms, that is: λc -terms withoutcontinuation constants (kπ) and without the instruction stop
![Page 74: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/74.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
A type system for 2nd-order logic: λNK2 (1/2)
Aim: Turning the deduction system NK2 into a type systemwritten λNK2, where:
Formulas are used as types
The computational contents of proofs is given by λc -terms
Typing judgments of the form
x1 : A1, . . . , xn : An︸ ︷︷ ︸typing context Γ
` t : A
= sequent decorated with computational information
Note: We only use proof-like terms, that is: λc -terms withoutcontinuation constants (kπ) and without the instruction stop
![Page 75: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/75.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
A type system for 2nd-order logic: λNK2 (1/2)
Aim: Turning the deduction system NK2 into a type systemwritten λNK2, where:
Formulas are used as types
The computational contents of proofs is given by λc -terms
Typing judgments of the form
x1 : A1, . . . , xn : An︸ ︷︷ ︸typing context Γ
` t : A
= sequent decorated with computational information
Note: We only use proof-like terms, that is: λc -terms withoutcontinuation constants (kπ) and without the instruction stop
![Page 76: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/76.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
A type system for 2nd-order logic: λNK2 (2/2)
Typing rules of system λNK2
Γ ` x : Aif (x :A)∈Γ
Γ, x : A ` t : B
Γ ` λx . t : A⇒ BΓ ` t : A⇒ B Γ ` u : A
Γ ` tu : B
Γ ` t : AΓ ` t : ∀x A
if x /∈FV (Γ)Γ ` t : ∀x A
Γ ` t : A{x := e}
Γ ` t : AΓ ` t : ∀X A
if X /∈FV (Γ)Γ ` t : ∀X A
Γ ` t : A{X := P}
Γ ` cc : ((A⇒ B)⇒ A)⇒ A
Remarks:
∀ interpreted uniformly (intersection type)typing derivations defined the same way as logical derivationstype checking/inference undecidable
![Page 77: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/77.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
A type system for 2nd-order logic: λNK2 (2/2)
Typing rules of system λNK2
Γ ` x : Aif (x :A)∈Γ
Γ, x : A ` t : B
Γ ` λx . t : A⇒ BΓ ` t : A⇒ B Γ ` u : A
Γ ` tu : B
Γ ` t : AΓ ` t : ∀x A
if x /∈FV (Γ)Γ ` t : ∀x A
Γ ` t : A{x := e}
Γ ` t : AΓ ` t : ∀X A
if X /∈FV (Γ)Γ ` t : ∀X A
Γ ` t : A{X := P}
Γ ` cc : ((A⇒ B)⇒ A)⇒ A
Remarks:
∀ interpreted uniformly (intersection type)typing derivations defined the same way as logical derivationstype checking/inference undecidable
![Page 78: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/78.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Relation between deduction (NK2) and typing (λNK2)
Each typing context Γ ≡ x1 : A1, . . . , xn : An can be turnedinto a logical context Γ∗ ≡ A1, . . . ,An
Each typing judgment Γ ` t : A can be turned into a sequent:
(Γ ` t : A)∗ ≡ Γ∗ ` A
Each typing derivation d is turned into a logical derivation d∗
Equivalence between systems NK2 and λNK2
1 If d is a typing derivation of Γ ` t : A in system λNK2,then d∗ is a logical derivation of Γ∗ ` A in system NK2
2 Every logical derivation d of a sequent Γ ` A in system NK2comes from a typing derivation d0 of a judgment of the formΓ0 ` t : A in system λNK2 (with Γ∗0 ≡ Γ and d∗0 ≡ d)
The typing derivation d0 is unique, up to the names of variables
The term t is called the program extracted from the derivation d
![Page 79: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/79.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Relation between deduction (NK2) and typing (λNK2)
Each typing context Γ ≡ x1 : A1, . . . , xn : An can be turnedinto a logical context Γ∗ ≡ A1, . . . ,An
Each typing judgment Γ ` t : A can be turned into a sequent:
(Γ ` t : A)∗ ≡ Γ∗ ` A
Each typing derivation d is turned into a logical derivation d∗
Equivalence between systems NK2 and λNK2
1 If d is a typing derivation of Γ ` t : A in system λNK2,then d∗ is a logical derivation of Γ∗ ` A in system NK2
2 Every logical derivation d of a sequent Γ ` A in system NK2comes from a typing derivation d0 of a judgment of the formΓ0 ` t : A in system λNK2 (with Γ∗0 ≡ Γ and d∗0 ≡ d)
The typing derivation d0 is unique, up to the names of variables
The term t is called the program extracted from the derivation d
![Page 80: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/80.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Relation between deduction (NK2) and typing (λNK2)
Each typing context Γ ≡ x1 : A1, . . . , xn : An can be turnedinto a logical context Γ∗ ≡ A1, . . . ,An
Each typing judgment Γ ` t : A can be turned into a sequent:
(Γ ` t : A)∗ ≡ Γ∗ ` A
Each typing derivation d is turned into a logical derivation d∗
Equivalence between systems NK2 and λNK2
1 If d is a typing derivation of Γ ` t : A in system λNK2,then d∗ is a logical derivation of Γ∗ ` A in system NK2
2 Every logical derivation d of a sequent Γ ` A in system NK2comes from a typing derivation d0 of a judgment of the formΓ0 ` t : A in system λNK2 (with Γ∗0 ≡ Γ and d∗0 ≡ d)
The typing derivation d0 is unique, up to the names of variables
The term t is called the program extracted from the derivation d
![Page 81: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/81.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Relation between deduction (NK2) and typing (λNK2)
Each typing context Γ ≡ x1 : A1, . . . , xn : An can be turnedinto a logical context Γ∗ ≡ A1, . . . ,An
Each typing judgment Γ ` t : A can be turned into a sequent:
(Γ ` t : A)∗ ≡ Γ∗ ` A
Each typing derivation d is turned into a logical derivation d∗
Equivalence between systems NK2 and λNK2
1 If d is a typing derivation of Γ ` t : A in system λNK2,then d∗ is a logical derivation of Γ∗ ` A in system NK2
2 Every logical derivation d of a sequent Γ ` A in system NK2comes from a typing derivation d0 of a judgment of the formΓ0 ` t : A in system λNK2 (with Γ∗0 ≡ Γ and d∗0 ≡ d)
The typing derivation d0 is unique, up to the names of variables
The term t is called the program extracted from the derivation d
![Page 82: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/82.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Relation between deduction (NK2) and typing (λNK2)
Each typing context Γ ≡ x1 : A1, . . . , xn : An can be turnedinto a logical context Γ∗ ≡ A1, . . . ,An
Each typing judgment Γ ` t : A can be turned into a sequent:
(Γ ` t : A)∗ ≡ Γ∗ ` A
Each typing derivation d is turned into a logical derivation d∗
Equivalence between systems NK2 and λNK2
1 If d is a typing derivation of Γ ` t : A in system λNK2,then d∗ is a logical derivation of Γ∗ ` A in system NK2
2 Every logical derivation d of a sequent Γ ` A in system NK2comes from a typing derivation d0 of a judgment of the formΓ0 ` t : A in system λNK2 (with Γ∗0 ≡ Γ and d∗0 ≡ d)
The typing derivation d0 is unique, up to the names of variables
The term t is called the program extracted from the derivation d
![Page 83: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/83.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Example: extracting a program from a proof
Example: derivation of the syllogism Barbara
Γ3 ` ∀x (Q(x)⇒ R(x))(axiom)
Γ3 ` Q(x)⇒ R(x)(∀1-elim)
Γ3 ` ∀x (P(x)⇒ Q(x))(axiom)
Γ3 ` P(x)⇒ Q(x)(∀1-elim)
Γ3 ` P(x)(axiom)
Γ3 ` Q(x)(⇒-elim)
Γ3 ` R(x)(⇒-elim)
Γ2 ` P(x)⇒ R(x)(⇒-intro)
Γ2 ` ∀x (P(x)⇒ R(x))(∀1-intro)
Γ1 ` ∀x (Q(x)⇒ R(x))⇒ ∀x (P(x)⇒ R(x))(⇒-intro)
` ∀x (P(x)⇒ Q(x))⇒ ∀x (Q(x)⇒ R(x))⇒ ∀x (P(x)⇒ R(x))(⇒-intro)
with Γ1 ≡ ∀x (P(x)⇒ Q(x)), Γ2 ≡ Γ1, ∀x (Q(x)⇒ R(x)), Γ3 ≡ Γ2,P(x)
Extracted program is: λf . λg . λz . f (g z) (composition of functions)
![Page 84: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/84.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Example: extracting a program from a proof
Example: typing derivation of the syllogism Barbara
Γ3 ` g : ∀x (Q(x)⇒ R(x))
Γ3 ` g : Q(x)⇒ R(x)
Γ3 ` f : ∀x (P(x)⇒ Q(x))
Γ3 ` f : P(x)⇒ Q(x) Γ3 ` z : P(x)
Γ3 ` f z : Q(x)
Γ3 ` g (f z) : R(x)
Γ2 ` λz . g (f z) : P(x)⇒ R(x)
Γ2 ` λz . g (f z) : ∀x (P(x)⇒ R(x))
Γ1 ` λg . λz . g (f z) : ∀x (Q(x)⇒ R(x))⇒ ∀x (P(x)⇒ R(x))
` λf . λg . λz . g (f z) : ∀x (P(x)⇒ Q(x))⇒ ∀x (Q(x)⇒ R(x))⇒ ∀x (P(x)⇒ R(x))
with Γ1 ≡ f : ∀x (P(x)⇒ Q(x)), Γ2 ≡ Γ1, g : ∀x (Q(x)⇒ R(x)), Γ3 ≡ Γ2, z : P(x)
Extracted program is: λf . λg . λz . f (g z) (composition of functions)
![Page 85: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/85.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Example: extracting a program from a proof
Example: typing derivation of the syllogism Barbara
Γ3 ` g : ∀x (Q(x)⇒ R(x))
Γ3 ` g : Q(x)⇒ R(x)
Γ3 ` f : ∀x (P(x)⇒ Q(x))
Γ3 ` f : P(x)⇒ Q(x) Γ3 ` z : P(x)
Γ3 ` f z : Q(x)
Γ3 ` g (f z) : R(x)
Γ2 ` λz . g (f z) : P(x)⇒ R(x)
Γ2 ` λz . g (f z) : ∀x (P(x)⇒ R(x))
Γ1 ` λg . λz . g (f z) : ∀x (Q(x)⇒ R(x))⇒ ∀x (P(x)⇒ R(x))
` λf . λg . λz . g (f z) : ∀x (P(x)⇒ Q(x))⇒ ∀x (Q(x)⇒ R(x))⇒ ∀x (P(x)⇒ R(x))
with Γ1 ≡ f : ∀x (P(x)⇒ Q(x)), Γ2 ≡ Γ1, g : ∀x (Q(x)⇒ R(x)), Γ3 ≡ Γ2, z : P(x)
Extracted program is: λf . λg . λz . f (g z) (composition of functions)
![Page 86: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/86.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Typing examples (1/2)
Pairing construct and projections associated to conjunction A ∧ B(= Cartesian product):
〈t, u〉 ≡ λf . f t u : A ∧ B (if t : A, u : B)pair ≡ λxy . 〈x , y〉 : ∀X ∀Y (X ⇒ Y ⇒ X ∧ Y )fst ≡ λz . z (λxy . x) : ∀X ∀Y (X ∧ Y ⇒ X )snd ≡ λz . z (λxy . y) : ∀X ∀Y (X ∧ Y ⇒ Y )
Injections associated to disjunction A ∨ B (= direct sum):
left ≡ λxfg . f x : ∀X ∀Y (X ⇒ X ∨ Y )right ≡ λyfg . g y : ∀X ∀Y (Y ⇒ X ∨ Y )
Reflexivity, symmetry and transitivity of equality:
eq refl ≡ λz . z : ∀x (x = x)eq sym ≡ λz . z (λu . u) : ∀x ∀y (x = y ⇒ y = x)
eq trans ≡ λxyz . y (x z) : ∀x ∀y ∀z (x = y ⇒ y = z ⇒ x = z)
![Page 87: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/87.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Typing examples (1/2)
Pairing construct and projections associated to conjunction A ∧ B(= Cartesian product):
〈t, u〉 ≡ λf . f t u : A ∧ B (if t : A, u : B)pair ≡ λxy . 〈x , y〉 : ∀X ∀Y (X ⇒ Y ⇒ X ∧ Y )fst ≡ λz . z (λxy . x) : ∀X ∀Y (X ∧ Y ⇒ X )snd ≡ λz . z (λxy . y) : ∀X ∀Y (X ∧ Y ⇒ Y )
Injections associated to disjunction A ∨ B (= direct sum):
left ≡ λxfg . f x : ∀X ∀Y (X ⇒ X ∨ Y )right ≡ λyfg . g y : ∀X ∀Y (Y ⇒ X ∨ Y )
Reflexivity, symmetry and transitivity of equality:
eq refl ≡ λz . z : ∀x (x = x)eq sym ≡ λz . z (λu . u) : ∀x ∀y (x = y ⇒ y = x)
eq trans ≡ λxyz . y (x z) : ∀x ∀y ∀z (x = y ⇒ y = z ⇒ x = z)
![Page 88: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/88.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Typing examples (1/2)
Pairing construct and projections associated to conjunction A ∧ B(= Cartesian product):
〈t, u〉 ≡ λf . f t u : A ∧ B (if t : A, u : B)pair ≡ λxy . 〈x , y〉 : ∀X ∀Y (X ⇒ Y ⇒ X ∧ Y )fst ≡ λz . z (λxy . x) : ∀X ∀Y (X ∧ Y ⇒ X )snd ≡ λz . z (λxy . y) : ∀X ∀Y (X ∧ Y ⇒ Y )
Injections associated to disjunction A ∨ B (= direct sum):
left ≡ λxfg . f x : ∀X ∀Y (X ⇒ X ∨ Y )right ≡ λyfg . g y : ∀X ∀Y (Y ⇒ X ∨ Y )
Reflexivity, symmetry and transitivity of equality:
eq refl ≡ λz . z : ∀x (x = x)eq sym ≡ λz . z (λu . u) : ∀x ∀y (x = y ⇒ y = x)
eq trans ≡ λxyz . y (x z) : ∀x ∀y ∀z (x = y ⇒ y = z ⇒ x = z)
![Page 89: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/89.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Typing examples (2/2)
Recall: injections associated to disjunction A ∨ B:
left ≡ λxfg . f x : ∀X ∀Y (X ⇒ X ∨ Y )right ≡ λyfg . g y : ∀X ∀Y (Y ⇒ X ∨ Y )
Computational contents of the law of excluded middle?
EM ≡
cc (λk . right (λx . k (left x)))
: ∀X (X ∨ ¬X )
Double-negation elimination & De Morgan laws:
λz . cc (λk . z k) : ∀X (¬¬X ⇒ X )
λzy . z (λx . yx) : ∃x A(x) ⇒ ¬∀x ¬A(x)λzy . cc (λk . z (λx . k (y x))) : ¬∀x ¬A(x) ⇒ ∃x A(x)
![Page 90: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/90.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Typing examples (2/2)
Recall: injections associated to disjunction A ∨ B:
left ≡ λxfg . f x : ∀X ∀Y (X ⇒ X ∨ Y )right ≡ λyfg . g y : ∀X ∀Y (Y ⇒ X ∨ Y )
Computational contents of the law of excluded middle?
EM ≡
cc (λk . right (λx . k (left x)))
: ∀X (X ∨ ¬X )
Double-negation elimination & De Morgan laws:
λz . cc (λk . z k) : ∀X (¬¬X ⇒ X )
λzy . z (λx . yx) : ∃x A(x) ⇒ ¬∀x ¬A(x)λzy . cc (λk . z (λx . k (y x))) : ¬∀x ¬A(x) ⇒ ∃x A(x)
![Page 91: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/91.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Typing examples (2/2)
Recall: injections associated to disjunction A ∨ B:
left ≡ λxfg . f x : ∀X ∀Y (X ⇒ X ∨ Y )right ≡ λyfg . g y : ∀X ∀Y (Y ⇒ X ∨ Y )
Computational contents of the law of excluded middle:
EM ≡ cc (λk . right (λx . k (left x))) : ∀X (X ∨ ¬X )
Double-negation elimination & De Morgan laws:
λz . cc (λk . z k) : ∀X (¬¬X ⇒ X )
λzy . z (λx . yx) : ∃x A(x) ⇒ ¬∀x ¬A(x)λzy . cc (λk . z (λx . k (y x))) : ¬∀x ¬A(x) ⇒ ∃x A(x)
![Page 92: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/92.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Typing examples (2/2)
Recall: injections associated to disjunction A ∨ B:
left ≡ λxfg . f x : ∀X ∀Y (X ⇒ X ∨ Y )right ≡ λyfg . g y : ∀X ∀Y (Y ⇒ X ∨ Y )
Computational contents of the law of excluded middle:
EM ≡ cc (λk . right (λx . k (left x))) : ∀X (X ∨ ¬X )
Double-negation elimination & De Morgan laws:
λz . cc (λk . z k) : ∀X (¬¬X ⇒ X )
λzy . z (λx . yx) : ∃x A(x) ⇒ ¬∀x ¬A(x)λzy . cc (λk . z (λx . k (y x))) : ¬∀x ¬A(x) ⇒ ∃x A(x)
![Page 93: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/93.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Representing natural numbers
Encoding zero and successor:
0 ≡ λzf . z : 0 ∈ N
s ≡ λnzf . f (n z f ) : (∀x ∈N) s(x) ∈ N
Each natural number n ∈ N is thus represented by the program
n ≡ sn 0 ≡ s (· · · (s︸ ︷︷ ︸n
0) · · · ) : n ∈ N
(= Krivine numeral n)
Intuitively, the program n behaves as an iterator:
0 ? u0 · u1 · π � u0 ? π
n + 1 ? u0 · u1 · π � u1 ? (n u0 u1) · π
![Page 94: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/94.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Representing natural numbers
Encoding zero and successor:
0 ≡ λzf . z : 0 ∈ N
s ≡ λnzf . f (n z f ) : (∀x ∈N) s(x) ∈ N
Each natural number n ∈ N is thus represented by the program
n ≡ sn 0 ≡ s (· · · (s︸ ︷︷ ︸n
0) · · · ) : n ∈ N
(= Krivine numeral n)
Intuitively, the program n behaves as an iterator:
0 ? u0 · u1 · π � u0 ? π
n + 1 ? u0 · u1 · π � u1 ? (n u0 u1) · π
![Page 95: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/95.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Representing natural numbers
Encoding zero and successor:
0 ≡ λzf . z : 0 ∈ N
s ≡ λnzf . f (n z f ) : (∀x ∈N) s(x) ∈ N
Each natural number n ∈ N is thus represented by the program
n ≡ sn 0 ≡ s (· · · (s︸ ︷︷ ︸n
0) · · · ) : n ∈ N
(= Krivine numeral n)
Intuitively, the program n behaves as an iterator:
0 ? u0 · u1 · π � u0 ? π
n + 1 ? u0 · u1 · π � u1 ? (n u0 u1) · π
![Page 96: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/96.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Plan
1 Introduction
2 Second-order arithmetic (PA2)
3 Extracted programs
4 The classical realizability interpretation
5 Witness extraction
![Page 97: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/97.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Classical realizability: principles
Intuitions:
term = “proof” / stack = “counter-proof”process = “contradiction” (slogan: never trust a classical realizer!)
Classical realizability model parameterized by a pole ⊥⊥= set of processes closed under anti-evaluation
Each formula A is interpreted as two sets:
A set of stacks ‖A‖ (falsity value)A set of terms |A| (truth value)
Falsity value ‖A‖ defined by induction on A (negative interpretation)
Truth value |A| defined by orthogonality:
|A| = ‖A‖⊥⊥ = {t ∈ Λ : ∀π ∈ ‖A‖ t ? π ∈ ⊥⊥}
![Page 98: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/98.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Classical realizability: principles
Intuitions:
term = “proof” / stack = “counter-proof”process = “contradiction” (slogan: never trust a classical realizer!)
Classical realizability model parameterized by a pole ⊥⊥= set of processes closed under anti-evaluation
Each formula A is interpreted as two sets:
A set of stacks ‖A‖ (falsity value)A set of terms |A| (truth value)
Falsity value ‖A‖ defined by induction on A (negative interpretation)
Truth value |A| defined by orthogonality:
|A| = ‖A‖⊥⊥ = {t ∈ Λ : ∀π ∈ ‖A‖ t ? π ∈ ⊥⊥}
![Page 99: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/99.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Classical realizability: principles
Intuitions:
term = “proof” / stack = “counter-proof”process = “contradiction” (slogan: never trust a classical realizer!)
Classical realizability model parameterized by a pole ⊥⊥= set of processes closed under anti-evaluation
Each formula A is interpreted as two sets:
A set of stacks ‖A‖ (falsity value)A set of terms |A| (truth value)
Falsity value ‖A‖ defined by induction on A (negative interpretation)
Truth value |A| defined by orthogonality:
|A| = ‖A‖⊥⊥ = {t ∈ Λ : ∀π ∈ ‖A‖ t ? π ∈ ⊥⊥}
![Page 100: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/100.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Classical realizability: principles
Intuitions:
term = “proof” / stack = “counter-proof”process = “contradiction” (slogan: never trust a classical realizer!)
Classical realizability model parameterized by a pole ⊥⊥= set of processes closed under anti-evaluation
Each formula A is interpreted as two sets:
A set of stacks ‖A‖ (falsity value)A set of terms |A| (truth value)
Falsity value ‖A‖ defined by induction on A (negative interpretation)
Truth value |A| defined by orthogonality:
|A| = ‖A‖⊥⊥ = {t ∈ Λ : ∀π ∈ ‖A‖ t ? π ∈ ⊥⊥}
![Page 101: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/101.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Architecture of the realizability model
The realizability model M⊥⊥ is defined from:
The full standard model M of PA2: the ground model(but we could take any model M of PA2 as well)
A saturated set of processes ⊥⊥ ⊆ Λ ? Π (the pole)
Architecture:
First-order terms/variables interpreted as natural numbers n ∈ NFormulas interpreted as falsity values S ∈ P(Π)
k-ary second-order variables (and k-ary predicates) interpreted asfalsity functions F : Nk → P(Π).
Formulas with parameters A,B ::= · · · | F (e1, . . . , ek)
Add a predicate constant F for every falsity function F : Nk → P(Π)
![Page 102: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/102.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Architecture of the realizability model
The realizability model M⊥⊥ is defined from:
The full standard model M of PA2: the ground model(but we could take any model M of PA2 as well)
A saturated set of processes ⊥⊥ ⊆ Λ ? Π (the pole)
Architecture:
First-order terms/variables interpreted as natural numbers n ∈ NFormulas interpreted as falsity values S ∈ P(Π)
k-ary second-order variables (and k-ary predicates) interpreted asfalsity functions F : Nk → P(Π).
Formulas with parameters A,B ::= · · · | F (e1, . . . , ek)
Add a predicate constant F for every falsity function F : Nk → P(Π)
![Page 103: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/103.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Architecture of the realizability model
The realizability model M⊥⊥ is defined from:
The full standard model M of PA2: the ground model(but we could take any model M of PA2 as well)
A saturated set of processes ⊥⊥ ⊆ Λ ? Π (the pole)
Architecture:
First-order terms/variables interpreted as natural numbers n ∈ NFormulas interpreted as falsity values S ∈ P(Π)
k-ary second-order variables (and k-ary predicates) interpreted asfalsity functions F : Nk → P(Π).
Formulas with parameters A,B ::= · · · | F (e1, . . . , ek)
Add a predicate constant F for every falsity function F : Nk → P(Π)
![Page 104: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/104.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Interpreting closed formulas with parameters
Let A be a closed formula (with parameters)
Falsity value ‖A‖ defined by induction on A:
‖F (e1, . . . , ek)‖ = F (eN1 , . . . , eNk )
‖A⇒ B‖ = |A| · ‖B‖ = {t · π : t ∈ |A|, π ∈ ‖B‖}
‖∀x A‖ =⋃n∈N
‖A{x := n}‖
‖∀X A‖ =⋃
F :Nn→P(Π)
‖A{X := F}‖
Truth value |A| defined by orthogonality:
|A| = ‖A‖⊥⊥ = {t ∈ Λ : ∀π ∈ ‖A‖ t ? π ∈ ⊥⊥}
![Page 105: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/105.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The realizability relation
Falsity value ‖A‖ and truth value |A| depend on the pole ⊥⊥ write them (sometimes) ‖A‖⊥⊥ and |A|⊥⊥ to recall the dependency
Realizability relations
t A ≡ t ∈ |A|⊥⊥t � A ≡ ∀⊥⊥ t ∈ |A|⊥⊥
(Realizability w.r.t. ⊥⊥)
(Universal realizability)
![Page 106: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/106.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From computation to realizability (1/2)
Fundamental idea: The computational behavior of a term determinesthe formula(s) it realizes:
Example 1: A closed term t is identity-like if:
t ? u · π � u ? π for all u ∈ Λ, π ∈ Π
Proposition
If t is identity-like, then t � ∀X (X ⇒ X )
Proof: Exercise! (Remark: converse implication holds – exercise!)
Examples of identity-like terms:
λx . x , (λx . x) (λx . x), etc.λx . cc (λk . x), λx . cc (λk . k x), λx . cc (λk . k x ω), etc.λx . quote x λn . unquote n (λz . z)
![Page 107: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/107.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From computation to realizability (1/2)
Fundamental idea: The computational behavior of a term determinesthe formula(s) it realizes:
Example 1: A closed term t is identity-like if:
t ? u · π � u ? π for all u ∈ Λ, π ∈ Π
Proposition
If t is identity-like, then t � ∀X (X ⇒ X )
Proof: Exercise! (Remark: converse implication holds – exercise!)
Examples of identity-like terms:
λx . x , (λx . x) (λx . x), etc.λx . cc (λk . x), λx . cc (λk . k x), λx . cc (λk . k x ω), etc.λx . quote x λn . unquote n (λz . z)
![Page 108: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/108.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From computation to realizability (1/2)
Fundamental idea: The computational behavior of a term determinesthe formula(s) it realizes:
Example 1: A closed term t is identity-like if:
t ? u · π � u ? π for all u ∈ Λ, π ∈ Π
Proposition
If t is identity-like, then t � ∀X (X ⇒ X )
Proof: Exercise! (Remark: converse implication holds – exercise!)
Examples of identity-like terms:
λx . x , (λx . x) (λx . x), etc.λx . cc (λk . x), λx . cc (λk . k x), λx . cc (λk . k x ω), etc.λx . quote x λn . unquote n (λz . z)
![Page 109: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/109.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From computation to realizability (2/2)
Example 2: Control operators:
cc ? t · π � t ? kπ · πkπ ? t · π′ � t ? π
“Typing” kπ: kπ ? t · π′ � t ? π
Lemma
If π ∈ ‖A‖, then kπ A⇒ B (B any)
Proof: Exercise
“Typing” cc: cc ? t · π � t ? kπ · π
Proposition (Realizing Peirce’s law)
cc � ((A⇒ B)⇒ A)⇒ A
Proof: Exercise
![Page 110: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/110.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From computation to realizability (2/2)
Example 2: Control operators:
cc ? t · π � t ? kπ · πkπ ? t · π′ � t ? π
“Typing” kπ: kπ ? t · π′ � t ? π
Lemma
If π ∈ ‖A‖, then kπ A⇒ B (B any)
Proof: Exercise
“Typing” cc: cc ? t · π � t ? kπ · π
Proposition (Realizing Peirce’s law)
cc � ((A⇒ B)⇒ A)⇒ A
Proof: Exercise
![Page 111: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/111.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
From computation to realizability (2/2)
Example 2: Control operators:
cc ? t · π � t ? kπ · πkπ ? t · π′ � t ? π
“Typing” kπ: kπ ? t · π′ � t ? π
Lemma
If π ∈ ‖A‖, then kπ A⇒ B (B any)
Proof: Exercise
“Typing” cc: cc ? t · π � t ? kπ · π
Proposition (Realizing Peirce’s law)
cc � ((A⇒ B)⇒ A)⇒ A
Proof: Exercise
![Page 112: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/112.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Anatomy of the model (1/2)
Denotation of universal quantification:
Falsity value: ‖∀x A‖ =⋃n∈N
‖A{x := n}‖ (by definition)
Truth value: |∀x A| =⋂n∈N
|A{x := n}| (by orthogonality)
(and similarly for 2nd-order universal quantification)
Denotation of implication:
Falsity value: ‖A⇒ B‖ = |A| · ‖B‖ (by definition)
Truth value: |A⇒ B| ⊆ |A| → |B| (by orthogonality)
writing |A| → |B| = {t ∈ Λ : ∀u ∈ |A| tu ∈ |B|} (realizability arrow)
![Page 113: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/113.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Anatomy of the model (1/2)
Denotation of universal quantification:
Falsity value: ‖∀x A‖ =⋃n∈N
‖A{x := n}‖ (by definition)
Truth value: |∀x A| =⋂n∈N
|A{x := n}| (by orthogonality)
(and similarly for 2nd-order universal quantification)
Denotation of implication:
Falsity value: ‖A⇒ B‖ = |A| · ‖B‖ (by definition)
Truth value: |A⇒ B| ⊆ |A| → |B| (by orthogonality)
writing |A| → |B| = {t ∈ Λ : ∀u ∈ |A| tu ∈ |B|} (realizability arrow)
![Page 114: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/114.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Anatomy of the model (2/2)
Degenerate case: ⊥⊥ = ∅
Classical realizability mimics the Tarski interpretation:
Degenerated interpretation
In the case where ⊥⊥ = 0, for every closed formula A:
|A| =
{Λ if M |= A
∅ if M 6|= A
Non degenerate cases: ⊥⊥ 6= ∅
Every truth value |A| is inhabited:
If t0 ? π0 ∈ ⊥⊥, then kπ0t0 ∈ |A| for all A (paraproof)
We shall only consider realizers that are proof-like terms
![Page 115: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/115.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Anatomy of the model (2/2)
Degenerate case: ⊥⊥ = ∅
Classical realizability mimics the Tarski interpretation:
Degenerated interpretation
In the case where ⊥⊥ = 0, for every closed formula A:
|A| =
{Λ if M |= A
∅ if M 6|= A
Non degenerate cases: ⊥⊥ 6= ∅
Every truth value |A| is inhabited:
If t0 ? π0 ∈ ⊥⊥, then kπ0t0 ∈ |A| for all A (paraproof)
We shall only consider realizers that are proof-like terms
![Page 116: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/116.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Adequacy (1/2)
Aim: Prove the theorem of adequacy
t : A (in the sense of λNK2) implies t A (in the sense of realizability)
Closing typing judgments x1 : A1, . . . , xn : An ` t : A
We close logical objects (1st-order terms, formulas, predicates) usingsemantic objects (natural numbers, falsity values, falsity functions)
We close proof-terms using realizers
Definition (Valuations)
1 A valuation is a function ρ such that
ρ(x) ∈ N for each 1st-order variable xρ(X ) : Nk → P(Π) for each 2nd-order variable X of arity k
2 Closure of A with ρ written A[ρ] (formula with parameters)
![Page 117: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/117.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Adequacy (1/2)
Aim: Prove the theorem of adequacy
t : A (in the sense of λNK2) implies t A (in the sense of realizability)
Closing typing judgments x1 : A1, . . . , xn : An ` t : A
We close logical objects (1st-order terms, formulas, predicates) usingsemantic objects (natural numbers, falsity values, falsity functions)
We close proof-terms using realizers
Definition (Valuations)
1 A valuation is a function ρ such that
ρ(x) ∈ N for each 1st-order variable xρ(X ) : Nk → P(Π) for each 2nd-order variable X of arity k
2 Closure of A with ρ written A[ρ] (formula with parameters)
![Page 118: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/118.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Adequacy (1/2)
Aim: Prove the theorem of adequacy
t : A (in the sense of λNK2) implies t A (in the sense of realizability)
Closing typing judgments x1 : A1, . . . , xn : An ` t : A
We close logical objects (1st-order terms, formulas, predicates) usingsemantic objects (natural numbers, falsity values, falsity functions)
We close proof-terms using realizers
Definition (Valuations)
1 A valuation is a function ρ such that
ρ(x) ∈ N for each 1st-order variable xρ(X ) : Nk → P(Π) for each 2nd-order variable X of arity k
2 Closure of A with ρ written A[ρ] (formula with parameters)
![Page 119: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/119.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Adequacy (2/2)
Definition (Adequate judgment, adequate rule)
Given a fixed pole ⊥⊥:
1 A judgment x1 : A1, . . . , xn : An ` t : A is adequate if for everyvaluation ρ and for all u1 A1[ρ], . . . , un An[ρ] we have:
t{x1 := u1, . . . , xn := un} A[ρ]
2 A typing rule is adequate if it preserves the property of adequacy(from the premises to the conclusion of the rule)
Theorem
1 All typing rules of λNK2 are adequate
2 All derivable judgments of λNK2 are adequate
Corollary: If ` t : A (A closed formula), then t � A
![Page 120: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/120.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Adequacy (2/2)
Definition (Adequate judgment, adequate rule)
Given a fixed pole ⊥⊥:
1 A judgment x1 : A1, . . . , xn : An ` t : A is adequate if for everyvaluation ρ and for all u1 A1[ρ], . . . , un An[ρ] we have:
t{x1 := u1, . . . , xn := un} A[ρ]
2 A typing rule is adequate if it preserves the property of adequacy(from the premises to the conclusion of the rule)
Theorem
1 All typing rules of λNK2 are adequate
2 All derivable judgments of λNK2 are adequate
Corollary: If ` t : A (A closed formula), then t � A
![Page 121: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/121.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Extending adequacy to subtyping
Definition (Adequate subtyping judgment)
Judgment A ≤ B adequate ≡ ‖B[ρ]‖ ⊆ ‖A[ρ]‖ (for all valuations)
Remark: Implies |A[ρ]| ⊆ |B[ρ]| (for all ρ), but strictly stronger
Some adequate typing/subtyping rules:
A ≤ A
A ≤ B B ≤ C
A ≤ C
Γ ` t : A A ≤ B
Γ ` t : B
∀x A ≤ A{x := e} ∀X A ≤ A{X := P}
A ≤ B
A ≤ ∀x Bx /∈FV (A)
A ≤ B
A ≤ ∀X BX /∈FV (A)
A′ ≤ A B ≤ B′
A⇒ B ≤ A′ ⇒ B′
∀x (A⇒ B) ≤ A⇒ ∀x Bx /∈FV (A)
∀X (A⇒ B) ≤ A⇒ ∀X BX /∈FV (A)
Example: ∀X ∀Y (((X ⇒ Y )⇒ X )⇒ X )︸ ︷︷ ︸Peirce’s law
≤ ∀X (¬¬X ⇒ X )︸ ︷︷ ︸DNE
![Page 122: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/122.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Extending adequacy to subtyping
Definition (Adequate subtyping judgment)
Judgment A ≤ B adequate ≡ ‖B[ρ]‖ ⊆ ‖A[ρ]‖ (for all valuations)
Remark: Implies |A[ρ]| ⊆ |B[ρ]| (for all ρ), but strictly stronger
Some adequate typing/subtyping rules:
A ≤ A
A ≤ B B ≤ C
A ≤ C
Γ ` t : A A ≤ B
Γ ` t : B
∀x A ≤ A{x := e} ∀X A ≤ A{X := P}
A ≤ B
A ≤ ∀x Bx /∈FV (A)
A ≤ B
A ≤ ∀X BX /∈FV (A)
A′ ≤ A B ≤ B′
A⇒ B ≤ A′ ⇒ B′
∀x (A⇒ B) ≤ A⇒ ∀x Bx /∈FV (A)
∀X (A⇒ B) ≤ A⇒ ∀X BX /∈FV (A)
Example: ∀X ∀Y (((X ⇒ Y )⇒ X )⇒ X )︸ ︷︷ ︸Peirce’s law
≤ ∀X (¬¬X ⇒ X )︸ ︷︷ ︸DNE
![Page 123: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/123.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Extending adequacy to subtyping
Definition (Adequate subtyping judgment)
Judgment A ≤ B adequate ≡ ‖B[ρ]‖ ⊆ ‖A[ρ]‖ (for all valuations)
Remark: Implies |A[ρ]| ⊆ |B[ρ]| (for all ρ), but strictly stronger
Some adequate typing/subtyping rules:
A ≤ A
A ≤ B B ≤ C
A ≤ C
Γ ` t : A A ≤ B
Γ ` t : B
∀x A ≤ A{x := e} ∀X A ≤ A{X := P}
A ≤ B
A ≤ ∀x Bx /∈FV (A)
A ≤ B
A ≤ ∀X BX /∈FV (A)
A′ ≤ A B ≤ B′
A⇒ B ≤ A′ ⇒ B′
∀x (A⇒ B) ≤ A⇒ ∀x Bx /∈FV (A)
∀X (A⇒ B) ≤ A⇒ ∀X BX /∈FV (A)
Example: ∀X ∀Y (((X ⇒ Y )⇒ X )⇒ X )︸ ︷︷ ︸Peirce’s law
≤ ∀X (¬¬X ⇒ X )︸ ︷︷ ︸DNE
![Page 124: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/124.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Realizing equalities
Equality between individuals defined by
e1 = e2 ≡ ∀Z (Z (e1)⇒ Z (e2)) (Leibniz equality)
Denotation of Leibniz equality
Given two closed first-order terms e1, e2 (and a pole ⊥⊥)
‖e1 = e2‖ =
{‖1‖ = {t · π : (t ? π) ∈ ⊥⊥} if Je1K = Je2K‖> ⇒ ⊥‖ = Λ · Π if Je1K 6= Je2K
writing 1 ≡ ∀Z (Z ⇒ Z) and > ≡ ∅
Intuitions:
A realizer of a true equality (in the ground model M ) behaves as theidentity function λz . z
A realizer of a false equality (in the ground model M ) behaves as apoint of backtrack (breakpoint)
![Page 125: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/125.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Realizing axioms
Corollary 1 (Realizing true equations)
If M |= ∀~x (e1(~x) = e2(~x)) (truth in the ground model)
then I ≡ λz . z � ∀~x (e1(~x) = e2(~x)) (universal realizability)
Corollary 2
All defining equations of primitive recursive function symbols(+, −, ×, etc.) are universally realized by I ≡ λz . z
Corollary 3 (Realizing Peano axioms)
λz . z I � ∀x ¬(s(x) = 0)I � ∀x ∀y (s(x) = s(y)⇒ x = y)
Theorem: If PA2 ` A, then θ � A for some proof-like term θ
![Page 126: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/126.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Realizing axioms
Corollary 1 (Realizing true equations)
If M |= ∀~x (e1(~x) = e2(~x)) (truth in the ground model)
then I ≡ λz . z � ∀~x (e1(~x) = e2(~x)) (universal realizability)
Corollary 2
All defining equations of primitive recursive function symbols(+, −, ×, etc.) are universally realized by I ≡ λz . z
Corollary 3 (Realizing Peano axioms)
λz . z I � ∀x ¬(s(x) = 0)I � ∀x ∀y (s(x) = s(y)⇒ x = y)
Theorem: If PA2 ` A, then θ � A for some proof-like term θ
![Page 127: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/127.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Provability, universal realizability and truth
From what precedes:
1 A provable ⇒ A universally realized (by a proof-like term)
2 A universally realized ⇒ A true (in the full standard model)
Universal realizability: an intermediate notionbetween provability and truth
Beware!
Intuitionistic proofs of A ⊆ Classical proofs of A
∩ ∩
Intuitionistic realizers of A*+
Classical realizers of A
![Page 128: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/128.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Provability, universal realizability and truth
From what precedes:
1 A provable ⇒ A universally realized (by a proof-like term)
2 A universally realized ⇒ A true (in the full standard model)
Universal realizability: an intermediate notionbetween provability and truth
Beware!
Intuitionistic proofs of A ⊆ Classical proofs of A
∩ ∩
Intuitionistic realizers of A*+
Classical realizers of A
![Page 129: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/129.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Plan
1 Introduction
2 Second-order arithmetic (PA2)
3 Extracted programs
4 The classical realizability interpretation
5 Witness extraction
![Page 130: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/130.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The problem of witness extraction
Problem: Extract a witness from a universal realizer (or a proof)
t0 � (∃x ∈N)A(x)
i.e. some n ∈ N such that A(n) is true
This is not always possible!
t0 � (∃x ∈N) ((x = 1 ∧ C ) ∨ (x = 0 ∧ ¬C ))
(C = Continuum hypothesis, Goldbach’s conjecture, etc.)
Two possible compromises:
Intuitionistic logic: restrict the shape of the realizer t0
(by only keeping intuitionistic reasoning principles)
Classical logic: restrict the shape of the formula A(x)
(typically: ∆00-formulas)
![Page 131: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/131.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The problem of witness extraction
Problem: Extract a witness from a universal realizer (or a proof)
t0 � (∃x ∈N)A(x)
i.e. some n ∈ N such that A(n) is true
This is not always possible!
t0 � (∃x ∈N) ((x = 1 ∧ C ) ∨ (x = 0 ∧ ¬C ))
(C = Continuum hypothesis, Goldbach’s conjecture, etc.)
Two possible compromises:
Intuitionistic logic: restrict the shape of the realizer t0
(by only keeping intuitionistic reasoning principles)
Classical logic: restrict the shape of the formula A(x)
(typically: ∆00-formulas)
![Page 132: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/132.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The problem of witness extraction
Problem: Extract a witness from a universal realizer (or a proof)
t0 � (∃x ∈N)A(x)
i.e. some n ∈ N such that A(n) is true
This is not always possible!
t0 � (∃x ∈N) ((x = 1 ∧ C ) ∨ (x = 0 ∧ ¬C ))
(C = Continuum hypothesis, Goldbach’s conjecture, etc.)
Two possible compromises:
Intuitionistic logic: restrict the shape of the realizer t0
(by only keeping intuitionistic reasoning principles)
Classical logic: restrict the shape of the formula A(x)
(typically: ∆00-formulas)
![Page 133: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/133.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Storage operators (1/2)
The call-by-value implication:
Formulas A,B ::= · · · | {e} ⇒ A
with the semantics: ‖{e} ⇒ A‖ = {n · π : n = eN, π ∈ ‖A‖}
From the definition: e ∈ N⇒ A ≤ {e} ⇒ A
so that: I � ∀x ∀Z [(x ∈ N⇒ Z)⇒ ({x} ⇒ Z)] (direct implication)
Definition (Storage operator)
A storage operator is a closed proof-like term M such that:
M � ∀x ∀Z [({x} ⇒ Z)⇒ (x ∈ N⇒ Z)] (converse implication)
Theorem (Existence)
Storage operators exist, e.g.: M := λfn . n f (λhx . h (s x)) 0
![Page 134: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/134.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Storage operators (1/2)
The call-by-value implication:
Formulas A,B ::= · · · | {e} ⇒ A
with the semantics: ‖{e} ⇒ A‖ = {n · π : n = eN, π ∈ ‖A‖}
From the definition: e ∈ N⇒ A ≤ {e} ⇒ A
so that: I � ∀x ∀Z [(x ∈ N⇒ Z)⇒ ({x} ⇒ Z)] (direct implication)
Definition (Storage operator)
A storage operator is a closed proof-like term M such that:
M � ∀x ∀Z [({x} ⇒ Z)⇒ (x ∈ N⇒ Z)] (converse implication)
Theorem (Existence)
Storage operators exist, e.g.: M := λfn . n f (λhx . h (s x)) 0
![Page 135: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/135.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Storage operators (1/2)
The call-by-value implication:
Formulas A,B ::= · · · | {e} ⇒ A
with the semantics: ‖{e} ⇒ A‖ = {n · π : n = eN, π ∈ ‖A‖}
From the definition: e ∈ N⇒ A ≤ {e} ⇒ A
so that: I � ∀x ∀Z [(x ∈ N⇒ Z)⇒ ({x} ⇒ Z)] (direct implication)
Definition (Storage operator)
A storage operator is a closed proof-like term M such that:
M � ∀x ∀Z [({x} ⇒ Z)⇒ (x ∈ N⇒ Z)] (converse implication)
Theorem (Existence)
Storage operators exist, e.g.: M := λfn . n f (λhx . h (s x)) 0
![Page 136: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/136.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Storage operators (1/2)
The call-by-value implication:
Formulas A,B ::= · · · | {e} ⇒ A
with the semantics: ‖{e} ⇒ A‖ = {n · π : n = eN, π ∈ ‖A‖}
From the definition: e ∈ N⇒ A ≤ {e} ⇒ A
so that: I � ∀x ∀Z [(x ∈ N⇒ Z)⇒ ({x} ⇒ Z)] (direct implication)
Definition (Storage operator)
A storage operator is a closed proof-like term M such that:
M � ∀x ∀Z [({x} ⇒ Z)⇒ (x ∈ N⇒ Z)] (converse implication)
Theorem (Existence)
Storage operators exist, e.g.: M := λfn . n f (λhx . h (s x)) 0
![Page 137: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/137.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Storage operators (2/2)
Intuitively, a storage operator
M � ∀x ∀Z [({x} ⇒ Z )⇒ (x ∈ N⇒ Z )]
is a proof-like term that is intended to be applied to
a function f that only accepts values (i.e. intuitionistic integers)
a classical integer t n ∈ N (n arbitrary)
and that evaluates (or ‘smoothes’) the classical integer t into avalue of the form n before passing this value to f
By subtyping, we also have:
M � ∀Z [∀x ({x} ⇒ Z (x)) ⇒ (∀x ∈N)Z (x)]
This means that if a property Z (x) holds for all intuitionisticintegers, then it holds for all classical integers too
Conclusion: e ∈ N⇒ A and {e} ⇒ A interchangeable
![Page 138: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/138.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Storage operators (2/2)
Intuitively, a storage operator
M � ∀x ∀Z [({x} ⇒ Z )⇒ (x ∈ N⇒ Z )]
is a proof-like term that is intended to be applied to
a function f that only accepts values (i.e. intuitionistic integers)
a classical integer t n ∈ N (n arbitrary)
and that evaluates (or ‘smoothes’) the classical integer t into avalue of the form n before passing this value to f
By subtyping, we also have:
M � ∀Z [∀x ({x} ⇒ Z (x)) ⇒ (∀x ∈N)Z (x)]
This means that if a property Z (x) holds for all intuitionisticintegers, then it holds for all classical integers too
Conclusion: e ∈ N⇒ A and {e} ⇒ A interchangeable
![Page 139: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/139.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Storage operators (2/2)
Intuitively, a storage operator
M � ∀x ∀Z [({x} ⇒ Z )⇒ (x ∈ N⇒ Z )]
is a proof-like term that is intended to be applied to
a function f that only accepts values (i.e. intuitionistic integers)
a classical integer t n ∈ N (n arbitrary)
and that evaluates (or ‘smoothes’) the classical integer t into avalue of the form n before passing this value to f
By subtyping, we also have:
M � ∀Z [∀x ({x} ⇒ Z (x)) ⇒ (∀x ∈N)Z (x)]
This means that if a property Z (x) holds for all intuitionisticintegers, then it holds for all classical integers too
Conclusion: e ∈ N⇒ A and {e} ⇒ A interchangeable
![Page 140: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/140.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Computing with storage operators
Given a k-ary function symbol f , we let:
Total(f ) := (∀x1 ∈N) · · · (∀xk ∈N)(f (x1, . . . , xk) ∈ N)
Comput(f ) := ∀x1 · · · ∀xk ∀Z [{x1} ⇒ · · · ⇒ {xk} ⇒({f (x1, . . . , xk)} ⇒ Z)⇒ Z ]
Theorem (Specification of the formula Comput(f ))
For all t ∈ Λ, the following assertions are equivalent:
1 t � Comput(f )
2 t computes f : for all (n1, . . . , nk) ∈ Nk , u ∈ Λ, π ∈ Π:
t ? n1 · · · nk · u · π � u ? f (n1, . . . , nk) · π
Using a storage operator M, we can build proof-like terms:
ξk � Total(f ) ⇒ Comput(f )ξ′k � Comput(f ) ⇒ Total(f )
![Page 141: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/141.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Computing with storage operators
Given a k-ary function symbol f , we let:
Total(f ) := (∀x1 ∈N) · · · (∀xk ∈N)(f (x1, . . . , xk) ∈ N)
Comput(f ) := ∀x1 · · · ∀xk ∀Z [{x1} ⇒ · · · ⇒ {xk} ⇒({f (x1, . . . , xk)} ⇒ Z)⇒ Z ]
Theorem (Specification of the formula Comput(f ))
For all t ∈ Λ, the following assertions are equivalent:
1 t � Comput(f )
2 t computes f : for all (n1, . . . , nk) ∈ Nk , u ∈ Λ, π ∈ Π:
t ? n1 · · · nk · u · π � u ? f (n1, . . . , nk) · π
Using a storage operator M, we can build proof-like terms:
ξk � Total(f ) ⇒ Comput(f )ξ′k � Comput(f ) ⇒ Total(f )
![Page 142: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/142.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Computing with storage operators
Given a k-ary function symbol f , we let:
Total(f ) := (∀x1 ∈N) · · · (∀xk ∈N)(f (x1, . . . , xk) ∈ N)
Comput(f ) := ∀x1 · · · ∀xk ∀Z [{x1} ⇒ · · · ⇒ {xk} ⇒({f (x1, . . . , xk)} ⇒ Z)⇒ Z ]
Theorem (Specification of the formula Comput(f ))
For all t ∈ Λ, the following assertions are equivalent:
1 t � Comput(f )
2 t computes f : for all (n1, . . . , nk) ∈ Nk , u ∈ Λ, π ∈ Π:
t ? n1 · · · nk · u · π � u ? f (n1, . . . , nk) · π
Using a storage operator M, we can build proof-like terms:
ξk � Total(f ) ⇒ Comput(f )ξ′k � Comput(f ) ⇒ Total(f )
![Page 143: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/143.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The naive extraction method
A classical realizer t0 � (∃x ∈N)A(x) always evaluates to apair witness/justification:
Naive extraction
If t0 � (∃x ∈N)A(x), then there are n ∈ N and u ∈ Λ such that:
t0 ?M(λxy . stop x y) · � � stop ? n · u · �
(where u A(n) w.r.t. the particular pole ⊥⊥... needed to prove the property)
But n ∈ N might be a false witness because the justificationu A(n) is cheating! (u might contain hidden continuations)
In the case where t0 comes from an intuitionistic proof,extracted witness n ∈ N is always correct
![Page 144: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/144.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The naive extraction method
A classical realizer t0 � (∃x ∈N)A(x) always evaluates to apair witness/justification:
Naive extraction
If t0 � (∃x ∈N)A(x), then there are n ∈ N and u ∈ Λ such that:
t0 ?M(λxy . stop x y) · � � stop ? n · u · �
(where u A(n) w.r.t. the particular pole ⊥⊥... needed to prove the property)
But n ∈ N might be a false witness because the justificationu A(n) is cheating! (u might contain hidden continuations)
In the case where t0 comes from an intuitionistic proof,extracted witness n ∈ N is always correct
![Page 145: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/145.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The naive extraction method
A classical realizer t0 � (∃x ∈N)A(x) always evaluates to apair witness/justification:
Naive extraction
If t0 � (∃x ∈N)A(x), then there are n ∈ N and u ∈ Λ such that:
t0 ?M(λxy . stop x y) · � � stop ? n · u · �
(where u A(n) w.r.t. the particular pole ⊥⊥... needed to prove the property)
But n ∈ N might be a false witness because the justificationu A(n) is cheating! (u might contain hidden continuations)
In the case where t0 comes from an intuitionistic proof,extracted witness n ∈ N is always correct
![Page 146: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/146.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Extraction in the Σ01-case
Extraction in the Σ01-case
(+ display intermediate results)
If t0 � (∃x ∈N)(f (x) = 0), then
t0 ?M(λxy .
print x
y (stop x)) · � � stop ? n · �
for some n ∈ N such that f (n) = 0
Storage operator M used to evaluate 1st component (x)
2nd component (y) used as a breakpoint(Relies on the particular structure of equality realizers)
Holds independently from the instruction set
Supports any representation of numerals(One has to implement the storage operator M accordingly)
![Page 147: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/147.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Extraction in the Σ01-case
Extraction in the Σ01-case (+ display intermediate results)
If t0 � (∃x ∈N)(f (x) = 0), then
t0 ?M(λxy . print x y (stop x)) · � � stop ? n · �
for some n ∈ N such that f (n) = 0
Storage operator M used to evaluate 1st component (x)
2nd component (y) used as a breakpoint(Relies on the particular structure of equality realizers)
Holds independently from the instruction set
Supports any representation of numerals(One has to implement the storage operator M accordingly)
![Page 148: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/148.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Example: the minimum principle
Given a unary function symbol f , write:
Total(f ) := (∀x ∈N)(f (x) ∈ N)
x ≤ y := x − y = 0
(totality predicate)
(truncated subtraction)
Theorem (Minimum principle – MinP)
PA2 ` Total(f ) ⇒ (∃x ∈N) (∀y ∈N) (f (x) ≤ f (y))︸ ︷︷ ︸undecidable
Proof. Reductio ad absurdum + course by value induction
The minimum principle is not intuitionistically provable (oracle)
We cannot apply the Σ01-extraction technique to the above proof
(applied to a totality proof of f ), since the conclusion is Σ02
The body (∀y ∈N) (f (x) ≤ f (y)) of ∃-quantification is undecidable
![Page 149: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/149.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Example: the minimum principle
Given a unary function symbol f , write:
Total(f ) := (∀x ∈N)(f (x) ∈ N)
x ≤ y := x − y = 0
(totality predicate)
(truncated subtraction)
Theorem (Minimum principle – MinP)
PA2 ` Total(f ) ⇒ (∃x ∈N) (∀y ∈N) (f (x) ≤ f (y))︸ ︷︷ ︸undecidable
Proof. Reductio ad absurdum + course by value induction
The minimum principle is not intuitionistically provable (oracle)
We cannot apply the Σ01-extraction technique to the above proof
(applied to a totality proof of f ), since the conclusion is Σ02
The body (∀y ∈N) (f (x) ≤ f (y)) of ∃-quantification is undecidable
![Page 150: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/150.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Example: the minimum principle
Given a unary function symbol f , write:
Total(f ) := (∀x ∈N)(f (x) ∈ N)
x ≤ y := x − y = 0
(totality predicate)
(truncated subtraction)
Theorem (Minimum principle – MinP)
PA2 ` Total(f ) ⇒ (∃x ∈N) (∀y ∈N) (f (x) ≤ f (y))︸ ︷︷ ︸undecidable
Proof. Reductio ad absurdum + course by value induction
The minimum principle is not intuitionistically provable (oracle)
We cannot apply the Σ01-extraction technique to the above proof
(applied to a totality proof of f ), since the conclusion is Σ02
The body (∀y ∈N) (f (x) ≤ f (y)) of ∃-quantification is undecidable
![Page 151: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/151.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Implementation of the minimum principle
I ≡ λx . x T ≡ λxy . x F ≡ λxy . y
〈t1, t2〉 ≡ λz . z t1 t2 (z fresh λ-variable)
pred ≡ λn . n 〈0, 0〉 (λp . p (λxy . 〈x , s x〉)) (λxy . x)minus ≡ λn,m .m n predcmp ≡ λn,m .minus n m T (λ .F)
Y ≡ (λyf . f (y y f )) (λyf . f (y y f ))
MinP ≡ λf . cc (λk .Y (λr , n . 〈n, λm . cmp (f n) (f m) I (k (r m))〉) 0)� (∀x ∈N) f (x) ∈ N ⇒ (∃x ∈N)(∀y ∈N) f (x) ≤ f (y)
![Page 152: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/152.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Using the minimum principle to prove a Σ01-formula
Idea: The value x given by the minimum principle can be used toprove a Σ0
1-formula, so that we can perform program extraction:
Corollary
PA2 ` Total(f ) ⇒ (∃x ∈N) (f (x) ≤ f (2x + 1))︸ ︷︷ ︸decidable
More generally: PA2 ` Total(f ) ∧ Total(g) ⇒ (∃x ∈N) (f (x) ≤ f (g(x)))
Proof. Take the point x given by the minimum principle
Applying Σ01-extraction to the above non-constructive proof,
we get a correct witness in finitely many evaluation steps
How is this witness computed?
![Page 153: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/153.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Using the minimum principle to prove a Σ01-formula
Idea: The value x given by the minimum principle can be used toprove a Σ0
1-formula, so that we can perform program extraction:
Corollary
PA2 ` Total(f ) ⇒ (∃x ∈N) (f (x) ≤ f (2x + 1))︸ ︷︷ ︸decidable
More generally: PA2 ` Total(f ) ∧ Total(g) ⇒ (∃x ∈N) (f (x) ≤ f (g(x)))
Proof. Take the point x given by the minimum principle
Applying Σ01-extraction to the above non-constructive proof,
we get a correct witness in finitely many evaluation steps
How is this witness computed?
![Page 154: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/154.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
The algorithm underlying Σ01-extraction
Minimum Principle (oracle)(∃x ∈N) (∀y ∈N) ( f (x) ≤ f (y))
Σ01-Corollary
(∃x ∈N) ( f (x) ≤ f (2x + 1))
witness x + justificationof (∀y ∈N) ( f (x) ≤ f (y))
witness x (same as above)+ justif. of f (x) ≤ f (2x + 1)
• Extract witness x + justification• Evaluate witness x (using storage op.)
Return witness x
Correct: continue
Incorrect: backtrackEvaluatejustification
Σ01-extractor
(half conditional)
t0 :
t1 :
t2 :
![Page 155: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/155.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 156: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/156.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)
Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 157: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/157.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)
Σ01-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 158: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/158.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 159: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/159.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)
Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 160: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/160.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)
Σ01-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 161: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/161.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 162: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/162.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)
Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 163: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/163.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)
Σ01-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 164: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/164.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 165: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/165.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 166: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/166.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)
Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 167: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/167.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)
Σ01-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 168: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/168.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 169: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/169.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Transcript of the extraction process
Take f (x) = |x − 1000| (real minimum at x = 1000)
and apply Σ01-extraction to the proof of (∃x ∈N) (f (x) ≤ f (2x + 1))
Step 1 Oracle says: take x = 0 since (∀y ∈N) (f (0) ≤ f (y)) (false)Corollary says: take x = 0 since f (0) ≤ f (1) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 2 Oracle says: take x = 1 since (∀y ∈N) (f (1) ≤ f (y)) (false)Corollary says: take x = 1 since f (1) ≤ f (3) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 3 Oracle says: take x = 3 since (∀y ∈N) (f (3) ≤ f (y)) (false)Corollary says: take x = 3 since f (3) ≤ f (7) (false)Σ0
1-extractor evaluates incorrect justification and backtracks
Step 4 Oracle says: take x = 7 since (∀y ∈N) (f (7) ≤ f (y)) (false). . . . . . . .
Step 11 Oracle says: take x = 1023 since (∀y ∈N) (f (1023) ≤ f (y)) (false)Corollary says: take x = 1023 since f (1023) ≤ f (2047) (true)Σ0
1-extractor evaluates correct justification and returns x = 1023
Note that answer x = 1023 is correct... but not the point where f reaches its minimum
![Page 170: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/170.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Extraction in the Σ0n-case (1/2)
Definition (Conditional refutation)
rA ∈ Λ is a conditional refutation of the predicate A(x) if
For all n ∈ N such that M 6|= A(n): rA n � ¬A(n)
Such a conditional refutation can be constructed for every predicateA(x) of 1st-order arithmetic
This result is a consequence of the following
Theorem (Realizing true arithmetic formulas) [Krivine-Miquey]
For every formula A(x1, . . . , xk) of 1st-order arithmetic, there exists aclosed proof-like term tA such that:
If M |= A(n1, . . . , nk), then tA n1 · · · nk � A(n1, . . . , nk)
(for all n1, . . . , nk ∈ N)
![Page 171: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/171.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Extraction in the Σ0n-case (1/2)
Definition (Conditional refutation)
rA ∈ Λ is a conditional refutation of the predicate A(x) if
For all n ∈ N such that M 6|= A(n): rA n � ¬A(n)
Such a conditional refutation can be constructed for every predicateA(x) of 1st-order arithmetic
This result is a consequence of the following
Theorem (Realizing true arithmetic formulas) [Krivine-Miquey]
For every formula A(x1, . . . , xk) of 1st-order arithmetic, there exists aclosed proof-like term tA such that:
If M |= A(n1, . . . , nk), then tA n1 · · · nk � A(n1, . . . , nk)
(for all n1, . . . , nk ∈ N)
![Page 172: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/172.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Extraction in the Σ0n-case (1/2)
Definition (Conditional refutation)
rA ∈ Λ is a conditional refutation of the predicate A(x) if
For all n ∈ N such that M 6|= A(n): rA n � ¬A(n)
Such a conditional refutation can be constructed for every predicateA(x) of 1st-order arithmetic
This result is a consequence of the following
Theorem (Realizing true arithmetic formulas) [Krivine-Miquey]
For every formula A(x1, . . . , xk) of 1st-order arithmetic, there exists aclosed proof-like term tA such that:
If M |= A(n1, . . . , nk), then tA n1 · · · nk � A(n1, . . . , nk)
(for all n1, . . . , nk ∈ N)
![Page 173: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/173.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Extraction in the Σ0n-case (2/2)
The Kamikaze extraction method [M. 2009]
Let
1 t0 � (∃x ∈N)A(x)
2 rA a conditional refutation of the predicate A(x)
Then the process
t0 ?M (λxy . print x (rA x y)) · �
displays a correct witness after finitely many evaluation steps
Remark: No correctness invariant is ensured as soon as the (first)correct witness has been displayed!
After, anything may happen: crash, infinite loop, displaying incorrectwitnesses, etc. (Kamikaze behavior)
![Page 174: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/174.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Extraction in the Σ0n-case (2/2)
The Kamikaze extraction method [M. 2009]
Let
1 t0 � (∃x ∈N)A(x)
2 rA a conditional refutation of the predicate A(x)
Then the process
t0 ?M (λxy . print x (rA x y)) · �
displays a correct witness after finitely many evaluation steps
Remark: No correctness invariant is ensured as soon as the (first)correct witness has been displayed!
After, anything may happen: crash, infinite loop, displaying incorrectwitnesses, etc. (Kamikaze behavior)
![Page 175: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/175.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Interlude: on numeration systems
Numeration systems used in the History:
Tally sticks (35000 BC)
Babylonian (3100 BC)
Egyptian (3000 BC)
Roman (1000 BC) XLII
Hindu-Arabic (300 AD) 42
Numeration systems used in Logic:
Peano: ssssssssssssssssssssssssssssssssssssssssss0
Church: λxf . f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f x)))))))))))))))))))))))))))))))))))))))))
Krivine: (λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λxf .x)))))))))))))))))))))))))))))))))))))))))))
![Page 176: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/176.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Interlude: on numeration systems
Numeration systems used in the History:
Tally sticks (35000 BC)
Babylonian (3100 BC)
Egyptian (3000 BC)
Roman (1000 BC) XLII
Hindu-Arabic (300 AD) 42
Numeration systems used in Logic:
Peano: ssssssssssssssssssssssssssssssssssssssssss0
Church: λxf . f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f x)))))))))))))))))))))))))))))))))))))))))
Krivine: (λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λxf .x)))))))))))))))))))))))))))))))))))))))))))
![Page 177: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/177.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Interlude: on numeration systems
Numeration systems used in the History:
Tally sticks (35000 BC)
Babylonian (3100 BC)
Egyptian (3000 BC)
Roman (1000 BC) XLII
Hindu-Arabic (300 AD) 42
Numeration systems used in Logic:
Peano: ssssssssssssssssssssssssssssssssssssssssss0
Church: λxf . f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f x)))))))))))))))))))))))))))))))))))))))))
Krivine: (λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λxf .x)))))))))))))))))))))))))))))))))))))))))))
![Page 178: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/178.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Interlude: on numeration systems
Numeration systems used in the History:
Tally sticks (35000 BC)
Babylonian (3100 BC)
Egyptian (3000 BC)
Roman (1000 BC) XLII
Hindu-Arabic (300 AD) 42
Numeration systems used in Logic:
Peano: ssssssssssssssssssssssssssssssssssssssssss0
Church: λxf . f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f x)))))))))))))))))))))))))))))))))))))))))
Krivine: (λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λxf .x)))))))))))))))))))))))))))))))))))))))))))
![Page 179: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/179.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Interlude: on numeration systems
Numeration systems used in the History:
Tally sticks (35000 BC)
Babylonian (3100 BC)
Egyptian (3000 BC)
Roman (1000 BC) XLII
Hindu-Arabic (300 AD) 42
Numeration systems used in Logic:
Peano: ssssssssssssssssssssssssssssssssssssssssss0
Church: λxf . f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f x)))))))))))))))))))))))))))))))))))))))))
Krivine: (λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λnxf .f (nxf ))((λxf .x)))))))))))))))))))))))))))))))))))))))))))
![Page 180: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/180.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Primitive numerals (1/2)
To get rid of Krivine numerals n = sn0 (cf paleolithic numeration)
we extend the machine with the following instructions:
For every natural number n ∈ N, an instruction n ∈ Kwith no evaluation rule (i.e. inert constant: pure data)
Intuition: n ? π � segmentation fault
An instruction null ∈ K with the rules
null ? n · u · v �{u ? π if n = 0v ? π otherwise
Instructions f ∈ K with the rules
f ? n1 · · · nk · u · π � u ? m · π where m = f (n1, . . . , nk)
for all the usual arithmetic operations
![Page 181: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/181.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Primitive numerals (1/2)
To get rid of Krivine numerals n = sn0 (cf paleolithic numeration)
we extend the machine with the following instructions:
For every natural number n ∈ N, an instruction n ∈ Kwith no evaluation rule (i.e. inert constant: pure data)
Intuition: n ? π � segmentation fault
An instruction null ∈ K with the rules
null ? n · u · v �{u ? π if n = 0v ? π otherwise
Instructions f ∈ K with the rules
f ? n1 · · · nk · u · π � u ? m · π where m = f (n1, . . . , nk)
for all the usual arithmetic operations
![Page 182: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/182.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Primitive numerals (1/2)
To get rid of Krivine numerals n = sn0 (cf paleolithic numeration)
we extend the machine with the following instructions:
For every natural number n ∈ N, an instruction n ∈ Kwith no evaluation rule (i.e. inert constant: pure data)
Intuition: n ? π � segmentation fault
An instruction null ∈ K with the rules
null ? n · u · v �{u ? π if n = 0v ? π otherwise
Instructions f ∈ K with the rules
f ? n1 · · · nk · u · π � u ? m · π where m = f (n1, . . . , nk)
for all the usual arithmetic operations
![Page 183: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/183.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Primitive numerals (1/2)
To get rid of Krivine numerals n = sn0 (cf paleolithic numeration)
we extend the machine with the following instructions:
For every natural number n ∈ N, an instruction n ∈ Kwith no evaluation rule (i.e. inert constant: pure data)
Intuition: n ? π � segmentation fault
An instruction null ∈ K with the rules
null ? n · u · v �{u ? π if n = 0v ? π otherwise
Instructions f ∈ K with the rules
f ? n1 · · · nk · u · π � u ? m · π where m = f (n1, . . . , nk)
for all the usual arithmetic operations
![Page 184: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/184.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Primitive numerals (2/2)
Call-by-value implication, yet another definition:
Formulas A,B ::= · · · | [e]⇒ A
with the semantics: ‖{e} ⇒ A‖ = {n · π : n = eN, π ∈ ‖A‖}
Redefining the set of natural numbers:
N′ := {x : ∀Z (([x ]⇒ Z)⇒ Z)}
box := λk . k x � ∀x ([x]⇒ x ∈ N′)box n � n ∈ N′
λn . n λx . s x box � (∀x ∈N′)(s(x) ∈ N′)λnm . n λx .m λy . (+) x y box � (∀x , y ∈N′)(x + y ∈ N′)
rec cbv := λz0zs .Y λrx . null x z0 ((−) x 1λy . zs y (r y))� ∀Z [Z(0) ⇒ ∀y ([y ]⇒ Z(y)⇒ Z(s(y))) ⇒ ∀x ([x]⇒ Z(x))]
rec := λz0zsn . n λx . rec cbv z0 (λyz . zs (box y) z) x� ∀Z [Z(0)⇒ (∀y ∈N′)(Z(y)⇒ Z(s(y))) ⇒ (∀x ∈N′)Z(x)]
Conclusion: � ∀x (x ∈ N′ ⇔ x ∈ N)
![Page 185: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/185.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Primitive numerals (2/2)
Call-by-value implication, yet another definition:
Formulas A,B ::= · · · | [e]⇒ A
with the semantics: ‖{e} ⇒ A‖ = {n · π : n = eN, π ∈ ‖A‖}
Redefining the set of natural numbers:
N′ := {x : ∀Z (([x ]⇒ Z)⇒ Z)}
box := λk . k x � ∀x ([x]⇒ x ∈ N′)box n � n ∈ N′
λn . n λx . s x box � (∀x ∈N′)(s(x) ∈ N′)λnm . n λx .m λy . (+) x y box � (∀x , y ∈N′)(x + y ∈ N′)
rec cbv := λz0zs .Y λrx . null x z0 ((−) x 1λy . zs y (r y))� ∀Z [Z(0) ⇒ ∀y ([y ]⇒ Z(y)⇒ Z(s(y))) ⇒ ∀x ([x]⇒ Z(x))]
rec := λz0zsn . n λx . rec cbv z0 (λyz . zs (box y) z) x� ∀Z [Z(0)⇒ (∀y ∈N′)(Z(y)⇒ Z(s(y))) ⇒ (∀x ∈N′)Z(x)]
Conclusion: � ∀x (x ∈ N′ ⇔ x ∈ N)
![Page 186: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/186.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Primitive numerals (2/2)
Call-by-value implication, yet another definition:
Formulas A,B ::= · · · | [e]⇒ A
with the semantics: ‖{e} ⇒ A‖ = {n · π : n = eN, π ∈ ‖A‖}
Redefining the set of natural numbers:
N′ := {x : ∀Z (([x ]⇒ Z)⇒ Z)}
box := λk . k x � ∀x ([x]⇒ x ∈ N′)box n � n ∈ N′
λn . n λx . s x box � (∀x ∈N′)(s(x) ∈ N′)λnm . n λx .m λy . (+) x y box � (∀x , y ∈N′)(x + y ∈ N′)
rec cbv := λz0zs .Y λrx . null x z0 ((−) x 1λy . zs y (r y))� ∀Z [Z(0) ⇒ ∀y ([y ]⇒ Z(y)⇒ Z(s(y))) ⇒ ∀x ([x]⇒ Z(x))]
rec := λz0zsn . n λx . rec cbv z0 (λyz . zs (box y) z) x� ∀Z [Z(0)⇒ (∀y ∈N′)(Z(y)⇒ Z(s(y))) ⇒ (∀x ∈N′)Z(x)]
Conclusion: � ∀x (x ∈ N′ ⇔ x ∈ N)
![Page 187: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/187.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Primitive numerals (2/2)
Call-by-value implication, yet another definition:
Formulas A,B ::= · · · | [e]⇒ A
with the semantics: ‖{e} ⇒ A‖ = {n · π : n = eN, π ∈ ‖A‖}
Redefining the set of natural numbers:
N′ := {x : ∀Z (([x ]⇒ Z)⇒ Z)}
box := λk . k x � ∀x ([x]⇒ x ∈ N′)box n � n ∈ N′
λn . n λx . s x box � (∀x ∈N′)(s(x) ∈ N′)λnm . n λx .m λy . (+) x y box � (∀x , y ∈N′)(x + y ∈ N′)
rec cbv := λz0zs .Y λrx . null x z0 ((−) x 1λy . zs y (r y))� ∀Z [Z(0) ⇒ ∀y ([y ]⇒ Z(y)⇒ Z(s(y))) ⇒ ∀x ([x]⇒ Z(x))]
rec := λz0zsn . n λx . rec cbv z0 (λyz . zs (box y) z) x� ∀Z [Z(0)⇒ (∀y ∈N′)(Z(y)⇒ Z(s(y))) ⇒ (∀x ∈N′)Z(x)]
Conclusion: � ∀x (x ∈ N′ ⇔ x ∈ N)
![Page 188: Alexandre Miquel - Sciencesconf.org · 2017-01-27 · Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction From intuitionistic logic](https://reader035.fdocuments.mx/reader035/viewer/2022081405/5f0981597e708231d4272558/html5/thumbnails/188.jpg)
Introduction 2nd-order arithmetic (PA2) Extracted programs Classical realizability Witness extraction
Primitive numerals (2/2)
Call-by-value implication, yet another definition:
Formulas A,B ::= · · · | [e]⇒ A
with the semantics: ‖{e} ⇒ A‖ = {n · π : n = eN, π ∈ ‖A‖}
Redefining the set of natural numbers:
N′ := {x : ∀Z (([x ]⇒ Z)⇒ Z)}
box := λk . k x � ∀x ([x]⇒ x ∈ N′)box n � n ∈ N′
λn . n λx . s x box � (∀x ∈N′)(s(x) ∈ N′)λnm . n λx .m λy . (+) x y box � (∀x , y ∈N′)(x + y ∈ N′)
rec cbv := λz0zs .Y λrx . null x z0 ((−) x 1λy . zs y (r y))� ∀Z [Z(0) ⇒ ∀y ([y ]⇒ Z(y)⇒ Z(s(y))) ⇒ ∀x ([x]⇒ Z(x))]
rec := λz0zsn . n λx . rec cbv z0 (λyz . zs (box y) z) x� ∀Z [Z(0)⇒ (∀y ∈N′)(Z(y)⇒ Z(s(y))) ⇒ (∀x ∈N′)Z(x)]
Conclusion: � ∀x (x ∈ N′ ⇔ x ∈ N)