This action might not be possible to undo. Are you sure you want to continue?
and linear logic
Daniel de Carvalho (Roma)
(Partially joint work
with Michele Pagani (Torino)
and Lorenzo Tortora de Falco (Roma))
Concerto, Bologna
February 17, 2009
. – p.1/31
The problem for nets
Let π
1
and π
2
be two cut free nets.
1. There exists π
0
cut free such that
π
1
π
2
cut
∗
π
0
?
2. Given π
1
and π
2
, how many steps ?
. – p.2/31
The problem for nets
Let π
1
and π
2
be two cut free nets.
1. There exists π
0
cut free such that
π
1
π
2
cut
∗
π
0
?
2. Given π
1
and π
2
, how many steps ?
•
Which nets ?
. – p.2/31
The problem for nets
Let π
1
and π
2
be two cut free nets.
1. There exists π
0
cut free such that
π
1
π
2
cut
∗
π
0
?
2. Given π
1
and π
2
, how many steps ?
•
Which nets ?
•
Which strategy ?
. – p.2/31
The problem for nets
Let π
1
and π
2
be two cut free nets.
1. There exists π
0
cut free such that
π
1
π
2
cut
∗
π
0
?
2. Given π
1
and π
2
, how many steps ?
•
Which nets ?
•
Which strategy ?
•
Which semantics ?
. – p.2/31
The problem for λterms
Let v
1
and v
2
be two normal λterms.
1. There exists a normal λterm v
0
such that
(v
1
)v
2
∗
v
0
?
2. Given v
1
and v
2
, how many steps ?
•
λterms are type free.
•
Steps are steps in Krivine’s machine.
•
Semantics is a λalgebra induced by the
multiset based relational semantics of linear
logic.
. – p.3/31
The problem
Let π
1
and π
2
be two cut free nets.
1. There exists π
0
cut free such that
π
1
π
2
cut
∗
π
0
?
2. Given π
1
and π
2
, how many steps ?
•
Which nets ?
•
Which strategy ?
•
Which semantics ?
. – p.4/31
Groundstructures
A groundstructure is an acyclic directed graph
whose nodes are among the following ones:
•
identities:
ax cut
•
multiplicatives:
⊗ ` 1 ⊥
•
exponentials:
!
?
. – p.5/31
Untyped nets
An untyped structure is a groundstructure with
a function:
!
n
→ an untyped structure with
n conclusions with and one conclusion without
.
An untyped net is an untyped structure that
satisﬁes the DanosRégnier criterion.
A net is an untyped net without conclusion la
beled with .
. – p.6/31
Cutelimination
cut
ax
b
c
a
t
c
cut
⊗ `
b
a
f g h i
t
cut
cut
f g h i
cut
b
a
1 ⊥
t
. – p.7/31
Cutelimination
?
cut
b a
t
!
π
o
o
?
!
!
!
w
α
b
k
c
1
β
1
!
!
·
·
·
·
·
·
b
1
v
k
c
k
β
k
!
v
1
. – p.8/31
Cutelimination
!
cut
π
o
?
!
c
1
β
1
!
!
·
·
·
·
·
·
!
β
k
π
o
cut
c
k
!
· · ·
α
. – p.9/31
The problem
Let π
1
and π
2
be two cut free nets.
1. There exists π
0
cut free such that
π
1
π
2
cut
∗
π
0
?
2. Given π
1
and π
2
, how many steps ?
•
Which nets ?
•
Which strategy ?
•
Which semantics ?
. – p.10/31
Krivine’s machine (states)
We denote by S the set of states.
A state is a nonempty stack.
A stack is a ﬁnite sequence of closures.
. – p.11/31
Krivine’s machine (states)
We denote by S the set of states.
A state is a nonempty stack.
A stack is a ﬁnite sequence of closures.
We denote by ( the set of closures.
c ∈ ( := (t, e)
where t is a λterm and e ∈ c.
. – p.11/31
Krivine’s machine (states)
We denote by S the set of states.
A state is a nonempty stack.
A stack is a ﬁnite sequence of closures.
We denote by ( the set of closures.
c ∈ ( := (t, e)
where t is a λterm and e ∈ c.
We denote by c the set of environments.
It is the set of partial functions 1 → (
whose domain is ﬁnite.
. – p.11/31
Krivine’s machine (execution)
current subterm environment stack
x ∈ 1 e with e(x) = (u, e
/
) π
. – p.12/31
Krivine’s machine (execution)
current subterm environment stack
x ∈ 1 e with e(x) = (u, e
/
) π
u e
/
π
. – p.12/31
Krivine’s machine (execution)
current subterm environment stack
x ∈ 1 x / ∈ dom(e) π
. – p.12/31
Krivine’s machine (execution)
current subterm environment stack
x ∈ 1 x / ∈ dom(e) π
. – p.12/31
Krivine’s machine (execution)
current subterm environment stack
λx.u e c.π
/
. – p.12/31
Krivine’s machine (execution)
current subterm environment stack
λx.u e c.π
/
u e ∪ ¦x → c¦ π
/
. – p.12/31
Krivine’s machine (execution)
current subterm environment stack
λx.u e
. – p.12/31
Krivine’s machine (execution)
current subterm environment stack
λx.u e
. – p.12/31
Krivine’s machine (execution)
current subterm environment stack
(v)u e π
. – p.12/31
Krivine’s machine (execution)
current subterm environment stack
(v)u e π
v e (u, e).π
. – p.12/31
Krivine’s machine (extension)
We extend λterms with states.
k ∈ / ::= λx
1
....λx
m
.s [ λx
1
....λx
m
.(x)t
1
...t
p
where t
1
, . . . , t
p
∈ Λ ∪ /,
s ∈ S
and x, x
1
, . . . , x
m
∈ 1.
. – p.13/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
(1)u ∅
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
1 ∅ u
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx.(f)x f → u
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx. (f)x f → u
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx. f f → u x
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx. u ∅ x
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx. (y)yy y → x
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx. (y)y y → x y
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx. y y → x y.y
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx. x f → u y.y
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx.(x) y y → x y
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx.(x) x f → u y
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx.(x)x y y → x
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx.(x)x x f → u
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Krivine’s machine (an example)
Computing (1)u
where 1 = λf.λx.(f)x and u = λy.(y)yy.
output
current
subterm
environment stack arguments
λx.(x)xx
We denote the closure (u, ∅) by u.
We denote the closure (x, f → u) by x.
We denote the closure (y, y → x) by y.
. – p.14/31
Reduction strategy
We allow only stratiﬁed reduction steps.
For any reducible cutlink t of π, a reduction step
π t(π) is said to be stratiﬁed when for every
cutlink t
/
of π we have
depth(t) ≤ depth(t
/
) .
. – p.15/31
The problem
Let π
1
and π
2
be two cut free nets.
1. There exists π
0
cut free such that
π
1
π
2
cut
∗
π
0
?
2. Given π
1
and π
2
, how many steps ?
•
Which nets ?
•
Which strategy ?
•
Which semantics ?
. – p.16/31
System R
We are given a nonempty set A.
We deﬁne a set D in such a way that
D = A ⊕(D ⇒ D) .
The contexts are partial functions
Γ : 1 → ´
f
(D) s.t. ¦x ∈ 1 / Γ(x) = []¦ is ﬁnite.
x : [α] ¬
R
x : α
Γ, x : a ¬
R
v : α
Γ ¬
R
λx.v : (a, α)
Γ
0
¬
R
v : ([α
1
, . . . , α
n
], α) Γ
1
¬
R
u : α
1
, . . . , Γ
n
¬
R
u : α
n
Γ
0
+ Γ
1
+ . . . + Γ
n
¬
R
(v)u : α
. – p.17/31
A semantics for pure nets
We consider the multiset based relational
semantics of MELL+MIX.
We are given a set A.
We deﬁne a set D in such a way that
D = A⊕A
⊥
⊕1⊕⊥⊕(D⊗D)⊕(D`D)⊕!D⊕?D .
Example. We have (−, [(+, ∗), (+, ∗)]) ∈ D .
. – p.18/31
Experiments
An experiment e is a function edge → x ∈ D with
a function
!
→ [e
1
, . . . , e
m
] such that
ax
x
⊥
x
cut
x x
⊥
1
(+, ∗)
⊥
(−, ∗)
⊗
(+, x, y)
y x
`
x
y
(−, x, y)
x
(−, [x])
?
(−, µ
m
)
(−, µ
1
)
−,
j≤m
µ
j
(−, µ
j
)
−,
j≤m
µ
j
!
x
i
[e
o
1
, . . . , e
o
m
]
π
o
(+, [x
1
, . . . , x
m
])
. – p.19/31
The problem
Let π
1
and π
2
be two cut free nets.
1. There exists π
0
cut free such that
π
1
π
2
cut
∗
π
0
?
2. Given π
1
and π
2
, how many steps ?
•
Which nets ?
•
Which strategy ?
•
Which semantics ?
. – p.20/31
Normalization in λcalculus
Deﬁnition. For any α ∈ D, α is said to be
exhaustive if [] has only negative occurrences in
α.
We denote by D
ex
the set of α ∈ D s.t. α is
exhaustive.
Theorem. A λterm t is normalizable if, and only
if, there exists α ∈ D
ex
s.t. ¬
R
t : α.
. – p.21/31
Normalization in MELL
We set π
ex
= ¦x ∈ π; (+, []) doesn’t appear in x¦.
Theorem. Let π be a net.
There exists a cut free net π
0
s.t. π
∗
π
0
if, and
only if, π
ex
= ∅.
. – p.22/31
The problem
Let π
1
and π
2
be two cut free nets.
1. There exists π
0
cut free such that
π
1
π
2
cut
∗
π
0
?
2. Given π
1
and π
2
, how many steps ?
•
Which nets ?
•
Which strategy ?
•
Which semantics ?
. – p.23/31
Size of points for λcalculus
Deﬁnition. For α ∈ D, we deﬁne the size of α,
denoted by s
λ
(α):
•
if α ∈ A, s
λ
(α) = 1 and s
λ
(α) = 0;
•
if α = ([α
1
, . . . , α
n
], α
0
), then
s
λ
(α) =
n
i=1
s
λ
(α
i
) + s
λ
(α
0
) + 1;
s
λ
(α) =
n
i=1
s
λ
(α
i
) + s
λ
(α
0
) + 1.
For any a = [α
1
, . . . , α
n
], we set
s
λ
(a) =
n
i=1
s
λ
(α
i
) .
. – p.24/31
A bound for executiontime in
λcalculus
Theorem [Carvalho 2006]. Let v
1
and v
2
two
normal closed λterms. For
•
a ∈ ´
ﬁn
(v
2
),
•
α ∈ D
ex
,
•
(a, α) ∈ v
1
,
we have l
β
(((v
1
)v
2
, ∅).) ≤ 2s
λ
(a) + s
λ
(α) + 2 .
. – p.25/31
Indeed, we can be very precise
Deﬁnition. Let X, Y ⊆ D. We denote by

ex
(X, Y ) the following set:
((a, α), a
/
) ∈ (X ` A) ´
ﬁn
(Y )/
(∃σ ∈ o)(σ(a) = σ(a
/
) and σ(α) ∈ D
ex
)
,
where o is the set of substitutions on D.
Theorem [Carvalho 2006]. Assume A is inﬁnite.
We have
l
β
(((v)u, ∅).)
= inf
s
λ
(a, α) + s
λ
(a
/
) + 1/
((a, α), a
/
) ∈ 
ex
(v, u)
.
. – p.26/31
An example
We have
•
¬
R
1 : ([([γ
0
, γ
1
, γ
4
], γ
2
)], ([γ
0
, γ
1
, γ
4
], γ
2
));
•
¬
R
λy.(y)yy : ([γ
0
, γ
1
, ([γ
0
], ([γ
1
], γ
2
))], γ
2
).
We set
•
α = ([γ
0
, γ
1
, γ
4
], γ
2
);
•
a = [α];
•
a
/
= [([γ
0
, γ
1
, ([γ
0
], ([γ
1
], γ
2
))], γ
2
)].
We have s
λ
(a, α) = 7 and s
λ
(a
/
) = 6.
. – p.27/31
Size of points for MELL
Deﬁnition. For x ∈ D, we deﬁne the size of x,
denoted by s(x) :
•
if x ∈ A or x = (p, ∗), then s(x) = 1;
•
s(p, y, z) = 1 + s(y) + s(z);
•
s(p, [x
1
, . . . , x
m
]) = 1 +
m
j=1
s(x
j
).
For every (x
1
, . . . , x
n
) ∈
˙
n
i=1
D, we set
s(x
1
, . . . , x
n
) =
n
i=1
s(x
i
).
Example. We have s(−, [(+, ∗), (+, ∗)]) = 3 .
. – p.28/31
A bound for executiontime in
MELL
π =
π
1
π
2
cut
d
c c
d
∗
π
0
π
1
and π
2
cut free R π
0
cut free
Theorem [CarvalhoPaganiTortora de Falco
2008]. For
y = (x, x) ∈ π
1
,
y
/
= (x
/
, x
⊥
) ∈ π
2
,
x, x
/
exhaustive,
we have
length(R) ≤
s(y)+s(y
)
2
.
. – p.29/31
Indeed, we can be very precise
Theorem [CarvalhoPaganiTortora de Falco
2008]. Assume A is inﬁnite.
length(R) = inf
s(z)+s(z
)−s
inf
(π
ex
)
2
/
z ∈ π
1
, z
/
∈ π
2
and
(∃σ ∈ o)
(σ(z
c
) = σ(z
/
c
)
⊥
and σ(z
d
), σ(z
/
d
) exhaustive)
where s
inf
(π
ex
) = inf¦s(x) / x ∈ π
ex
¦
and o is the set of substitutions.
. – p.30/31
But we are not able to compute π
0
...
END
. – p.31/31
The problem for nets
Let π1 and π2 be two cut free nets. 1. There exists π0 cut free such that
π1
cut
π2 π0 ∗
?
2. Given π1 and π2 , how many steps ?
. – p.2/31
The problem for nets
Let π1 and π2 be two cut free nets. 1. There exists π0 cut free such that
π1
cut
π2 π0 ∗
?
2. Given π1 and π2 , how many steps ?
•
Which nets ?
. – p.2/31
The problem for nets
Let π1 and π2 be two cut free nets. 1. There exists π0 cut free such that
π1
cut
π2 π0 ∗
?
2. Given π1 and π2 , how many steps ?
• •
Which nets ? Which strategy ?
. – p.2/31
The problem for nets
Let π1 and π2 be two cut free nets. 1. There exists π0 cut free such that
π1
cut
π2 π0 ∗
?
2. Given π1 and π2 , how many steps ?
• • •
Which nets ? Which strategy ? Which semantics ?
. – p.2/31
3/31 . how many steps ? • • • λterms are type free. – p. . Semantics is a λalgebra induced by the multiset based relational semantics of linear logic.The problem for λterms Let v1 and v2 be two normal λterms. 1. Given v1 and v2 . There exists a normal λterm v0 such that (v1 )v2 ∗ v0 ? 2. Steps are steps in Krivine’s machine.
how many steps ? • • • Which nets ? Which strategy ? Which semantics ? .4/31 . Given π1 and π2 . 1. – p. There exists π0 cut free such that π1 cut π2 π0 ∗ ? 2.The problem Let π1 and π2 be two cut free nets.
Groundstructures A groundstructure is an acyclic directed graph whose nodes are among the following ones: • identities: ax cut • multiplicatives: ⊗ ` 1 ⊥ ··· • exponentials: ! ? ··· . – p.5/31 .
Untyped nets An untyped structure is a groundstructure with ! · a function: ·n· → an untyped structure with n conclusions with and one conclusion without . – p.6/31 . An untyped net is an untyped structure that satisﬁes the DanosRégnier criterion. . A net is an untyped net without conclusion labeled with .
Cutelimination a t cut b ax c c f ⊗ a g h cut t ` b i f cut g h cut i 1 a cut t ⊥ b . – p.7/31 .
– p.8/31 .Cutelimination β1 c1 v1 ck βk vk ··· ! ! π o ! ! o t cut b1 b ! ··· ! ··· ? w bk a α ··· ! ? ·· · ·· ·· · · ··· .
9/31 . – p.Cutelimination β1 βk c1 cut πo πo ck cut ··· ··· ··· ! ! ! ! α ··· ! ··· ! ? ·· · ·· ·· · · .
There exists π0 cut free such that π1 cut π2 π0 ∗ ? 2. 1.The problem Let π1 and π2 be two cut free nets. how many steps ? • • • Which nets ? Which strategy ? Which semantics ? . – p.10/31 . Given π1 and π2 .
Krivine’s machine (states) We denote by S the set of states.11/31 . . A state is a nonempty stack. A stack is a ﬁnite sequence of closures. – p.
A stack is a ﬁnite sequence of closures. . – p.11/31 . c ∈ C := (t. e) where t is a λterm and e ∈ E. A state is a nonempty stack. We denote by C the set of closures.Krivine’s machine (states) We denote by S the set of states.
11/31 . It is the set of partial functions V → C whose domain is ﬁnite. c ∈ C := (t. e) where t is a λterm and e ∈ E. We denote by C the set of closures. We denote by E the set of environments. A state is a nonempty stack. .Krivine’s machine (states) We denote by S the set of states. A stack is a ﬁnite sequence of closures. – p.
12/31 . e ) π .Krivine’s machine (execution) current subterm environment stack x∈V e with e(x) = (u. – p.
– p.12/31 . e ) e π π .Krivine’s machine (execution) current subterm environment stack x∈V u e with e(x) = (u.
– p.Krivine’s machine (execution) current subterm environment stack x∈V x ∈ dom(e) / π .12/31 .
– p.Krivine’s machine (execution) current subterm environment stack x∈V x ∈ dom(e) / π .12/31 .
12/31 . – p.π .Krivine’s machine (execution) current subterm environment stack λx.u e c.
Krivine’s machine (execution) current subterm environment stack λx.π e ∪ {x → c} π .u u e c. – p.12/31 .
12/31 .Krivine’s machine (execution) current subterm environment stack λx.u e . – p.
u e . – p.Krivine’s machine (execution) current subterm environment stack λx.12/31 .
– p.12/31 .Krivine’s machine (execution) current subterm environment stack (v)u e π .
Krivine’s machine (execution) current subterm environment stack (v)u v e e π (u. – p.π .12/31 . e).
.(x)t1 .13/31 . k ∈ K ::= λx1 . . ....Krivine’s machine (extension) We extend λterms with states. tp ∈ Λ ∪ K. . s∈S and x... ..λxm . . xm ∈ V. .tp where t1 .. x1 .λxm .. .s  λx1 . . – p.
. We denote the closure (y. current output subterm environment stack arguments (1)u ∅ We denote the closure (u.(y)yy. f → u) by x. y → x) by y. – p.λx.14/31 .(f )x and u = λy.Krivine’s machine (an example) Computing (1)u where 1 = λf. ∅) by u. We denote the closure (x.
f → u) by x. – p.Krivine’s machine (an example) Computing (1)u where 1 = λf.(y)yy. ∅) by u. y → x) by y. current output subterm environment stack arguments 1 ∅ u We denote the closure (u. .14/31 . We denote the closure (x.λx.(f )x and u = λy. We denote the closure (y.
f → u) by x.14/31 .(y)yy. ∅) by u.(f )x f →u We denote the closure (u. – p.λx. . y → x) by y. We denote the closure (x.(f )x and u = λy. current output subterm environment stack arguments λx. We denote the closure (y.Krivine’s machine (an example) Computing (1)u where 1 = λf.
14/31 .(y)yy. f → u) by x. We denote the closure (x. – p. current output subterm environment stack arguments λx. ∅) by u. (f )x f →u We denote the closure (u.λx.(f )x and u = λy.Krivine’s machine (an example) Computing (1)u where 1 = λf. y → x) by y. . We denote the closure (y.
We denote the closure (x.Krivine’s machine (an example) Computing (1)u where 1 = λf.(f )x and u = λy. ∅) by u. f → u) by x. current output subterm environment stack arguments λx.14/31 . f f →u x We denote the closure (u. – p. y → x) by y.(y)yy. .λx. We denote the closure (y.
u ∅ x We denote the closure (u. ∅) by u.(y)yy. y → x) by y. We denote the closure (x.Krivine’s machine (an example) Computing (1)u where 1 = λf. We denote the closure (y. current output subterm environment stack arguments λx. – p.(f )x and u = λy. f → u) by x. .14/31 .λx.
f → u) by x. current output subterm environment stack arguments λx. (y)yy y→x We denote the closure (u. We denote the closure (y.(f )x and u = λy. – p. We denote the closure (x.λx.14/31 . y → x) by y. . ∅) by u.(y)yy.Krivine’s machine (an example) Computing (1)u where 1 = λf.
∅) by u. current output subterm environment stack arguments λx.(y)yy. We denote the closure (x. f → u) by x.Krivine’s machine (an example) Computing (1)u where 1 = λf.λx.14/31 . (y)y y→x y We denote the closure (u. . – p. We denote the closure (y.(f )x and u = λy. y → x) by y.
(y)yy. We denote the closure (y. – p.Krivine’s machine (an example) Computing (1)u where 1 = λf.14/31 .λx. current output subterm environment stack arguments λx. f → u) by x. We denote the closure (x. ∅) by u. y y→x y. y → x) by y.y We denote the closure (u. .(f )x and u = λy.
14/31 . .y We denote the closure (u. We denote the closure (y. ∅) by u.(y)yy.λx. f → u) by x. y → x) by y. We denote the closure (x.(f )x and u = λy. – p. current output subterm environment stack arguments λx. x f →u y.Krivine’s machine (an example) Computing (1)u where 1 = λf.
(f )x and u = λy.λx. – p. ∅) by u. We denote the closure (y. We denote the closure (x.Krivine’s machine (an example) Computing (1)u where 1 = λf. y → x) by y. current output subterm environment stack arguments λx.(x) y y→x y We denote the closure (u. .14/31 . f → u) by x.(y)yy.
Krivine’s machine (an example) Computing (1)u where 1 = λf. y → x) by y. – p. We denote the closure (x.14/31 .(f )x and u = λy.λx. We denote the closure (y. . current output subterm environment stack arguments λx. ∅) by u. f → u) by x.(y)yy.(x) x f →u y We denote the closure (u.
– p. We denote the closure (y. ∅) by u.(f )x and u = λy. y → x) by y. . f → u) by x. current output subterm environment stack arguments λx.Krivine’s machine (an example) Computing (1)u where 1 = λf.λx.(y)yy.(x)x y y→x We denote the closure (u.14/31 . We denote the closure (x.
(y)yy. y → x) by y. f → u) by x. current output subterm environment stack arguments λx.λx. – p.Krivine’s machine (an example) Computing (1)u where 1 = λf. We denote the closure (y.14/31 .(x)x x f →u We denote the closure (u. We denote the closure (x. ∅) by u. .(f )x and u = λy.
We denote the closure (y. – p. .λx. f → u) by x.(x)xx We denote the closure (u. We denote the closure (x.(y)yy.Krivine’s machine (an example) Computing (1)u where 1 = λf. ∅) by u.14/31 .(f )x and u = λy. y → x) by y. current output subterm environment stack arguments λx.
15/31 . – p.Reduction strategy We allow only stratiﬁed reduction steps. a reduction step π t(π) is said to be stratiﬁed when for every cutlink t of π we have depth(t) ≤ depth(t ) . . For any reducible cutlink t of π.
There exists π0 cut free such that π1 cut π2 π0 ∗ ? 2. – p. how many steps ? • • • Which nets ? Which strategy ? Which semantics ? . 1.16/31 .The problem Let π1 and π2 be two cut free nets. Given π1 and π2 .
αn ]. x : a R v : α Γ R λx. . Γn Γ0 + Γ1 + . – p. . .v : (a. The contexts are partial functions Γ : V → Mf (D) s. .17/31 . α) v : ([α1 . . . . α) Γ1 R u : α1 . .t. + Γn R (v)u : α Γ0 R R u : αn . {x ∈ V / Γ(x) = []} is ﬁnite. We deﬁne a set D in such a way that D = A ⊕ (D ⇒ D) . x : [α] R x : α Γ.System R We are given a nonempty set A. . .
– p. (+. We are given a set A. [(+.18/31 . Example. We have (−. ∗)]) ∈ D . . We deﬁne a set D in such a way that D = A⊕A⊥ ⊕1⊕⊥⊕(D ⊗D)⊕(D `D)⊕!D⊕?D .A semantics for pure nets We consider the multiset based relational semantics of MELL+MIX. ∗).
. µj ) xi ! [eo . (−. . . . j≤m µj (+. . – p. ∗) ⊥ (−. x. [x]) µj −. [x1 . . ∗) πo x ··· (−. y) x ` (−. y) y ! ··· → [e1 . µm ) j≤m (−. .19/31 . em ] such that x cut x⊥ x 1 (+. xm ]) . . x. eo ] 1 m (−.Experiments An experiment e is a function edge → x ∈ D with a function ax x x⊥ y ⊗ (+. . . . . µ1 ) ? −.
1. There exists π0 cut free such that π1 cut π2 π0 ∗ ? 2. how many steps ? • • • Which nets ? Which strategy ? Which semantics ? . – p.The problem Let π1 and π2 be two cut free nets. Given π1 and π2 .20/31 .
and only if. α is exhaustive. Theorem. We denote by Dex the set of α ∈ D s. – p.Normalization in λcalculus Deﬁnition. For any α ∈ D.21/31 . A λterm t is normalizable if.t. there exists α ∈ Dex s. . R t : α.t. α is said to be exhaustive if [] has only negative occurrences in α.
[]) doesn’t appear in x}.Normalization in MELL We set π ex = {x ∈ π . Theorem. and . π ex = ∅. Let π be a net.22/31 . – p. There exists a cut free net π0 s. ∗ π0 if. (+. π only if.t.
23/31 . 1. how many steps ? • • • Which nets ? Which strategy ? Which semantics ? . – p. There exists π0 cut free such that π1 cut π2 π0 ∗ ? 2.The problem Let π1 and π2 be two cut free nets. Given π1 and π2 .
. αn ]. we deﬁne the size of α. . αn ]. – p. we set sλ (a) = i=1 sλ (αi ) . . . .Size of points for λcalculus Deﬁnition. denoted by sλ (α): • • if α ∈ A. i=1 n sλ (α) = i=1 sλ (αi ) + sλ (α0 ) + 1. n For any a = [α1 . . For α ∈ D. . sλ (α) = 1 and sλ (α) = 0. then sλ (α) = n sλ (αi ) + sλ (α0 ) + 1. . α0 ).24/31 . if α = ([α1 . .
Let v1 and v2 two normal closed λterms. – p. ) ≤ 2sλ (a) + sλ (α) + 2 . For • • • a ∈ Mﬁn ( v2 ).A bound for executiontime in λcalculus Theorem [Carvalho 2006]. we have lβ (((v1 )v2 . α ∈ Dex . (a. α) ∈ v1 . .25/31 . ∅).
∅). . we can be very precise Deﬁnition. Theorem [Carvalho 2006]. α). We have lβ (((v)u. a ) ∈ U ex ( v .Indeed. Let X. α) + sλ (a ) + 1/ ((a. ex (∃σ ∈ S)(σ(a) = σ(a ) and σ(α) ∈ D ) where S is the set of substitutions on D. Y ) the following set: ((a. We denote by U ex (X. – p.26/31 . Y ⊆ D. Assume A is inﬁnite. a ) ∈ (X \ A) × Mﬁn (Y )/ . α). ) = inf sλ (a. u ) .
a = [α].(y)yy : ([γ0 . ([γ0 ]. γ2 )]. γ2 )]. γ2 )). ([γ0 ]. ([γ1 ]. γ1 . γ2 ))]. γ2 ). γ4 ].27/31 . γ1 . γ1 . γ4 ]. We have sλ (a. γ4 ]. ([γ1 ]. ([γ0 . . – p. γ1 . γ2 ))]. a = [([γ0 . We set • • • α = ([γ0 . γ1 . α) = 7 and sλ (a ) = 6. γ2 ). λy.An example We have • • R R 1 : ([([γ0 .
. xm ]) = 1 + ˙n For every (x1 . xn ) = i=1 s(xi ). . . ∗). . We have s(−. – p. we set n s(x1 . we deﬁne the size of x. z) = 1 + s(y) + s(z). . [(+. then s(x) = 1. ∗)]) = 3 . . s(p. denoted by s(x) : • • • if x ∈ A or x = (p. [x1 . (+. y. . s(p. For x ∈ D. . . xn ) ∈ i=1 D.28/31 . . ∗). . . Example.Size of points for MELL Deﬁnition. m j=1 s(xj ). .
x exhaustive. d d .29/31 . length(R) ≤ s(y)+s(y ) . we have ⊥ y = (x . 2 x. – p. For y = (x.A bound for executiontime in MELL π1 c cut π2 π0 c ∗ π= π1 and π2 cut free R π0 cut free Theorem [CarvalhoPaganiTortora de Falco 2008]. x) ∈ π1 . x ) ∈ π2 .
s(z)+s(z )−sinf ( π ex ) / 2 z ∈ π . σ(z d ) exhaustive) where sinf ( π ex ) = inf{s(x) / x ∈ π and S is the set of substitutions. Assume A is inﬁnite.Indeed. ex } . z ∈ π and 1 2 length(R) = inf (∃σ ∈ S) (σ(zc ) = σ(z c )⊥ and σ(zd ). we can be very precise Theorem [CarvalhoPaganiTortora de Falco 2008]. – p.30/31 .
31/31 . END . – p...But we are not able to compute π0 .
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.