Representing permutations without permutations
The expressive power of sequential intersection Pierre VIAL ´ Equipe Gallinette Inria (LS2N CNRS) June 10, 2018
Non-idempotent typing
- P. Vial
1 /33
Representing permutations without permutations The expressive power - - PowerPoint PPT Presentation
Representing permutations without permutations The expressive power of sequential intersection Pierre VIAL Equipe Gallinette Inria (LS2N CNRS) June 10, 2018 Non-idempotent typing P. Vial 0 1 /33 Outline Non-idempotent Rigid vs.
Non-idempotent typing
1 /33
Using type A once or twice not the same
Proof red. deterministic vs. non-deterministic
(A, A, B) and (A, B, A) collapse on [A, A, B]
(A, B, A) → (A, A, B)
Non-idempotent typing
2 /33
Bag arguments: t [u1, . . . , un] (and not t u) Linear substitution and reduction: if t = x [x, y] then x [u1, u2] gives u1 [u2, y] or u2 [u1, y]. Taylor expansion of a λ-term (linearization): TE of t u = formal series involving ˜ t[ ], ˜ t[˜ u], ˜ t[˜ u, ˜ u], ˜ t[˜ u, ˜ u, ˜ u]. . . Adequation: B¨
Rigid bags: t (u1, . . . , un) Isomorphisms to identify equivalent bags. Deterministic reduction. Adequation.
Non-idempotent typing
3 /33
1 Non-idempotent intersection types 2 System S (Sequential Interection) 3 Encoding Reduction Paths 4 Perspectives
Non-idempotent typing
1 Non-idempotent intersection types 4 /33
Non-idempotent typing
1 Non-idempotent intersection types 5 /33
Non-idempotent typing
1 Non-idempotent intersection types 5 /33
f(3 + 4) → f(7) → 7 × 7 × 7 → 49 × 7 → 343
f(3 + 4) → (3 + 4) × (3 + 4) × (3 + 4) → 7 × (3 + 4) × (3 + 4) → 7 × 7 × (3 + 4) → 7 × 7 × 7 → 49 × 7 → 343
f(3 + 4) → (3 + 4) × (3 + 4) × (3 + 4) → 3 × (3 + 4) × (3 + 4) + 4 × (3 + 4) × (3 + 4) → dozens of computation steps . . . . . . . . . . . . . . . . . . . . . → 343
Non-idempotent typing
1 Non-idempotent intersection types 5 /33
Non-idempotent typing
1 Non-idempotent intersection types 5 /33
Non-idempotent typing
1 Non-idempotent intersection types 5 /33
Infinite path (keeps running, never reaches the terminal state)
Non-idempotent typing
1 Non-idempotent intersection types 5 /33
Infinite path (keeps running, never reaches the terminal state)
Non-idempotent typing
1 Non-idempotent intersection types 5 /33
Non-idempotent typing
1 Non-idempotent intersection types 6 /33
Non-idempotent typing
1 Non-idempotent intersection types 6 /33
Non-idempotent typing
1 Non-idempotent intersection types 6 /33
Non-idempotent typing
1 Non-idempotent intersection types 7 /33
Non-idempotent typing
1 Non-idempotent intersection types 7 /33
Initial certificate
Initial state
Non-idempotent typing
1 Non-idempotent intersection types 7 /33
Initial certificate
Initial state
Non-idempotent typing
1 Non-idempotent intersection types 7 /33
Initial certificate
Initial state
Non-idempotent typing
1 Non-idempotent intersection types 7 /33
Initial certificate
Initial state
Non-idempotent typing
1 Non-idempotent intersection types 7 /33
Initial certificate
Initial state
(cannot be reduced more)
Non-idempotent typing
1 Non-idempotent intersection types 7 /33
Initial certificate
Initial state
(cannot be reduced more)
Non-idempotent typing
1 Non-idempotent intersection types 7 /33
Non-idempotent typing
1 Non-idempotent intersection types 7 /33
Non-idempotent typing
1 Non-idempotent intersection types 7 /33
Non-idempotent typing
1 Non-idempotent intersection types 8 /33
no intro/elim. rules for ∧
Non-idempotent typing
1 Non-idempotent intersection types 8 /33
no intro/elim. rules for ∧
subtyping or permutation rules e.g.,
Non-idempotent typing
1 Non-idempotent intersection types 8 /33
no intro/elim. rules for ∧
subtyping or permutation rules e.g.,
Non-idempotent typing
1 Non-idempotent intersection types 8 /33
no intro/elim. rules for ∧
subtyping or permutation rules e.g.,
[A, B, A] = [A, B, A] = [A, B] [A, B, A] = [A, B] + [A]
Non-idempotent typing
1 Non-idempotent intersection types 8 /33
Non-idempotent typing
1 Non-idempotent intersection types 9 /33
x head variable t1 @ tq @
λxp
r λx s @ head redex t1 @ tq @
λxp
Non-idempotent typing
1 Non-idempotent intersection types 10 /33
x head variable t1 @ tq @
λxp
r λx s @ head redex t1 @ tq @
λxp
Non-idempotent typing
1 Non-idempotent intersection types 10 /33
x head variable t1 @ tq @
λxp
r λx s @ head redex t1 @ tq @
λxp
Non-idempotent typing
1 Non-idempotent intersection types 10 /33
Non-idempotent typing
1 Non-idempotent intersection types 10 /33
Non-idempotent typing
1 Non-idempotent intersection types 10 /33
Non-idempotent typing
1 Non-idempotent intersection types 10 /33
Non-idempotent typing
1 Non-idempotent intersection types 10 /33
SE is usually not verified by simple or polymorphic type systems
Non-idempotent typing
1 Non-idempotent intersection types 11 /33
SE is usually not verified by simple or polymorphic type systems
Non-idempotent typing
1 Non-idempotent intersection types 11 /33
Reduction preserves types and environments, and. . . . . . head reduction strictly decreases the nodes of the deriv. tree (size).
Anti-reduction preserves types and environments.
1 t is typable (in R0) 2 t is HN 3 the head reduction strategy terminates on t ( certification!)
Non-idempotent typing
1 Non-idempotent intersection types 12 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
1 + ∆b 1 + ∆2 ⊢ (λx.r)s : τ
1 ⊢s:σ1
1
1 ⊢s:σ1
1
Non-idempotent typing
1 Non-idempotent intersection types 13 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
1 + ∆b 1 + ∆2 ⊢ (λx.r)s : τ
1 ⊢s:σ1
1
1 ⊢s:σ1
1
Non-idempotent typing
1 Non-idempotent intersection types 13 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
1 + ∆b 1 + ∆2 ⊢ (λx.r)s : τ
1 ⊢s:σ1
1
1 ⊢s:σ1
1
Non-idempotent typing
1 Non-idempotent intersection types 13 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
1 + ∆b 1 + ∆2 ⊢ (λx.r)s : τ
1 ⊢s:σ1
1
1 ⊢s:σ1
1
Non-idempotent typing
1 Non-idempotent intersection types 13 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
1 + ∆b 1 + ∆2 ⊢ (λx.r)s : τ
1 ⊢s:σ1
1
1 ⊢s:σ1
1
Non-idempotent typing
1 Non-idempotent intersection types 13 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
1 + ∆b 1 + ∆2 ⊢ (λx.r)s : τ
1 ⊢s:σ1
1
1 ⊢s:σ1
1
Non-idempotent typing
1 Non-idempotent intersection types 13 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
1 + ∆b 1 + ∆2 ⊢ (λx.r)s : τ
1 ⊢s:σ1
1
1 ⊢s:σ1
1
Non-idempotent typing
1 Non-idempotent intersection types 13 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
1 ⊢s:σ1
1
1 ⊢s:σ1
1
1 + ∆b 1 + ∆2 ⊢ r[s/x] : τ
Non-idempotent typing
1 Non-idempotent intersection types 13 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
1 ⊢s:σ1
1
1 ⊢s:σ1
1
1 + ∆b 1 + ∆2 ⊢ r[s/x] : τ
Non-idempotent typing
1 Non-idempotent intersection types 13 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
1 ⊢s:σ1
1
1 ⊢s:σ1
1
1 + ∆b 1 + ∆2 ⊢ r[s/x] : τ
Non-idempotent typing
1 Non-idempotent intersection types 13 /33
Using type A once or twice not the same
Proof red. deterministic vs. non-deterministic
(A, A, B) and (A, B, A) collapse on [A, A, B]
(A, B, A) → (A, A, B)
Non-idempotent typing
1 Non-idempotent intersection types 14 /33
1 Non-idempotent intersection types 2 System S (Sequential Interection) 3 Encoding Reduction Paths 4 Perspectives
Non-idempotent typing
2 System S (Sequential Interection) 15 /33
⊕ syntax-direction ⊖ non-determinism of proof red. ⊖ lack tracking: [σ, τ, σ] = [σ
?, τ] + [σ ?].
Non-idempotent typing
2 System S (Sequential Interection) 16 /33
⊕ syntax-direction ⊖ non-determinism of proof red. ⊖ lack tracking: [σ, τ, σ] = [σ
?, τ] + [σ ?].
Def: t is ∞-WN iff its B¨
Tatsuta [07]: an inductive ITS cannot do it. Can a coinductive ITS characterize the set of ∞-WN terms?
Non-idempotent typing
2 System S (Sequential Interection) 16 /33
⊕ syntax-direction ⊖ non-determinism of proof red. ⊖ lack tracking: [σ, τ, σ] = [σ
?, τ] + [σ ?].
Def: t is ∞-WN iff its B¨
Tatsuta [07]: an inductive ITS cannot do it. Can a coinductive ITS characterize the set of ∞-WN terms?
Impossible without tracking (need for a validity criterion).
system R (i.e. R0 with a coinductive type grammar) does not work
YES, with inter. = sequences + validity criterion.
Non-idempotent typing
2 System S (Sequential Interection) 16 /33
→
2
3
7
Non-idempotent typing
2 System S (Sequential Interection) 17 /33
→
2
3
7
Non-idempotent typing
2 System S (Sequential Interection) 17 /33
→
2
3
7
Non-idempotent typing
2 System S (Sequential Interection) 17 /33
→
2
3
7
Non-idempotent typing
2 System S (Sequential Interection) 17 /33
→
2
3
7
? , τ] + [σ ? ]
Non-idempotent typing
2 System S (Sequential Interection) 17 /33
Non-idempotent typing
2 System S (Sequential Interection) 18 /33
Non-idempotent typing
2 System S (Sequential Interection) 18 /33
Non-idempotent typing
2 System S (Sequential Interection) 18 /33
Non-idempotent typing
2 System S (Sequential Interection) 18 /33
Non-idempotent typing
2 System S (Sequential Interection) 19 /33
Non-idempotent typing
2 System S (Sequential Interection) 19 /33
Non-idempotent typing
2 System S (Sequential Interection) 19 /33
Non-idempotent typing
2 System S (Sequential Interection) 20 /33
Non-idempotent typing
2 System S (Sequential Interection) 20 /33
if true, the infinitary relational model is fully described by system S
Non-idempotent typing
2 System S (Sequential Interection) 20 /33
if true, the infinitary relational model is fully described by system S
Non-idempotent typing
2 System S (Sequential Interection) 20 /33
x
t1 @ tq @
λx1
Non-idempotent typing
2 System S (Sequential Interection) 21 /33
Using type A once or twice not the same
Proof red. deterministic vs. non-deterministic
(A, A, B) and (A, B, A) collapse on [A, A, B]
(A, B, A) → (A, A, B)
Non-idempotent typing
2 System S (Sequential Interection) 22 /33
1 Non-idempotent intersection types 2 System S (Sequential Interection) 3 Encoding Reduction Paths 4 Perspectives
Non-idempotent typing
3 Encoding Reduction Paths 23 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
λx @
P 1
s
P 2
s
Non-idempotent typing
3 Encoding Reduction Paths 24 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
λx
@
P 1
s
P 2
s
Non-idempotent typing
3 Encoding Reduction Paths 24 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
λx
@
P 1
s
P 2
s
Non-idempotent typing
3 Encoding Reduction Paths 24 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
λx
@
P 1
s
P 2
s
Non-idempotent typing
3 Encoding Reduction Paths 24 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S) ax x : (2·S)
λx
@
P 1
s
P 2
s
Non-idempotent typing
3 Encoding Reduction Paths 24 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S) ax x : (2·S)
λx
@
P 1
s
P 2
s
s : S P 2
s
s : S P 1
s
Non-idempotent typing
3 Encoding Reduction Paths 24 /33
System S: one red. path, poor dynamic behavior. System R: rich dynamic behavior, impossible to express red. paths (lack of tracking)
T1 = (8·o2, 4·(8·o3, 3·o1) → o2) → o1
T2 = (5·(7·o1, 2·o3) → o2, 3·o2) → o1
k)k∈K′
k)k∈K′
Non-idempotent typing
3 Encoding Reduction Paths 25 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
λx @
P 5
s
P 8
s
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
λx
@
P 5
s
P 8
s
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into. . .
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into. . .
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into. . .
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into. . .
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into. . .
say S2 ≡ S′
8, S7 ≡ S′ 5
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into. . .
say S2 ≡ S′
8, S7 ≡ S′ 5
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into
s : S′
5
P 5
s
s : S′
8
P 8
s
say S2 ≡ S′
8, S7 ≡ S′ 5
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into
s : S′
5
P 5
s
s : S′
8
P 8
s
say S2 ≡ S′
8, S7 ≡ S′ 5
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into. . .
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into. . .
s.t. S2 ≡ S7 ≡ S′
5 ≡ S′ 8
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into
s.t. S2 ≡ S7 ≡ S′
5 ≡ S′ 8
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into
s : S′
?
P ?
s
s : S′
?
P ?
s
s.t. S2 ≡ S7 ≡ S′
5 ≡ S′ 8
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into
s : S′
?
P ?
s
s : S′
?
P ?
s
s.t. S2 ≡ S7 ≡ S′
5 ≡ S′ 8
5, 8·S′ 8)
φ interface (2·S2, 7·S7) ˜ →(5·S′
5, 8·S′ 8)
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into
s : S′
5
P 5
s
s : S′
8
P 8
s
s.t. S2 ≡ S7 ≡ S′
5 ≡ S′ 8
5, 8·S′ 8)
φ interface (2·S2, 7·S7) ˜ →(5·S′
5, 8·S′ 8)
case φ : 2 → 8, 7 → 5
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
From a typing of (λx.r)s . . . to a typing of r[s/x]
ax x : (7·S7) ax x : (2·S2)
λx
@
P 5
s
5 [5]
P 8
s
8 [8]reduces into
s : S′
8
P 8
s
s : S′
5
P 5
s
s.t. S2 ≡ S7 ≡ S′
5 ≡ S′ 8
5, 8·S′ 8)
φ interface (2·S2, 7·S7) ˜ →(5·S′
5, 8·S′ 8)
case φ : 2 → 5, 7 → 8
Non-idempotent typing
3 Encoding Reduction Paths 26 /33
Non-idempotent typing
3 Encoding Reduction Paths 27 /33
Non-idempotent typing
3 Encoding Reduction Paths 27 /33
Non-idempotent typing
3 Encoding Reduction Paths 27 /33
Non-idempotent typing
3 Encoding Reduction Paths 27 /33
Non-idempotent typing
3 Encoding Reduction Paths 27 /33
iso of op-deriv = nested isos of types commuting with interfaces
Non-idempotent typing
3 Encoding Reduction Paths 27 /33
Using type A once or twice not the same
Proof red. deterministic vs. non-deterministic
(A, A, B) and (A, B, A) collapse on [A, A, B]
(A, B, A) → (A, A, B)
Non-idempotent typing
3 Encoding Reduction Paths 28 /33
with e.g., φ1 : 8 → 2 9 → 7 and φε : 8 → 5 9 → 3
Non-idempotent typing
3 Encoding Reduction Paths 29 /33
with e.g., φ1 : 8 → 2 9 → 7 and φε : 8 → 5 9 → 3
Positive: ascend to ax. Negative: ascend to abs.
Non-idempotent typing
3 Encoding Reduction Paths 29 /33
with e.g., φ1 : 8 → 2 9 → 7 and φε : 8 → 5 9 → 3
Positive: ascend to ax. Negative: ascend to abs.
⊖ ˜
⊕ ˜
Non-idempotent typing
3 Encoding Reduction Paths 29 /33
with e.g., φ1 : 8 → 2 9 → 7 and φε : 8 → 5 9 → 3
Positive: ascend to ax. Negative: ascend to abs.
⊖ ˜
⊕ ˜
Non-idempotent typing
3 Encoding Reduction Paths 29 /33
with e.g., φ1 : 8 → 2 9 → 7 and φε : 8 → 5 9 → 3
Positive: ascend to ax. Negative: ascend to abs.
⊖ ˜
⊕ ˜
lab(θ8) = lab(θ2), lab(θ9) = lab(θ7), lab(θ8) = lab(θ5), lab(θ9) = lab(θ3)
Non-idempotent typing
3 Encoding Reduction Paths 29 /33
with e.g., φ1 : 8 → 2 9 → 7 and φε : 8 → 5 9 → 3
Positive: ascend to ax. Negative: ascend to abs.
⊖ ˜
⊕ ˜
lab(θ8) = lab(θ2), lab(θ9) = lab(θ7), lab(θ8) = lab(θ5), lab(θ9) = lab(θ3) No overlap: lab(θ8) = lab(θ9), lab(θ2) = lab(θ7), lab(θ3) = lab(θ5)
Non-idempotent typing
3 Encoding Reduction Paths 29 /33
Non-idempotent typing
3 Encoding Reduction Paths 30 /33
Non-idempotent typing
3 Encoding Reduction Paths 30 /33
1
Proof of the form θbro1( ˜ ← ∪ ˜ →)θ2( ˜ ← ∪ ˜ →) . . . θn−1( ˜ ← ∪ ˜ →)θbro2
Non-idempotent typing
3 Encoding Reduction Paths 30 /33
1
Proof of the form θbro1( ˜ ← ∪ ˜ →)θ2( ˜ ← ∪ ˜ →) . . . θn−1( ˜ ← ∪ ˜ →)θbro2
2
Up to a finite number of red. steps, then θ′
bro1 ⊕ ˜
→θ′
2 ⊕ ˜
→ . . . θ′
ℓ−1 ⊕ ˜
→θ′
bro2 with
ℓ n
Non-idempotent typing
3 Encoding Reduction Paths 30 /33
1
Proof of the form θbro1( ˜ ← ∪ ˜ →)θ2( ˜ ← ∪ ˜ →) . . . θn−1( ˜ ← ∪ ˜ →)θbro2
2
Up to a finite number of red. steps, then θ′
bro1 ⊕ ˜
→θ′
2 ⊕ ˜
→ . . . θ′
ℓ−1 ⊕ ˜
→θ′
bro2 with
ℓ n
3
Lem: if θa⊕ ˜ →θb then ad(θa) < ad(θb) (applicative depth)
Non-idempotent typing
3 Encoding Reduction Paths 30 /33
1
Proof of the form θbro1( ˜ ← ∪ ˜ →)θ2( ˜ ← ∪ ˜ →) . . . θn−1( ˜ ← ∪ ˜ →)θbro2
2
Up to a finite number of red. steps, then θ′
bro1 ⊕ ˜
→θ′
2 ⊕ ˜
→ . . . θ′
ℓ−1 ⊕ ˜
→θ′
bro2 with
ℓ n
3
Lem: if θa⊕ ˜ →θb then ad(θa) < ad(θb) (applicative depth)
4
Then ad(θ′
bro1) < ad(θ′ bro2).
Non-idempotent typing
3 Encoding Reduction Paths 30 /33
1
Proof of the form θbro1( ˜ ← ∪ ˜ →)θ2( ˜ ← ∪ ˜ →) . . . θn−1( ˜ ← ∪ ˜ →)θbro2
2
Up to a finite number of red. steps, then θ′
bro1 ⊕ ˜
→θ′
2 ⊕ ˜
→ . . . θ′
ℓ−1 ⊕ ˜
→θ′
bro2 with
ℓ n
3
Lem: if θa⊕ ˜ →θb then ad(θa) < ad(θb) (applicative depth)
4
Then ad(θ′
bro1) < ad(θ′ bro2).
Non-idempotent typing
3 Encoding Reduction Paths 30 /33
1
Proof of the form θbro1( ˜ ← ∪ ˜ →)θ2( ˜ ← ∪ ˜ →) . . . θn−1( ˜ ← ∪ ˜ →)θbro2
2
Up to a finite number of red. steps, then θ′
bro1 ⊕ ˜
→θ′
2 ⊕ ˜
→ . . . θ′
ℓ−1 ⊕ ˜
→θ′
bro2 with
ℓ n
3
Lem: if θa⊕ ˜ →θb then ad(θa) < ad(θb) (applicative depth)
4
Then ad(θ′
bro1) < ad(θ′ bro2).
Non-idempotent typing
3 Encoding Reduction Paths 30 /33
1
Proof of the form θbro1( ˜ ← ∪ ˜ →)θ2( ˜ ← ∪ ˜ →) . . . θn−1( ˜ ← ∪ ˜ →)θbro2
2
Up to a finite number of red. steps, then θ′
bro1 ⊕ ˜
→θ′
2 ⊕ ˜
→ . . . θ′
ℓ−1 ⊕ ˜
→θ′
bro2 with
ℓ n
3
Lem: if θa⊕ ˜ →θb then ad(θa) < ad(θb) (applicative depth)
4
Then ad(θ′
bro1) < ad(θ′ bro2).
Every R-deriv. Π is the collapse of a S-deriv. P Every red. path starting from Π can be encoded in such a P.
Non-idempotent typing
3 Encoding Reduction Paths 30 /33
1 Non-idempotent intersection types 2 System S (Sequential Interection) 3 Encoding Reduction Paths 4 Perspectives
Non-idempotent typing
4 Perspectives 31 /33
Non-idempotent typing
4 Perspectives 32 /33
Types Braga 21th june The infinitary relational model HOR (Floc) Oxford 7th july Some aspects of intersection types (invited talk) LiCS (Floc) Oxford 9th july The infinitary relational model
Non-idempotent typing
4 Perspectives 33 /33