Linearity in the non-deterministic call-by-value setting

50
Linearity in the non-deterministic call-by-value setting Alejandro Díaz-Caro LIPN, Université Paris 13, Sorbonne Paris Cité Barbara Petit Focus (INRIA) – Università di Bologna 19th WoLLIC Buenos Aires, September 3–6, 2012

description

We consider the non-deterministic extension of the call-by-value lambda calculus, which corresponds to the additive fragment of the linear-algebraic lambda-calculus. We define a fine-grained type system, capturing the right linearity present in such formalisms. After proving the subject reduction and the strong normalisation properties, we propose a translation of this calculus into the System F with pairs, which corresponds to a non linear fragment of linear logic. The translation provides a deeper understanding of the linearity in our setting.

Transcript of Linearity in the non-deterministic call-by-value setting

Page 1: Linearity in the non-deterministic call-by-value setting

Linearity in the non-deterministiccall-by-value setting

Alejandro Díaz-CaroLIPN, Université Paris 13, Sorbonne Paris Cité

Barbara PetitFocus (INRIA) – Università di Bologna

19th WoLLICBuenos Aires, September 3–6, 2012

Page 2: Linearity in the non-deterministic call-by-value setting

Non-determinism (or parallelism)

t + u: non-deterministic superposition between t and u(it may run t or u, non-deterministically)

(t + u)s may run ts or us.Hence (t + u)s→ ts + us

Sum of functions: (f + g)(x) = f(x) + g(x)(this is the interpretation of the algebraic calculi [Vaux, Arrighi-Dowek])

t(u + s)

(λx .t)(u + s)→ t[(u + s)/x ] (CBN)

(λx .t)(u + s)→ (λx .t)u + (λx .t)s (CBV)

Generically in CBV t(u + s)→ tu + tsIn algebraic terms, functions are treated as linear in CBV:

f(x + y) = f(x) + f(y)

We want to understand this ‘linearity’

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 1 / 20

Page 3: Linearity in the non-deterministic call-by-value setting

Non-determinism (or parallelism)

t + u: non-deterministic superposition between t and u(it may run t or u, non-deterministically)

(t + u)s may run ts or us.

Hence (t + u)s→ ts + usSum of functions: (f + g)(x) = f(x) + g(x)

(this is the interpretation of the algebraic calculi [Vaux, Arrighi-Dowek])

t(u + s)

(λx .t)(u + s)→ t[(u + s)/x ] (CBN)

(λx .t)(u + s)→ (λx .t)u + (λx .t)s (CBV)

Generically in CBV t(u + s)→ tu + tsIn algebraic terms, functions are treated as linear in CBV:

f(x + y) = f(x) + f(y)

We want to understand this ‘linearity’

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 1 / 20

Page 4: Linearity in the non-deterministic call-by-value setting

Non-determinism (or parallelism)

t + u: non-deterministic superposition between t and u(it may run t or u, non-deterministically)

(t + u)s may run ts or us.Hence (t + u)s→ ts + us

Sum of functions: (f + g)(x) = f(x) + g(x)(this is the interpretation of the algebraic calculi [Vaux, Arrighi-Dowek])

t(u + s)

(λx .t)(u + s)→ t[(u + s)/x ] (CBN)

(λx .t)(u + s)→ (λx .t)u + (λx .t)s (CBV)

Generically in CBV t(u + s)→ tu + tsIn algebraic terms, functions are treated as linear in CBV:

f(x + y) = f(x) + f(y)

We want to understand this ‘linearity’

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 1 / 20

Page 5: Linearity in the non-deterministic call-by-value setting

Non-determinism (or parallelism)

t + u: non-deterministic superposition between t and u(it may run t or u, non-deterministically)

(t + u)s may run ts or us.Hence (t + u)s→ ts + us

Sum of functions: (f + g)(x) = f(x) + g(x)(this is the interpretation of the algebraic calculi [Vaux, Arrighi-Dowek])

t(u + s)

(λx .t)(u + s)→ t[(u + s)/x ] (CBN)

(λx .t)(u + s)→ (λx .t)u + (λx .t)s (CBV)

Generically in CBV t(u + s)→ tu + tsIn algebraic terms, functions are treated as linear in CBV:

f(x + y) = f(x) + f(y)

We want to understand this ‘linearity’

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 1 / 20

Page 6: Linearity in the non-deterministic call-by-value setting

Non-determinism (or parallelism)

t + u: non-deterministic superposition between t and u(it may run t or u, non-deterministically)

(t + u)s may run ts or us.Hence (t + u)s→ ts + us

Sum of functions: (f + g)(x) = f(x) + g(x)(this is the interpretation of the algebraic calculi [Vaux, Arrighi-Dowek])

t(u + s)

(λx .t)(u + s)→ t[(u + s)/x ] (CBN)

(λx .t)(u + s)→ (λx .t)u + (λx .t)s (CBV)

Generically in CBV t(u + s)→ tu + ts

In algebraic terms, functions are treated as linear in CBV:f(x + y) = f(x) + f(y)

We want to understand this ‘linearity’

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 1 / 20

Page 7: Linearity in the non-deterministic call-by-value setting

Non-determinism (or parallelism)

t + u: non-deterministic superposition between t and u(it may run t or u, non-deterministically)

(t + u)s may run ts or us.Hence (t + u)s→ ts + us

Sum of functions: (f + g)(x) = f(x) + g(x)(this is the interpretation of the algebraic calculi [Vaux, Arrighi-Dowek])

t(u + s)

(λx .t)(u + s)→ t[(u + s)/x ] (CBN)

(λx .t)(u + s)→ (λx .t)u + (λx .t)s (CBV)

Generically in CBV t(u + s)→ tu + tsIn algebraic terms, functions are treated as linear in CBV:

f(x + y) = f(x) + f(y)

We want to understand this ‘linearity’

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 1 / 20

Page 8: Linearity in the non-deterministic call-by-value setting

Non-determinism (or parallelism)

t + u: non-deterministic superposition between t and u(it may run t or u, non-deterministically)

(t + u)s may run ts or us.Hence (t + u)s→ ts + us

Sum of functions: (f + g)(x) = f(x) + g(x)(this is the interpretation of the algebraic calculi [Vaux, Arrighi-Dowek])

t(u + s)

(λx .t)(u + s)→ t[(u + s)/x ] (CBN)

(λx .t)(u + s)→ (λx .t)u + (λx .t)s (CBV)

Generically in CBV t(u + s)→ tu + tsIn algebraic terms, functions are treated as linear in CBV:

f(x + y) = f(x) + f(y)

We want to understand this ‘linearity’

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 1 / 20

Page 9: Linearity in the non-deterministic call-by-value setting

Outline

I The untyped calculus

I The Additive type system capturing the CBV behaviour of +

I Logical interpretation: translation into System F with pairs

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 2 / 20

Page 10: Linearity in the non-deterministic call-by-value setting

The untyped CBV non-deterministic λ-calculus

t,u, s ::= v | tu | t + u | 0v ::= x | λx .t

Intuitionst + u = non-deterministic superposition between t and u0 = impossible computation

Hence, t + 0→ t because 0 is impossible!

Also 0t→ 0 t0→ 0Because non of them reduces (0 not a value) and there is an impossiblecomputation

Finally t + u = u + t Running t or u non-deterministically, is thesame as running u or t non-deterministically

Also t + (u + s) = (t + u) + s

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 3 / 20

Page 11: Linearity in the non-deterministic call-by-value setting

The untyped CBV non-deterministic λ-calculus

t,u, s ::= v | tu | t + u | 0v ::= x | λx .t

Intuitionst + u = non-deterministic superposition between t and u0 = impossible computation

Hence, t + 0→ t because 0 is impossible!

Also 0t→ 0 t0→ 0Because non of them reduces (0 not a value) and there is an impossiblecomputation

Finally t + u = u + t Running t or u non-deterministically, is thesame as running u or t non-deterministically

Also t + (u + s) = (t + u) + s

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 3 / 20

Page 12: Linearity in the non-deterministic call-by-value setting

The untyped CBV non-deterministic λ-calculus

t,u, s ::= v | tu | t + u | 0v ::= x | λx .t

Intuitionst + u = non-deterministic superposition between t and u0 = impossible computation

Hence, t + 0→ t because 0 is impossible!

Also 0t→ 0 t0→ 0Because non of them reduces (0 not a value) and there is an impossiblecomputation

Finally t + u = u + t Running t or u non-deterministically, is thesame as running u or t non-deterministically

Also t + (u + s) = (t + u) + s

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 3 / 20

Page 13: Linearity in the non-deterministic call-by-value setting

The untyped CBV non-deterministic λ-calculus

t,u, s ::= v | tu | t + u | 0v ::= x | λx .t

Intuitionst + u = non-deterministic superposition between t and u0 = impossible computation

Hence, t + 0→ t because 0 is impossible!

Also 0t→ 0 t0→ 0Because non of them reduces (0 not a value) and there is an impossiblecomputation

Finally t + u = u + t Running t or u non-deterministically, is thesame as running u or t non-deterministically

Also t + (u + s) = (t + u) + s

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 3 / 20

Page 14: Linearity in the non-deterministic call-by-value setting

The untyped CBV non-deterministic λ-calculus

t,u, s ::= v | tu | t + u | 0v ::= x | λx .t

βv -reduction(λx .t)v→ t[v/x ]

Distributivity rules

(t + u)s→ ts + ust(u + s)→ tu + ts

Zero rulest + 0→ t

0t→ 0t0→ 0

with + associative and commutative

Remark: in the algebraic case, 0 is the sum of zero terms

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 3 / 20

Page 15: Linearity in the non-deterministic call-by-value setting

The Additive type systemObjective: capture as much as possible the behaviour of +

Γ ` t : T Γ ` s : S

Γ ` t + s : T + S Γ ` 0 : 0̄Γ ` t : T T ≡ S

Γ ` t : S

T +R ≡ R+T ; T +(R+S) ≡ (T +R)+S ; T + 0̄ ≡ T

T → R: functions from T to R

But (T + R)→ S does not existsthere is no function taking a non-deterministic superposition as argument

Recall t(v1 + v2) → tv1 + tv2If v1 : T and v2 : R then t needs to be both T → S1 and R → S2

Polymorphism & unit types “U” (atomic types w.r.t. +)Arrows: U → T

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 4 / 20

Page 16: Linearity in the non-deterministic call-by-value setting

The Additive type systemObjective: capture as much as possible the behaviour of +

Γ ` t : T Γ ` s : S

Γ ` t + s : T + S Γ ` 0 : 0̄

Γ ` t : T T ≡ S

Γ ` t : S

T +R ≡ R+T ; T +(R+S) ≡ (T +R)+S ; T + 0̄ ≡ T

T → R: functions from T to R

But (T + R)→ S does not existsthere is no function taking a non-deterministic superposition as argument

Recall t(v1 + v2) → tv1 + tv2If v1 : T and v2 : R then t needs to be both T → S1 and R → S2

Polymorphism & unit types “U” (atomic types w.r.t. +)Arrows: U → T

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 4 / 20

Page 17: Linearity in the non-deterministic call-by-value setting

The Additive type systemObjective: capture as much as possible the behaviour of +

Γ ` t : T Γ ` s : S

Γ ` t + s : T + S Γ ` 0 : 0̄Γ ` t : T T ≡ S

Γ ` t : S

T +R ≡ R+T ; T +(R+S) ≡ (T +R)+S ; T + 0̄ ≡ T

T → R: functions from T to R

But (T + R)→ S does not existsthere is no function taking a non-deterministic superposition as argument

Recall t(v1 + v2) → tv1 + tv2If v1 : T and v2 : R then t needs to be both T → S1 and R → S2

Polymorphism & unit types “U” (atomic types w.r.t. +)Arrows: U → T

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 4 / 20

Page 18: Linearity in the non-deterministic call-by-value setting

The Additive type systemObjective: capture as much as possible the behaviour of +

Γ ` t : T Γ ` s : S

Γ ` t + s : T + S Γ ` 0 : 0̄Γ ` t : T T ≡ S

Γ ` t : S

T +R ≡ R+T ; T +(R+S) ≡ (T +R)+S ; T + 0̄ ≡ T

T → R: functions from T to R

But (T + R)→ S does not existsthere is no function taking a non-deterministic superposition as argument

Recall t(v1 + v2) → tv1 + tv2If v1 : T and v2 : R then t needs to be both T → S1 and R → S2

Polymorphism & unit types “U” (atomic types w.r.t. +)Arrows: U → T

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 4 / 20

Page 19: Linearity in the non-deterministic call-by-value setting

The Additive type systemObjective: capture as much as possible the behaviour of +

Γ ` t : T Γ ` s : S

Γ ` t + s : T + S Γ ` 0 : 0̄Γ ` t : T T ≡ S

Γ ` t : S

T +R ≡ R+T ; T +(R+S) ≡ (T +R)+S ; T + 0̄ ≡ T

T → R: functions from T to R

But (T + R)→ S does not existsthere is no function taking a non-deterministic superposition as argument

Recall t(v1 + v2) → tv1 + tv2If v1 : T and v2 : R then t needs to be both T → S1 and R → S2

Polymorphism & unit types “U” (atomic types w.r.t. +)Arrows: U → T

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 4 / 20

Page 20: Linearity in the non-deterministic call-by-value setting

The Additive type systemObjective: capture as much as possible the behaviour of +

Γ ` t : T Γ ` s : S

Γ ` t + s : T + S Γ ` 0 : 0̄Γ ` t : T T ≡ S

Γ ` t : S

T +R ≡ R+T ; T +(R+S) ≡ (T +R)+S ; T + 0̄ ≡ T

T → R: functions from T to R

But (T + R)→ S does not existsthere is no function taking a non-deterministic superposition as argument

Recall t(v1 + v2) → tv1 + tv2If v1 : T and v2 : R then t needs to be both T → S1 and R → S2

Polymorphism & unit types “U” (atomic types w.r.t. +)Arrows: U → T

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 4 / 20

Page 21: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Examples

Concrete example

v1 : U1 ; v2 : U2 ; I : ∀X .X → X

Hence I (v1 + v2)→ Iv1 + Iv2 has type U1 + U2

A more generic example

v1 : U[W1/X ] ; v2 : U[W2/X ] ; t : ∀X .U → T

Hence t(v1 + v2)→ tv1 + tv2 has type T [W1/X ] +T [W2/X ]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 5 / 20

Page 22: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Examples

Concrete example

v1 : U1 ; v2 : U2 ; I : ∀X .X → X

Hence I (v1 + v2)→ Iv1 + Iv2 has type U1 + U2

A more generic example

v1 : U[W1/X ] ; v2 : U[W2/X ] ; t : ∀X .U → T

Hence t(v1 + v2)→ tv1 + tv2 has type T [W1/X ] +T [W2/X ]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 5 / 20

Page 23: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Examples

Γ ` t : ∀X .U → T Γ ` v1 + v2 : U[W1/X ] + U[W2/X ]

Γ ` t(v1 + v2) : T [W1/X ] + T [W2/X ]

A more generic example

v1 : U[W1/X ] ; v2 : U[W2/X ] ; t : ∀X .U → T

Hence t(v1 + v2)→ tv1 + tv2 has type T [W1/X ] +T [W2/X ]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 5 / 20

Page 24: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Examples

t : U → T ; u : V → R

(t + u)v→ tv + uv

Hence U and V needs to “polymorph” to the type of v

v : U[W1/X ] = V [W2/X ] t : ∀X .(U → T ) u : ∀X .(V → R)

Hence tv + uv has type T [W1/X ] + R[W2/X ]

Γ ` t + u : ∀X .(U → T ) + ∀X .(V → R) Γ ` v : U[W1/X ] = V [W2/X ]

Γ ` (t + u)v : T [W1/X ] + R[W2/X ]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 6 / 20

Page 25: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Examples

t : U → T ; u : V → R

(t + u)v→ tv + uv

Hence U and V needs to “polymorph” to the type of v

v : U[W1/X ] = V [W2/X ] t : ∀X .(U → T ) u : ∀X .(V → R)

Hence tv + uv has type T [W1/X ] + R[W2/X ]

Γ ` t + u : ∀X .(U → T ) + ∀X .(V → R) Γ ` v : U[W1/X ] = V [W2/X ]

Γ ` (t + u)v : T [W1/X ] + R[W2/X ]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 6 / 20

Page 26: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Examples

t : U → T ; u : V → R

(t + u)v→ tv + uv

Hence U and V needs to “polymorph” to the type of v

v : U[W1/X ] = V [W2/X ] t : ∀X .(U → T ) u : ∀X .(V → R)

Hence tv + uv has type T [W1/X ] + R[W2/X ]

Γ ` t + u : ∀X .(U → T ) + ∀X .(V → R) Γ ` v : U[W1/X ] = V [W2/X ]

Γ ` (t + u)v : T [W1/X ] + R[W2/X ]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 6 / 20

Page 27: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Arrow elimination

Γ ` t : ∀X .U → T Γ ` v1 + v2 : U[W1/X ] + U[W2/X ]

Γ ` t(v1 + v2) : T [W1/X ] + T [W2/X ]

Γ ` t + u : ∀X .(U → T ) + ∀X .(V → R) Γ ` v : U[W1/X ] = V [W2/X ]

Γ ` (t + u)v : T [W1/X ] + R[W2/X ]

combined...

Γ ` t + u : ∀X .(U → T ) + ∀X .(U → R) Γ ` v1 + v2 : U[W1/X ] + U[W2/X ]

Γ ` (t + u)(v1 + v2) : T [W1/X ] + T [W2/X ] + R[W1/X ] + R[W2/X ]

generalising...

Γ ` t :n∑

i=1

∀~X .(U → Ti ) Γ ` u :m∑j=1

U[ ~Wj/~X ]

Γ ` tu :n∑

i=1

m∑j=1

Ti [ ~Wj/~X ]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 7 / 20

Page 28: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Arrow elimination

Γ ` t : ∀X .U → T Γ ` v1 + v2 : U[W1/X ] + U[W2/X ]

Γ ` t(v1 + v2) : T [W1/X ] + T [W2/X ]

Γ ` t + u : ∀X .(U → T ) + ∀X .(V → R) Γ ` v : U[W1/X ] = V [W2/X ]

Γ ` (t + u)v : T [W1/X ] + R[W2/X ]

combined...

Γ ` t + u : ∀X .(U → T ) + ∀X .(U → R) Γ ` v1 + v2 : U[W1/X ] + U[W2/X ]

Γ ` (t + u)(v1 + v2) : T [W1/X ] + T [W2/X ] + R[W1/X ] + R[W2/X ]

generalising...

Γ ` t :n∑

i=1

∀~X .(U → Ti ) Γ ` u :m∑j=1

U[ ~Wj/~X ]

Γ ` tu :n∑

i=1

m∑j=1

Ti [ ~Wj/~X ]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 7 / 20

Page 29: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Examples

V1 = U[W1/X ] ; V2 = U[W2/X ]

Γ ` λx .t + λy .u : ∀X .(U → T ) + ∀X .(U → R) Γ ` v1 + v2 : V1 + V2

Γ ` (λx .t + λy .u)(v1 + v2) : T [W1/X ] + T [W2/X ] + R[W1/X ] + R[W2/X ]

��(λx .t)v1︸ ︷︷ ︸T [W1/X ]

+ (λx .t)v2︸ ︷︷ ︸T [W2/X ]

+ (λy .u)v1︸ ︷︷ ︸R[W1/X ]

+ (λy .u)v2︸ ︷︷ ︸R[W2/X ]

Simpler example

Γ ` λx .x : ∀X .X → X Γ ` v1 + v2 : U + V

Γ ` (λx .x)(v1 + v2) : U + V

without simultaneous arrow/forall elimination it is not possible to type it!

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 8 / 20

Page 30: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Examples

V1 = U[W1/X ] ; V2 = U[W2/X ]

Γ ` λx .t + λy .u : ∀X .(U → T ) + ∀X .(U → R) Γ ` v1 + v2 : V1 + V2

Γ ` (λx .t + λy .u)(v1 + v2) : T [W1/X ] + T [W2/X ] + R[W1/X ] + R[W2/X ]

��(λx .t)v1︸ ︷︷ ︸T [W1/X ]

+ (λx .t)v2︸ ︷︷ ︸T [W2/X ]

+ (λy .u)v1︸ ︷︷ ︸R[W1/X ]

+ (λy .u)v2︸ ︷︷ ︸R[W2/X ]

Simpler example

Γ ` λx .x : ∀X .X → X Γ ` v1 + v2 : U + V

Γ ` (λx .x)(v1 + v2) : U + V

without simultaneous arrow/forall elimination it is not possible to type it!Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 8 / 20

Page 31: Linearity in the non-deterministic call-by-value setting

The Additive type system (cont.)Summarising

T ,R,S := U | T + R | 0̄ general typesU,V ,W := X | U → T | ∀X .U unit types

T + 0̄ ≡ T ; T +R ≡ R+T ; T +(R+S) ≡ (T +R)+S

axΓ, x : U ` x : U

ax0̄Γ ` 0 : 0̄

Γ ` t : T Γ ` u : R+I

Γ ` t + u : T + R

Γ ` t :n∑

i=1

∀~X .(U → Ti ) Γ ` u :m∑j=1

U[ ~Wj/~X ]

→E

Γ ` tu :n∑

i=1

m∑j=1

Ti [ ~Wj/~X ]

Γ, x : U ` t : T→I

Γ ` λx .t : U → T

Γ ` t : ∀X .U∀E

Γ ` t : U[V /X ]

Γ ` t : U X /∈ FV (Γ)∀I

Γ ` t : ∀X .U

Γ ` t : T T ≡ R≡

Γ ` t : R

• Strong normalisation X• Subject reduction X

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 9 / 20

Page 32: Linearity in the non-deterministic call-by-value setting

Outline

I The untyped calculus

I The Additive type system capturing the CBV behaviour of +

I Logical interpretation: translation into System F with pairs

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 10 / 20

Page 33: Linearity in the non-deterministic call-by-value setting

System F with pairs

t, u ::= x | λx .t | tu | ? | 〈t, u〉 | π1(t) | π2(t)

A,B ::= X | A⇒ B | ∀X .A | 1 | A× B

(λx .t)u → t[u/x ] π1(〈t1, t2〉)→ t1 π2(〈t1, t2〉)→ t2

Additive System F with pairsX X

U → T |U| ⇒ |T |∀X .U ∀X .|U|0̄ 1

T + S |T | × |S |

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 11 / 20

Page 34: Linearity in the non-deterministic call-by-value setting

Sums as Pairs

+ , 0̄ × , 1

T + S ≡ S + T A× B 6= B × AT + (S + R) ≡ (T + S) + R A× (B × C ) 6= (A× B)× C

T + 0̄ ≡ T A× 1 6= A

T ,R,S ::= U | T + R | 0̄U,V ,W ::= X | U → T | ∀X .UType Binary tree (leaf: U or 0̄)

Example:T = (U1 + U2) + 0̄

T [r 7→ 0̄, lr 7→ U2, ll 7→ U1]

U1 U2

We keep structured sum types

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 12 / 20

Page 35: Linearity in the non-deterministic call-by-value setting

Sums as Pairs

+ , 0̄ × , 1

T + S ≡ S + T A× B 6= B × AT + (S + R) ≡ (T + S) + R A× (B × C ) 6= (A× B)× C

T + 0̄ ≡ T A× 1 6= A

T ,R,S ::= U | T + R | 0̄U,V ,W ::= X | U → T | ∀X .UType Binary tree (leaf: U or 0̄)

Example:T = (U1 + U2) + 0̄

T [r 7→ 0̄, lr 7→ U2, ll 7→ U1]

U1 U2

We keep structured sum types

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 12 / 20

Page 36: Linearity in the non-deterministic call-by-value setting

Structured Arrow-elimination

Γ ` t :n∑

i=1

∀~X .(U → Ti ) Γ ` u :m∑j=1

U[ ~Wj/~X ]

Γ ` tu :n∑

i=1

m∑j=1

Ti [ ~Wj/~X ]

Γ ` t : T [` 7→ ∀~X .(U → T`)] Γ ` u : T ′[`′ 7→ U[ ~W`′/~X ]]

Γ ` tu : T ◦ T ′[``′ 7→ T`[ ~W`′/~X ]]

t:

∀X .U→T1 ∀X .U→T2

u:

U[W1/X ] U[W2/X ]

tu:

T1 [W1/X ] T1 [W2/X ] T2 [W1/X ] T2 [W2/X ]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 13 / 20

Page 37: Linearity in the non-deterministic call-by-value setting

Structured Arrow-eliminationAn example

t = (t1 + t2) + 0

U → T1 U → T2

u = u1 + (u2 + u3)

U

U U

tu →∗ t1(u1 + (u2 + u3)

)+

t2(u1 + (u2 + u3)

)+ 0

→∗ t1u1 + (t1u2 + t1u3)+t2u1 + (t2u2 + t2u3) + 0

T1

T1 T1

T2

T2 T2

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 14 / 20

Page 38: Linearity in the non-deterministic call-by-value setting

Equivalence in System F

What about associativity, commutativity and neutral elementin system F with pairs?

Lemma

T ≡ T ′ implies |T | ↔ |T ′|

Where A↔ B means

`F εA,B : A⇒ B and `F εB,A : B ⇒ A

for some terms εA,B , εB,A s.t.

εA,B ◦ εB,A ≈ idA and εB,A ◦ εA,B ≈ idB

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 15 / 20

Page 39: Linearity in the non-deterministic call-by-value setting

Translation of termsWhat happens with the distributivity?

t + u 〈[t], [u]〉

(t1 + t2)(u1 + u2)→∗ but 〈t1, t2〉 〈r1, r2〉9t1u1 + t1u2 + t2u1 + t2u2 〈〈t1r1, t1r2〉, 〈t2r1, t2r2〉〉

No distributivity in System F with pairs

Main ideas:

I The sum is distributed during the translation of application[tr] = 〈 〈[t1][u1], [t1][u2]〉 , 〈[t2][u1], [t2][u2]〉 〉

if t = t1 + t2 and u = u1 + u2

I The “sum structure” of a term is known thanks to its typeΓ ` t : (T1 + T2) + T3 t ∼ (t1 + t2) + t3

with Γ ` ti : Ti

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 16 / 20

Page 40: Linearity in the non-deterministic call-by-value setting

Translation of termsWhat happens with the distributivity?

t + u 〈[t], [u]〉

(t1 + t2)(u1 + u2)→∗ but 〈t1, t2〉 〈r1, r2〉9t1u1 + t1u2 + t2u1 + t2u2 〈〈t1r1, t1r2〉, 〈t2r1, t2r2〉〉

No distributivity in System F with pairs

Main ideas:I The sum is distributed during the translation of application

[tr] = 〈 〈[t1][u1], [t1][u2]〉 , 〈[t2][u1], [t2][u2]〉 〉if t = t1 + t2 and u = u1 + u2

I The “sum structure” of a term is known thanks to its typeΓ ` t : (T1 + T2) + T3 t ∼ (t1 + t2) + t3

with Γ ` ti : Ti

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 16 / 20

Page 41: Linearity in the non-deterministic call-by-value setting

Translation of termsWhat happens with the distributivity?

t + u 〈[t], [u]〉

(t1 + t2)(u1 + u2)→∗ but 〈t1, t2〉 〈r1, r2〉9t1u1 + t1u2 + t2u1 + t2u2 〈〈t1r1, t1r2〉, 〈t2r1, t2r2〉〉

No distributivity in System F with pairs

Main ideas:I The sum is distributed during the translation of application

[tr] = 〈 〈[t1][u1], [t1][u2]〉 , 〈[t2][u1], [t2][u2]〉 〉if t = t1 + t2 and u = u1 + u2

I The “sum structure” of a term is known thanks to its typeΓ ` t : (T1 + T2) + T3 t ∼ (t1 + t2) + t3

with Γ ` ti : Ti

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 16 / 20

Page 42: Linearity in the non-deterministic call-by-value setting

Translation of terms

Γ ` t : T |Γ| `F [t]D : |T |

Γ, x : T ` x : T [x ]D = xΓ ` 0 : 0̄ [0]D = ?

Γ ` t : T T ≡ T ′

Γ ` t : T ′ [t]D = ε|T |,|T ′|[t]D′

Γ ` t : T Γ ` u : S

Γ ` t + u : T + S [t+r]D = 〈[t]D1 , [u]D2〉

Γ, x : U ` t : T

Γ ` λx .t : U → T [λx .t]D = λx .[t]D′

Γ ` t : T [` 7→∀~X .(U→T`)] Γ ` u : T ′[`′ 7→U[ ~W`′/~X ]]

Γ ` tu : T ◦ T ′[``′ 7→T`[ ~W`′/~X ]] [tu]D = T ◦ T ′[``′ 7→π`([t]D1 )π

`′ ([u]D2 )]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 17 / 20

Page 43: Linearity in the non-deterministic call-by-value setting

Translation of terms

Γ ` t : T |Γ| `F [t]D : |T |

Γ, x : T ` x : T [x ]D = xΓ ` 0 : 0̄ [0]D = ?

Γ ` t : T T ≡ T ′

Γ ` t : T ′ [t]D = ε|T |,|T ′|[t]D′

Γ ` t : T Γ ` u : S

Γ ` t + u : T + S [t+r]D = 〈[t]D1 , [u]D2〉

Γ, x : U ` t : T

Γ ` λx .t : U → T [λx .t]D = λx .[t]D′

Γ ` t : T [` 7→∀~X .(U→T`)] Γ ` u : T ′[`′ 7→U[ ~W`′/~X ]]

Γ ` tu : T ◦ T ′[``′ 7→T`[ ~W`′/~X ]] [tu]D = T ◦ T ′[``′ 7→π`([t]D1 )π

`′ ([u]D2 )]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 17 / 20

Page 44: Linearity in the non-deterministic call-by-value setting

Translation of terms

Γ ` t : T |Γ| `F [t]D : |T |

Γ, x : T ` x : T [x ]D = xΓ ` 0 : 0̄ [0]D = ?

Γ ` t : T T ≡ T ′

Γ ` t : T ′ [t]D = ε|T |,|T ′|[t]D′

Γ ` t : T Γ ` u : S

Γ ` t + u : T + S [t+r]D = 〈[t]D1 , [u]D2〉

Γ, x : U ` t : T

Γ ` λx .t : U → T [λx .t]D = λx .[t]D′

Γ ` t : T [` 7→∀~X .(U→T`)] Γ ` u : T ′[`′ 7→U[ ~W`′/~X ]]

Γ ` tu : T ◦ T ′[``′ 7→T`[ ~W`′/~X ]] [tu]D = T ◦ T ′[``′ 7→π`([t]D1 )π

`′ ([u]D2 )]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 17 / 20

Page 45: Linearity in the non-deterministic call-by-value setting

Translation of terms

Γ ` t : T |Γ| `F [t]D : |T |

Γ, x : T ` x : T [x ]D = xΓ ` 0 : 0̄ [0]D = ?

Γ ` t : T T ≡ T ′

Γ ` t : T ′ [t]D = ε|T |,|T ′|[t]D′

Γ ` t : T Γ ` u : S

Γ ` t + u : T + S [t+r]D = 〈[t]D1 , [u]D2〉

Γ, x : U ` t : T

Γ ` λx .t : U → T [λx .t]D = λx .[t]D′

Γ ` t : T [` 7→∀~X .(U→T`)] Γ ` u : T ′[`′ 7→U[ ~W`′/~X ]]

Γ ` tu : T ◦ T ′[``′ 7→T`[ ~W`′/~X ]] [tu]D = T ◦ T ′[``′ 7→π`([t]D1 )π

`′ ([u]D2 )]

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 17 / 20

Page 46: Linearity in the non-deterministic call-by-value setting

Translation of termsAn example

Γ ` t :(

(U → T1) + (U → T2))

+ (U → T3) Γ ` u : U + U

Γ ` tu :(

(T1 + T1) + (T2 + T2))

+ (T3 + T3)

tu :

T1 T1T2 T2

T3 T3

t1=π11([t]);t2=π12([t]);t3=π2([t]);

r1=π1([u]);r2=π2([u]);

[tu]D =

t1r1 t1r2 t2r1 t2r2

t3r1 t3r2

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 18 / 20

Page 47: Linearity in the non-deterministic call-by-value setting

Correctness

Theorem (Correctness w.r.t. typing)Γ ` t : T implies |Γ| `F [t]D : |T |

We provide a partial inverse translation (| · |) and prove

Theorem (Inverse translation)Γ ` t : T = (||Γ||) `F (|[t]D|) : (||T ||)

Theorem (Reduction preservation)Γ ` t : T and t→ t′ implies [t]D →+ [t′]D′ for some D′

(except for t + 0 → t)

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 19 / 20

Page 48: Linearity in the non-deterministic call-by-value setting

Summarising and concluding

I + “like linear functions”: f(x + y) = f(x) + f(y)

I Additive type system tight to the behaviour of +

I Typed system translate to System F with pairs

System F with pairs correspond to the non-linear fragment ofIMELL

Linear Logic CBV nd/algForce unique use of the argument Ban sum terms substitutionse.g.

f(x) = x2 no linearf(x) = x + 1 linear

e.g.

f(x + y)→ f(x) + f(y)

In the CBV non-deterministic setting (or algebraic) it is enough to treatfunctions as linear, even if they are not. (In LL all functions are linear).

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 20 / 20

Page 49: Linearity in the non-deterministic call-by-value setting

Summarising and concluding

I + “like linear functions”: f(x + y) = f(x) + f(y)

I Additive type system tight to the behaviour of +

I Typed system translate to System F with pairs

System F with pairs correspond to the non-linear fragment ofIMELL

Linear Logic CBV nd/algForce unique use of the argument Ban sum terms substitutionse.g.

f(x) = x2 no linearf(x) = x + 1 linear

e.g.

f(x + y)→ f(x) + f(y)

In the CBV non-deterministic setting (or algebraic) it is enough to treatfunctions as linear, even if they are not. (In LL all functions are linear).

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 20 / 20

Page 50: Linearity in the non-deterministic call-by-value setting

Summarising and concluding

I + “like linear functions”: f(x + y) = f(x) + f(y)

I Additive type system tight to the behaviour of +

I Typed system translate to System F with pairs

System F with pairs correspond to the non-linear fragment ofIMELL

Linear Logic CBV nd/algForce unique use of the argument Ban sum terms substitutionse.g.

f(x) = x2 no linearf(x) = x + 1 linear

e.g.

f(x + y)→ f(x) + f(y)

In the CBV non-deterministic setting (or algebraic) it is enough to treatfunctions as linear, even if they are not. (In LL all functions are linear).

Alejandro Díaz-Caro & Barbara Petit Linearity in the non-deterministic call-by-value setting 20 / 20