Una prueba constructiva del axioma de elección dependiente

Transcripción

Una prueba constructiva del axioma de elección dependiente
dPAω
Resumen
“Plan d’attaque”
Una prueba constructiva del axioma de
elección dependiente en lógica clásica
Hugo Herbelin1, Étienne Miquey1,2
2
1
Team πr2 (INRIA), PPS, Université Paris-Diderot
Fac. de Ingenierı́a, Universidad de la República, Uruguay
15 de Marzo 2016
Informatique
IRIF
fondamentale
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
1/ 24
Resumen
dPAω
“Plan d’attaque”
En el capı́tulo anterior...
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
2/ 24
dPAω
Resumen
“Plan d’attaque”
La meta
1
Objetivo : definir un sistema de tipos para tener una prueba
del axioma de elección dependiente
2
Bonus : corrección del sistema sin meta-uso del axioma de
elección
3
Super-bonus : equiconsistencia con otro sistema lógico
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
3/ 24
dPAω
Resumen
“Plan d’attaque”
La meta
1
Objetivo : definir un sistema de tipos para tener una prueba
del axioma de elección dependiente
2
Bonus : corrección del sistema sin meta-uso del axioma de
elección
3
Super-bonus : equiconsistencia con otro sistema lógico
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
3/ 24
dPAω
Resumen
“Plan d’attaque”
La meta
1
Objetivo : definir un sistema de tipos para tener una prueba
del axioma de elección dependiente
2
Bonus : corrección del sistema sin meta-uso del axioma de
elección
3
Super-bonus : equiconsistencia con otro sistema lógico
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
3/ 24
dPAω
Resumen
“Plan d’attaque”
Teorı́a de tipos de Martin-Löf (1973)
Ingredientes
Γ, x : T ` p : A
∀I
Γ ` λx.p : ∀x T A
Γ, a : A ` p : B
→I
Γ ` λa.p : A → B
Γ ` p : A[t/x]
Γ`t:T
Γ ` (t, p) : ∃x T A
∃I
Γ ` p : ∃x T A(x)
∃E
Γ ` prf p : A(wit p)
Axioma de elección
ACA : ∀x A ∃y B P(x, y ) → ∃f A→B ∀x A P(x, f (x))
ACA := λH.(λx. wit(Hx),λx. prf(Hx))
:
∀x A ∃y B P(x, y ) → ∃f A→B ∀x A P(x, f (x))
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
4/ 24
dPAω
Resumen
“Plan d’attaque”
Lógica clásica vs tipos dependientes
En lógica clásica :
H0 :=callccα (1, φ(throwα (2, p)) : ∃xP(x)
Restricción a la elección numerable :
ACN : ∀x N ∃y B P(x, y ) → ∃f N→B ∀x N P(x, f (x))
Prueba :
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
5/ 24
dPAω
Resumen
“Plan d’attaque”
Lógica clásica vs tipos dependientes
En lógica clásica :
H0 :=callccα (1, φ(throwα (2, p)) : ∃xP(x)
Restricción a la elección numerable :
ACN : ∀x N ∃y B P(x, y ) → ∃f N→B ∀x N P(x, f (x))
Prueba :
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
5/ 24
dPAω
Resumen
“Plan d’attaque”
Lógica clásica vs tipos dependientes
En lógica clásica :
H0 :=callccα (1, φ(throwα (2, p)) : ∃xP(x)
Restricción a la elección numerable :
ACN : ∀x N ∃y B P(x, y ) → ∃f N→B ∀x N P(x, f (x))
Prueba :
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
5/ 24
dPAω
Resumen
“Plan d’attaque”
Lógica clásica vs tipos dependientes
En lógica clásica :
H0 :=callccα (1, φ(throwα (2, p)) : ∃xP(x)
Restricción a la elección numerable :
ACN : ∀x N ∃y B P(x, y ) → ∃f N→B ∀x N P(x, f (x))
Prueba :
AC := λH.(λn. wit(Hn), λn. prf(Hn))
AC := λH.(λn.if n = 0 then wit H 0 else
λn.if n = 1 then wit H 1 else ... ,
λn.if n = 0 then prf H 0 else
λn.if n = 1 then prf H 1 else ... )
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
5/ 24
dPAω
Resumen
“Plan d’attaque”
Lógica clásica vs tipos dependientes
En lógica clásica :
H0 :=callccα (1, φ(throwα (2, p)) : ∃xP(x)
Restricción a la elección numerable :
ACN : ∀x N ∃y B P(x, y ) → ∃f N→B ∀x N P(x, f (x))
Prueba :
AC := λH. let H0 = H 0 in
let H1 = H 1 in
...
(λn.if n = 0 then wit H0 else
λn.if n = 1 then wit H1 else ... ,
λn.if n = 0 then prf H0 else
λn.if n = 1 then prf H1 else ... )
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
5/ 24
dPAω
Resumen
“Plan d’attaque”
Lógica clásica vs tipos dependientes
En lógica clásica :
H0 :=callccα (1, φ(throwα (2, p)) : ∃xP(x)
Restricción a la elección numerable :
ACN : ∀x N ∃y B P(x, y ) → ∃f N→B ∀x N P(x, f (x))
Prueba :
AC := λH. let H∞ = (H 0, H 1, . . . , H n, . . .) in
(λn.nth n H∞ , λn.nth n H∞ )
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
5/ 24
dPAω
Resumen
“Plan d’attaque”
Lógica clásica vs tipos dependientes
En lógica clásica :
H0 :=callccα (1, φ(throwα (2, p)) : ∃xP(x)
Restricción a la elección numerable :
ACN : ∀x N ∃y B P(x, y ) → ∃f N→B ∀x N P(x, f (x))
Prueba :
AC := λH. let H∞ = cofix0fn (H n, f (S(n))) in
(λn.nth n H∞ , λn.nth n H∞ )
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
5/ 24
dPAω
Resumen
“Plan d’attaque”
dPAω
Ref : Hugo Herbelin (LICS’12)
A Constructive Proof of Dependent
Choice, Compatible with Classical Logic
Un sistema formal :
clásico : p, q ::= ... | catchα p | throwα p
con tipos dependientes :
fórmulas : A, B ::= ... | [a : A] → B | t = u,
términos : t, u ::= ... | wit p,
pruebas : p, q ::= ... | prf p
una compartimentación :
Γ ` p : ∃x T A(x) p Nef
Γ ` prf p : A(wit p)
Γ ` p : ∃x T A(x) Γ, x : T , a : A ` q : B
Γ ` dest p as ((x, a)) in q : B
call-by-value y sharing : p, q ::= ... | let a = q in p
con constructores inductivos y coinductivos :
p, q ::= ... | ind t of [p | (x, a).q] | cofixtbn p
pereza para el cofix
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
6/ 24
dPAω
Resumen
“Plan d’attaque”
Lenguaje
Términos
t, u ::= x | 0 | S(t) | rec t of [t | (x, y ).t] | λx.t | t u | wit p
Pruebas
p, q ::=
|
|
|
|
|
|
|
|
Étienne Miquey
a | () | ιi (p) | (p1 , p2 ) | (t, p) | λa.p | λx.p
case p of [a1 .p1 | a2 .p2 ]
split p as (a1 , a2 ) in q
dest p as (x, a) in q
let a = q in p
p q | p t | exfalso p
cofixtbx p | ind t of [p0 | (x, a).pS ]
refl | subst p q | prf p
catchα p | throwα p
Una prueba constructiva del axioma de elección dependiente en lógica clásica
7/ 24
dPAω
Resumen
“Plan d’attaque”
Reglas de reducción
Términos :
wit(t, p)
(λx.t)u
rec 0 of [t0 | (x, y ).tS ]
rec S(t) of [t0 | (x, y ).tS ]
Étienne Miquey
B
B
B
B
t
t[u/x]
t0
tS [t/x][rec t of [t0 | (x, y ).tS ]/y ]
Una prueba constructiva del axioma de elección dependiente en lógica clásica
8/ 24
dPAω
Resumen
“Plan d’attaque”
Reglas de reducción
Call-by-value :
let a = ιi (p) in q
let a = (p1 , p2 ) in q
let a = (t, p) in q
let a = λx.p in q
let a = λb.p in q
let a = () in q
let a = b in q
B
B
B
B
B
B
B
let b = p in q[ιi (b)/a]
let a1 = p1 in let a2 = p2 in q[(a1 , a2 )/a]
let b = p in q[(t, b)/a]
q[λx.p/a]
q[λb.p/a]
q[()/a]
q[b/a]
case ιi (p) of [a1 .p1 | a2 .p2 ]
split(p1 , p2 ) as (a1 , a2 ) in q
dest(t, p) as (x, a) in q
prf(t, p)
(λa.p)q
(λx.p)t
subst refl p
ind 0 of [p0 | (x, a).pS ]
ind S(t) of [p0 | (x, a).pS ]
B
B
B
B
B
B
B
B
B
let ai = p in pi
let a1 = p1 in let a2 = p2 in q
let a = p in q[t/x]
p
let a = q in p
p[t/x]
p
p0
pS [t/x][ind t of [p0 | (x, a).pS ]/a]
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
8/ 24
dPAω
Resumen
“Plan d’attaque”
Reglas de reducción
Lógica clásica :
F [exfalso p]
F [throwα p]
F [catchα p]
B exfalso p
B throwα p
B catchα F [p[F /α]]
exfalso exfalso p B exfalso p
exfalso throwβ p B throwβ p
exfalso catchα p B exfalso p[exfalso[]/α]
throwβ exfalso p
throwβ throwα p
throwβ catchα p
catchα throwα p
catchβ catchα p
Étienne Miquey
B
B
B
B
B
exfalso p
throwα p
throwβ p[β/α]
catchα p
catchβ p[β/α]
Una prueba constructiva del axioma de elección dependiente en lógica clásica
8/ 24
dPAω
Resumen
“Plan d’attaque”
Reglas de reducción
Cofix :
pereza :
Fc [] ::= case[] of [a1 .p1 | a2 .p2 ] | split[] as (a1 , a2 ) in q
| dest[] as (x, a) in q
Fc [cofixtax p] B let c = cofixtax p in Fc [c]
desplegamiento :
let a = cofixtx,b p in D[Fc [a]]
B let a = p[λy .cofixybx p/b][t/x] in D[Fc [a]]
control :
C [] ::= exfalso[] | throwβ [] | catchα []
let a = cofixtbx p in C [q] B C [let a = cofixtbx p in q]
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
8/ 24
dPAω
Resumen
“Plan d’attaque”
Reglas de reducción
Fórmulas :
0=0
0 = S(u)
S(t) = 0
S(t) = S(u)
t A
νfx
Étienne Miquey
B
B
B
B
B
>
⊥
⊥
t=u
y
A[t/x][νfx
A/f (x) = 0]
Una prueba constructiva del axioma de elección dependiente en lógica clásica
8/ 24
dPAω
Resumen
“Plan d’attaque”
Tipaje
Γ ` p : ∃x T A(x) pNef
Γ ` prf p : A(wit p)
Γ ` p : [a : A] ⇒ B
Γ`q:A a∈
/ FV (B) si q no es Nef
Γ ` p q : B[q/a]
Negative-elimination-free
N, M ::= ... | λa.p | (N, N) | ιi (N) | prf N | let a = M in N | ...
# catchα , throwα , cofixxbn p, p q, p t sólo dentro de λa.p o λx.p
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
9/ 24
Resumen
Γ � p1 : A1
Γ � (p1 , p2 ) : A1 ∧ A2
Tipaje
Γ � p : A1 ∧ A 2
dPAω
Γ � p2 : A2
Γ, a1 : A1 , a2 : A2 � q : B[(a1 , a2 )/a]
∧I
Γ � p : Ai
Γ � ιi (p) : A1 ∨ A2
“Plan d’attaque”
∨iI
a � FV(B) if p not N-elimination-free
a1 , a2 � FV(B)
∧E
Γ � split p as (a1 , a2 ) in q : B[p/a]
Γ � p : A1 ∨ A2
Γ, a(a
: B[ι2 (a2 )/a] a � FV(B) if p not N-elimination-free
a1 , a2 � FV(B)
Γ�p:⊥
Γ � Γ,
p :a2A : A2 �A p≡2 B
1 : :AA)
1 �∈ pΓ1 : B[ι1 (a1 )/a]
axiom
conv
�I
⊥E
∨E
Γ�a:A
p : Bp of [a1 .p1 | a2 .pΓ
:�
Γ � exfalso p : C
Γ Γ� �case
B[p/a]
2 ] �: ()
Γ � pΓ
�→
p2 :BA2 Γ � q : A a Γ� �FV(B)
p : Ai if q not N-elimination-free
1 :�Ap1 : [a :ΓA]
∧I
∨iI
→I
→E
Γ � (p1 , p2 ) : A1 ∧ A2
: A1 ∨ A2
Γ � λa.p : [a : A] → B
Γ �Γ p�qιi:(p)
B[q/a]
Γ, a : A � p : B
Γ � p : A1 ∧ A 2
Γ � p : A1 ∨ A2
Γ, a1 : A1 , a2 : AΓ
Γ �if pp: not
∀x AN-elimination-free
A 1 , ax2 )/a]
fresh in aΓ � FV(B)
2 �� qp :: B[(a
∀I
∀E
ΓΓ� �split
λx.p : p∀xasA (a1 , a2 ) in Γq �: B[p/a]
p t : A[t/x]
a1 , a2 � FV(B)
Γ, a1 : A1 � p1 : B[ιΓ1 (a
Γ, a2 : A2 Γ
� �p2p: :B[ι
a � FV(B) if p not N-elimination-free
∃x2 (a2 )/a]
p is N-elimination-free
� 1p)/a]
: A[t/x]
∃I
∃prf
E
Γ � (t, p) : ∃x
p 2:]A[wit
p/x]
Γ �A case p of [aΓ1 .p� 1prf
| a2 .p
: B[p/a]
∧E
a1 , a2 � FV(B)
∨E
Γ � p : ∃x AΓ, a : Γ,
� q : B[(x, a)/b]
if p notifN-elimination-free
a � FV(B)
Γ � p : [ax :fresh
A] →inB Γ Γ � qb :�AFV(B)
a � FV(B)
q not N-elimination-free
A �a p: A: B
∃E
→I
→E
Γ � dest p as (x, a) inΓq�: pB[p/b]
Γ � λa.p : [a : A] → B
q : B[q/a]
p : ∀x
x fresh inΓ Γ� p : A Γ �(α
A⊥⊥A) ∈ Γ
∀I
∀Ethrow
catch
Γ � p tα :pA[t/x]
Γ � catchαΓp�: λx.p
A : ∀x A
Γ � throw
:C
Γ, α : Γ
A⊥⊥� �p :p A: A
Fig. 1.
dPL: a classical predicate
strong existential
Γ�p
Γ �logic
p : with
A[t/x]
: ∃x
p is N-elimination-free
∃I
∃prf
E
Γ � (t, p) : ∃x A
Γ � prf p : A[wit p/x]
to express this dependency, underlining the fact that a
When known not dependent, we might shorten the
Ana)/b]
advantagex of
allowing
writing
of [aif: pA]not
→ N-elimination-free
B into the more conventional
A→
Γ can
� p :occur
∃x A in some
Γ, a :term
A � in
q : B.
B[(x,
fresh
in Γ
b � FV(B)
a � FV(B)
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
9/ 24
dPAω
Resumen
“Plan d’attaque”
Tipaje
The rules axiom, conv, � , ⊥ , ∧ , ∧ , ∨ , ∨ , → , → , catch, throw of Figure 1 and the following rules:
I
E
I
i
I
E
E
Γ, x : T � p : A
Γ�t:T
Γ � (t, p) : ∃xT A
Γ�t:T
Γ � pt : A[t/x]
Γ � p : ∃xT A
∃I
Γ � p : ∃xT A
E
Γ � p : ∀xT A
∀I
Γ � λx.p : ∀xT A
Γ � p : A[t/x]
I
Γ, x : T, a : A � q : B
Γ � dest p as (x, a) in q : B
p is N-elimination-free
Γ � prf p : A[wit p/x]
Γ�t:N
refl
Γ � refl : t = t
Γ�t:N
Γ�p:t=u
Γ, a : A � q : B
ind
a � FV(B) if p not N-elimination-free
Γ, f : T → N, x : T, b : ∀y f (y) = 0 � p : A
Γ�
Étienne Miquey
subst
Γ, x : T, a : A � q : A[S (x)/x]
Γ � let a = p in q : B[p/a]
Γ�t:T
x � Dom(Γ)
Γ � subst p q : A[u/x]
Γ � p : A[0/x]
∃E
∃prf
E
Γ � q : A[t/x]
Γ � ind t of [p | (x, a).q] : A[t/x]
Γ�p:A
∀E
cofixtbx p
:
νft x A
cut
f positive in A
νI
Una prueba constructiva del axioma de elección dependiente en lógica clásica
9/ 24
dPAω
Resumen
ind
Γ � ind t of [p | (x, a).q] : A[t/x]
Tipaje
Γ�p:A
Γ, a : A � q : B
a � FV(B) if p not N-elimination-free
cut
Γ � let a = p in q : B[p/a]
Γ�t:T
Γ, f : T → N, x : T, b : ∀y f (y) = 0 � p : A
Γ�
(x : T ) ∈ Γ
Γ, x : U � t : T
Γ�x:T
Γ � λx.t : U → T
Γ�t:N
Γ � t0 : U
cofixtbx p
:
f positive in A
νI
νft x A
Γ�t:U→T
Γ�u:U
Γ�t:N
Γ � tu : T
Γ, x : N, y : U � tS : U
Γ � rec t of [t0 | (x, y).tS ] : U
Fig. 4.
“Plan d’attaque”
Γ�0:N
Γ � p : ∃xT A
Γ � S (t) : N
p is N-elimination-free
Γ � wit p : T
∃wit
E
dPAω : Classical arithmetic in finite types with strong existential
the derived computational content is not the one we
• if p, q, p1 and p2 are N-elimination-free th
want because of the use of non positive connectives in
prf p, ιi (p), (p1 , p2 ), (t, p), ind t of [p1 | (x, a).p
the second-order encoding, what justifies taking νI and
let a
=
p
in q, refl, subst p
its associated reduction rule as primitive. Indeed, with
case a of [a1 .p1 | a2 .p2 ], dest q as (x, a) in p a
a primitive notion of coinductive formula, it becomes
split q as (a1 , a2 ) in p are N-elimination-free
syntactically direct to see ν as a constructor of positive
formulae. In particular, and this is important later on
The resulting theory is then essentially Troelstr
to prove
the axioms of
countable
choice and
arithmetic
in all
finite clásica
types HAω (with9/equality
Étienne
Miquey
Una
prueba constructiva
del dependent
axioma de elección
dependiente
en lógica
24
dPAω
Resumen
“Plan d’attaque”
Elección numerable
Elección numerable
ACN := ??
: ∀n∃yP(n, y ) → ∃f ∀nP(n, f (n))
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
10/ 24
dPAω
Resumen
“Plan d’attaque”
Elección numerable
Elección numerable
ACN := λH.let a = cofix0bn (Hn, b(S(n))
in (λn. wit(nth(n, a)), λn. prf(nth(n, a))
: ∀n∃yP(n, y ) → ∃f ∀nP(n, f (n))
dónde
nth(n, a) := π1 (ind n of [a | (x, c).π2 (c)])
Proof :
# pizarrón
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
10/ 24
dPAω
Resumen
“Plan d’attaque”
Elección numerable
Elección numerable
ACN := λH.let a = cofix0bn (Hn, b(S(n))
in (λn. wit(nth(n, a)), λn. prf(nth(n, a))
: ∀n∃yP(n, y ) → ∃f ∀nP(n, f (n))
dónde
nth(n, a) := π1 (ind n of [a | (x, c).π2 (c)])
Proof :
# pizarrón
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
10/ 24
dPAω
Resumen
“Plan d’attaque”
Elección dependiente
Elección dependiente
DC
Étienne Miquey
:= ??
: ∀x∃yP(x, y )
→ ∀x0 ∃f (f (0) = x0 ∧ ∀nP(f (n), f (S(n))))
Una prueba constructiva del axioma de elección dependiente en lógica clásica
11/ 24
dPAω
Resumen
“Plan d’attaque”
Elección dependiente
Elección dependiente
DC
:= λHλx0 .let b = s H x0 in
(λn. wit(nth(n, x0 , b)),
refl, λn.π1 (prf(prf(nth(n, x0 , b)))))
:
∀x∃yP(x, y )
→ ∀x0 ∃f (f (0) = x0 ∧ ∀nP(f (n), f (S(n))))
dónde
sax
:= cofixxbn dest b n as (y , c) in (y , (c, b y ))
nth(n, x0 , b) := ind n of
[b | (m, c).(wit(prf(c), π2 (prf(prf(c)))))]
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
11/ 24
Resumen
dPAω
“Plan d’attaque”
El drama
(Dónde se ve que en la vida nada es fácil)
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
12/ 24
dPAω
Resumen
“Plan d’attaque”
Propiedades
Subject reduction
Si Γ ` p : A y p B q, entonces Γ ` q : A.
Normalización
Si Γ ` p : A entonces p se normaliza.
Correción
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
13/ 24
dPAω
Resumen
“Plan d’attaque”
Propiedades
Subject reduction
Si Γ ` p : A y p B q, entonces Γ ` q : A.
Normalización
Si Γ ` p : A entonces p se normaliza.
Correción
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
13/ 24
dPAω
Resumen
“Plan d’attaque”
Propiedades
Subject reduction
Si Γ ` p : A y p B q, entonces Γ ` q : A.
Normalización
Si Γ ` p : A entonces p se normaliza.
Correción
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
13/ 24
dPAω
Resumen
“Plan d’attaque”
Corrección
Conservatividad
Si A es →-ν-wit-∀-free, y `dPAω p : A, entonces existe V tq
`HAω V : A
Conservatividad (bis)
Si A es Σ01 , `dPAω A implica `HAω A
Correción
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
14/ 24
dPAω
Resumen
“Plan d’attaque”
Corrección
Conservatividad
Si A es →-ν-wit-∀-free, y `dPAω p : A, entonces existe V tq
`HAω V : A
Proof :
Sea p : A un término de prueba cerrado. Por normalización, p se reduce
en :
V : ∗-freeness de A implica que V no contiene catchα , throwα , prf
/ FV (V )
D[V ] con D[] := let a = cofixtb,x p in D[] y a ∈
catchα D[V ] : necesariamente α ∈
/ FV (V )
Conservatividad (bis)
Si A es Σ01 , `dPAω A implica `HAω A
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
14/ 24
dPAω
Resumen
“Plan d’attaque”
Corrección
Conservatividad
Si A es →-ν-wit-∀-free, y `dPAω p : A, entonces existe V tq
`HAω V : A
Conservatividad (bis)
Si A es Σ01 , `dPAω A implica `HAω A
Proof :
Toda formula Σ01 es equivalente a una formula →-ν-wit-∀-free.
Correción
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
14/ 24
dPAω
Resumen
“Plan d’attaque”
Corrección
Conservatividad
Si A es →-ν-wit-∀-free, y `dPAω p : A, entonces existe V tq
`HAω V : A
Conservatividad (bis)
Si A es Σ01 , `dPAω A implica `HAω A
Correción
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
14/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización
Normalización
Si Γ `dPAω p : A entonces p se normaliza.
Proof ?
Si p no tiene cofixtx,b q, p termina
Si p no tiene catchα / throwα , p termina
Pero si tiene los dos...
# exploración infinita de una rama co-inductiva
# sub-secuencia sı́n backtrack
# y eso no puede ser !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
15/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización
Normalización
Si Γ `dPAω p : A entonces p se normaliza.
Proof ?
Si p no tiene cofixtx,b q, p termina
Si p no tiene catchα / throwα , p termina
Pero si tiene los dos...
# exploración infinita de una rama co-inductiva
# sub-secuencia sı́n backtrack
# y eso no puede ser !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
15/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización
Normalización
Si Γ `dPAω p : A entonces p se normaliza.
Proof ?
Si p no tiene cofixtx,b q, p termina
Si p no tiene catchα / throwα , p termina
Pero si tiene los dos...
# exploración infinita de una rama co-inductiva
# sub-secuencia sı́n backtrack
# y eso no puede ser !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
15/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización
Normalización
Si Γ `dPAω p : A entonces p se normaliza.
Proof ?
Si p no tiene cofixtx,b q, p termina
Si p no tiene catchα / throwα , p termina
Pero si tiene los dos...
# exploración infinita de una rama co-inductiva
# sub-secuencia sı́n backtrack
# y eso no puede ser !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
15/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización
Normalización
Si Γ `dPAω p : A entonces p se normaliza.
Proof ?
Si p no tiene cofixtx,b q, p termina
Si p no tiene catchα / throwα , p termina
Pero si tiene los dos...
# exploración infinita de una rama co-inductiva
# sub-secuencia sı́n backtrack
# y eso no puede ser !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
15/ 24
dPAω
Resumen
“Plan d’attaque”
Propiedades
Subject reduction
Si Γ ` p : A y p B q, entonces Γ ` q : A.
Normalización
Si Γ ` p : A entonces p se normaliza.
Conservatividad
If A is →-ν-wit-∀-free, and `dPAω p : A, then `HAω p : A
Corrección
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
16/ 24
dPAω
Resumen
“Plan d’attaque”
Propiedades
Subject reduction
Si Γ ` p : A y p B q, entonces Γ ` q : A.
Normalización
Si Γ ` p : A entonces p se normaliza.
Conservatividad
If A is →-ν-wit-∀-free, and `dPAω p : A, then `HAω p : A
Corrección
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
16/ 24
dPAω
Resumen
“Plan d’attaque”
Propiedades
Subject reduction
Si Γ ` p : A y p B q, entonces Γ ` q : A.
Normalización
Si Γ ` p : A entonces p se normaliza.
Conservatividad
If A is →-ν-wit-∀-free, and `dPAω p : A, then `HAω p : A
Corrección
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
16/ 24
dPAω
Resumen
“Plan d’attaque”
Propiedades
Subject reduction
Si Γ ` p : A y p B q, entonces Γ ` q : A.
Normalización
Si Γ ` p : A entonces p se normaliza.
Conservatividad
If A is →-ν-wit-∀-free, and `dPAω p : A, then `HAω p : A
Corrección
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
16/ 24
dPAω
Resumen
“Plan d’attaque”
Propiedades
Subject reduction
Si Γ ` p : A y p B q, entonces Γ ` q : A.
Normalización
Si Γ ` p : A entonces p se normaliza.
Conservatividad
If A is →-ν-wit-∀-free, and `dPAω p : A, then `HAω p : A
Corrección
0dPAω ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
16/ 24
dPAω
Resumen
“Plan d’attaque”
Le plan d’attaque (Rumbo a las peripecias)
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
17/ 24
dPAω
Resumen
“Plan d’attaque”
Continuación : aspecto computaciónal
Intuición
Continuación = reificación del futuro de la computación
Continuation-passing style (CPS)
Pasaje de una continuación a cada étapa del cálculo.
Técnica muy utilizada en compilación
Explicitación del control
# ejemplo : (a + b) + c
Muy útil para definir los operadores de control como cc !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
18/ 24
dPAω
Resumen
“Plan d’attaque”
Continuación : aspecto computaciónal
Intuición
Continuación = reificación del futuro de la computación
Continuation-passing style (CPS)
Pasaje de una continuación a cada étapa del cálculo.
Técnica muy utilizada en compilación
Explicitación del control
# ejemplo : (a + b) + c
Muy útil para definir los operadores de control como cc !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
18/ 24
dPAω
Resumen
“Plan d’attaque”
Continuación : aspecto computaciónal
Intuición
Continuación = reificación del futuro de la computación
Continuation-passing style (CPS)
Pasaje de una continuación a cada étapa del cálculo.
Técnica muy utilizada en compilación
Explicitación del control
# ejemplo : (a + b) + c
Muy útil para definir los operadores de control como cc !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
18/ 24
dPAω
Resumen
“Plan d’attaque”
Continuación : aspecto lógico
Lógica clásica :
lógica intuicionista + axioma clásica
Encaje en lógica intuicionista :
# traducción negativa :
A 7→ (A → ⊥) → ⊥
Cálculo clásico :
cálculo intuicionista + manipulación explicita de
continuaciones
“compilación” en un cálculo intuicionista :
# traducción CPS :
t : A 7→ JtK : (A → ⊥) → ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
19/ 24
dPAω
Resumen
“Plan d’attaque”
Continuación : aspecto lógico
Lógica clásica :
lógica intuicionista + axioma clásica
Encaje en lógica intuicionista :
# traducción negativa :
A 7→ (A → ⊥) → ⊥
Cálculo clásico :
cálculo intuicionista + manipulación explicita de
continuaciones
“compilación” en un cálculo intuicionista :
# traducción CPS :
t : A 7→ JtK : (A → ⊥) → ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
19/ 24
dPAω
Resumen
“Plan d’attaque”
Continuación : aspecto lógico
Lógica clásica :
lógica intuicionista + axioma clásica
Encaje en lógica intuicionista :
# traducción negativa :
A 7→ (A → ⊥) → ⊥
Cálculo clásico :
cálculo intuicionista + manipulación explicita de
continuaciones
“compilación” en un cálculo intuicionista :
# traducción CPS :
t : A 7→ JtK : (A → ⊥) → ⊥
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
19/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización por CPS
Lenguaje 1 : λ-coso, reducción, tipaje
Lenguaje 2 : λ-cosa, reducción, tipaje, normalización
Normalización
Γ `1 p : A
⇒
p normaliza.
Proof :
1
Si Γ `1 p : A
2
Si p →1 q
entonces
entonces
JΓK `2 JpK : JAK
+
JpK →2 JqK
# si p no normalizaba, tampoco normalizarı́a JpK, absurdo !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
20/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización por CPS
Lenguaje 1 : λ-coso, reducción, tipaje
Lenguaje 2 : λ-cosa, reducción, tipaje, normalización
Normalización
Γ `1 p : A
⇒
p normaliza.
Proof :
Γ `1 p : A
1
Si
2
Si p →1 q
entonces
entonces
JΓK `2 JpK : JAK
+
JpK →2 JqK
# si p no normalizaba, tampoco normalizarı́a JpK, absurdo !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
20/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización por CPS
Lenguaje 1 : λ-coso, reducción, tipaje
Lenguaje 2 : λ-cosa, reducción, tipaje, normalización
Normalización
Γ `1 p : A
⇒
p normaliza.
Proof :
Γ `1 p : A
1
Si
2
Si p →1 q
entonces
entonces
JΓK `2 JpK : JAK
+
JpK →2 JqK
# si p no normalizaba, tampoco normalizarı́a JpK, absurdo !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
20/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización por CPS
Lenguaje 1 : λ-coso, reducción, tipaje
Lenguaje 2 : λ-cosa, reducción, tipaje, normalización
Normalización
Γ `1 p : A
⇒
p normaliza.
Proof :
Γ `1 p : A
1
Si
2
Si p →1 q
entonces
entonces
JΓK `2 JpK : JAK
+
JpK →2 JqK
# si p no normalizaba, tampoco normalizarı́a JpK, absurdo !
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
20/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización por CPS
Interes :
método clásico, entre otras cosas para cálculo clásico
permite un entendimiento profundo
traducción de tipos !
sin meta-uso del axioma de elección ?
Inconvenientes :
muy técnico
nuestro lenguaje es poco estándar
Dificultad :
let a = cofixtbx p in C [q] B C [let a = cofixtbx p in q]
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
20/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización por CPS
Interes :
método clásico, entre otras cosas para cálculo clásico
permite un entendimiento profundo
traducción de tipos !
sin meta-uso del axioma de elección ?
Inconvenientes :
muy técnico
nuestro lenguaje es poco estándar
Dificultad :
let a = cofixtbx p in C [q] B C [let a = cofixtbx p in q]
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
20/ 24
dPAω
Resumen
“Plan d’attaque”
Normalización por CPS
Interes :
método clásico, entre otras cosas para cálculo clásico
permite un entendimiento profundo
traducción de tipos !
sin meta-uso del axioma de elección ?
Inconvenientes :
muy técnico
nuestro lenguaje es poco estándar
Dificultad :
let a = cofixtbx p in C [q] B C [let a = cofixtbx p in q]
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
20/ 24
dPAω
Resumen
“Plan d’attaque”
Semantic artefacts
CPS : Ariola et al (FLOPS’12)
Classical Call-by-Need Sequent Calculi :
The Unity of Semantic Artifacts
Semántica operacional :
Cálculo big-step : variante del λ̄µµ̃-cálculo ?
Definición small-step
# reducción context-free
Traducción CPS : variante del λ-cálculo ?
Corrección computacional
Normalización :
Tipaje de la traducción : sistema F ?
Happy end ?
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
21/ 24
dPAω
Resumen
“Plan d’attaque”
Semantic artefacts
CPS : Ariola et al (FLOPS’12)
Classical Call-by-Need Sequent Calculi :
The Unity of Semantic Artifacts
Semántica operacional :
Cálculo big-step : variante del λ̄µµ̃-cálculo ?
Definición small-step
# reducción context-free
Traducción CPS : variante del λ-cálculo ?
Corrección computacional
Normalización :
Tipaje de la traducción : sistema F ?
Happy end ?
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
21/ 24
dPAω
Resumen
“Plan d’attaque”
Semantic artefacts
CPS : Ariola et al (FLOPS’12)
Classical Call-by-Need Sequent Calculi :
The Unity of Semantic Artifacts
Semántica operacional :
Cálculo big-step : variante del λ̄µµ̃-cálculo ?
Definición small-step
# reducción context-free
Traducción CPS : variante del λ-cálculo ?
Corrección computacional
Normalización :
Tipaje de la traducción : sistema F ?
Happy end ?
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
21/ 24
dPAω
Resumen
“Plan d’attaque”
Semantic artefacts
CPS : Ariola et al (FLOPS’12)
Classical Call-by-Need Sequent Calculi :
The Unity of Semantic Artifacts
Semántica operacional :
Cálculo big-step : variante del λ̄µµ̃-cálculo ?
Definición small-step
# reducción context-free
Traducción CPS : variante del λ-cálculo ?
Corrección computacional
Normalización :
Tipaje de la traducción : sistema F ?
Happy end ?
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
21/ 24
dPAω
Resumen
“Plan d’attaque”
Semantic artefacts
CPS : Ariola et al (FLOPS’12)
Classical Call-by-Need Sequent Calculi :
The Unity of Semantic Artifacts
Semántica operacional :
Cálculo big-step : variante del λ̄µµ̃-cálculo ?
Definición small-step
# reducción context-free
Traducción CPS : variante del λ-cálculo ?
Corrección computacional
Normalización :
Tipaje de la traducción : sistema F ?
Happy end ?
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
21/ 24
dPAω
Resumen
“Plan d’attaque”
Un avant-goût
Pizarrón : normalización por CPS del λc -cálculo
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
22/ 24
dPAω
Resumen
“Plan d’attaque”
Parentesis
Call-by-name :
(λa.p) ? (ccq) · π → p[ccq/a] ? π
CPS :
Jp ? πK := JpK JπK
Jλa.pK k := k (λa.JpK)
Jq · πK p := p JqK JπK
Call-by-value :
λa.p ? ccq · e
JA → BK := ¬¬(¬¬JAK → ¬¬JBK)
→ ccq ? [λa.p] · e
?
→ V ? λa.p · π → p[V /a] ? π
CPS :
Jp ? πK := JpK JπK
Jλa.pK k := k (λa.JpK)
Jq · πK p := JqK(λu.p u JπK)
JA → BK := ¬¬(JAK → ¬¬JBK)
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
23/ 24
dPAω
Resumen
“Plan d’attaque”
Parentesis
Call-by-name :
(λa.p) ? (ccq) · π → p[ccq/a] ? π
CPS :
Jp ? πK := JpK JπK
Jλa.pK k := k (λa.JpK)
Jq · πK p := p JqK JπK
Call-by-value :
λa.p ? ccq · e
JA → BK := ¬¬(¬¬JAK → ¬¬JBK)
→ ccq ? [λa.p] · e
?
→ V ? λa.p · π → p[V /a] ? π
CPS :
Jp ? πK := JpK JπK
Jλa.pK k := k (λa.JpK)
Jq · πK p := JqK(λu.p u JπK)
JA → BK := ¬¬(JAK → ¬¬JBK)
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
23/ 24
Resumen
dPAω
“Plan d’attaque”
En el próximo (y último capı́tulo)...
λ̄µµ̃ : un cálculo de secuentes
(Nuestra arma principal y su uso)
Étienne Miquey
Una prueba constructiva del axioma de elección dependiente en lógica clásica
24/ 24

Documentos relacionados