A type system for the vectorial aspects of the linear-algebraic lambda-calculus

26
A type system for the vectorial aspects of the linear-algebraic lambda-calculus Pablo Arrighi 1,2 Alejandro Díaz-Caro 1 Benoît Valiron 3,4 1 Université de Grenoble, LIG, France 2 École Normale Supérieure de Lyon, LIP, France 3 Université de Paris-Nord, LIPN, France 4 University of Pennsylvania, USA 7 th DCM July 3, 2011 Zurich, Switzerland

description

We describe a type system for the linear-algebraic lambda-calculus. The type system accounts for the part of the language emulating linear operators and vectors, i.e. it is able to statically describe the linear combinations of terms resulting from the reduction of programs. This gives rise to an original type theory where types, in the same way as terms, can be superposed into linear combinations. We show that the resulting typed lambda-calculus is strongly normalizing and features a weak subject-reduction.

Transcript of A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Page 1: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

A type system for the vectorial aspects of thelinear-algebraic lambda-calculus

Pablo Arrighi1,2 Alejandro Díaz-Caro1 Benoît Valiron3,4

1Université de Grenoble, LIG, France

2École Normale Supérieure de Lyon, LIP, France

3Université de Paris-Nord, LIPN, France

4University of Pennsylvania, USA

7th DCM • July 3, 2011 • Zurich, Switzerland

Page 2: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

M,N ::= x | λx .M | (M)N | M + N | α.M | 0

Beta reduction:(λx .M)N → M[x := N]

“Algebraic” reductions:α.M + β.M → (α + β).M,

(M)(N1 + N2) → (M)N1 + (M)N2,. . .. . .. . .

(oriented version of the axioms of vectorial spaces)

Two origins:I Differential λ-calculus: capturing linearity à la Linear Logic→ Removing the differential operator : Algebraic λ-calculus (λalg) [Vaux’09]

I Quantum computing: superposition of programs→ Linearity as in algebra: Linear-algebraic λ-calculus (λlin)

[Arrighi,Dowek’08]

2 / 15

Page 3: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

M,N ::= x | λx .M | (M)N | M + N | α.M | 0

Beta reduction:(λx .M)N → M[x := N]

“Algebraic” reductions:α.M + β.M → (α + β).M,

(M)(N1 + N2) → (M)N1 + (M)N2,. . .. . .. . .

(oriented version of the axioms of vectorial spaces)

λalg λlinOrigin Linear Logic Quantum computing

Strategy Call-by-name Call-by-valueAlgebraic part Equalities Rewrite system

2 / 15

Page 4: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

An infinite dimensional vectorial space of values

B = {Mi : Mi is a variable or abstraction }

Set of values ::= Span(B)

(Now we should call λlin’s strategy: “call-by-base”)

3 / 15

Page 5: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Why would it be interesting?I Several theories using the concept of linear-combination of terms

quantum, probabilistic, non-deterministic models, . . .I “Why would vector spaces be an interesting theory?”

Many applications and moreover, interesting by itself!

Aim of the current work:A type system capturing the “vectorial” structure of terms

. . . to check for probability distributions

. . . or “quantumness” of the term

. . . or whatever application needing the structure of the vectorin normal form

. . . a Curry-Howard approach to definingFuzzy/Quantum/Probabilistic logics fromFuzzy/Quantum/Probabilistic programming languages.

4 / 15

Page 6: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

The Scalar Type System [Arrighi,Díaz-Caro’09]

A polymorphic type system tracking scalars:Γ ` M : T

Γ ` α.M : α.TI Barycentric restrictionsI Characterises the “amount” of terms

The Additive Type System [Díaz-Caro,Petit’10]

A polymorphic type system with sums:

Γ ` M : T Γ ` N : R

Γ ` M + N : T + R

I Sums ∼ Assoc., comm. pairsI distributive w.r.t. application

Can we combine them?

5 / 15

Page 7: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

The Vectorial Type System

Types:T ,R,S := U | T + R | α.T

U,V ,W := X | U → T | ∀X .U

(U,V ,W reflect the basis terms)

Equivalences:

1.T ≡ Tα.(β.T ) ≡ (α× β).T

α.T + α.R ≡ α.(T + R)

α.T + β.T ≡ (α + β).TT + R ≡ R + T

T + (R + S) ≡ (T + R) + S

(reflect the vectorial spaces axioms)

6 / 15

Page 8: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

The factorisation rule problem

Γ ` M : T Γ ` M : T ′======================Γ ` α.M + β.M : α.T + β.T ′

I However, α.M + β.M → (α + β).MI In general α.T + β.T ′ 6= (α + β).T 6= (α + β).T ′

(and since we are working in System F, there is no principal types neither)

7 / 15

Page 9: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Several possible solutions:

I Remove factorisation rule (Done. SR and SN both work)I + in scalars not used anymore. Scalars ⇒ MonoidI It works!... but it is no so expressive (“vectorial” structure lost)

I Add several typing rules to allow typing (α + β).M with α.T + β.T ′

I As soon as we add one, we have to add many to make it workI Too complex and inelegant (subject reduction by axiom)

I Church styleI Seems to be the natural solutionI Big complexity with polymorphism and distributivity

I Weak subject reduction (this work)I What is the best we can get in Curry style?

8 / 15

Page 10: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Several possible solutions:

I Remove factorisation rule (Done. SR and SN both work)I + in scalars not used anymore. Scalars ⇒ MonoidI It works!... but it is no so expressive (“vectorial” structure lost)

I Add several typing rules to allow typing (α + β).M with α.T + β.T ′

I As soon as we add one, we have to add many to make it workI Too complex and inelegant (subject reduction by axiom)

I Church styleI Seems to be the natural solutionI Big complexity with polymorphism and distributivity

I Weak subject reduction (this work)I What is the best we can get in Curry style?

8 / 15

Page 11: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Several possible solutions:

I Remove factorisation rule (Done. SR and SN both work)I + in scalars not used anymore. Scalars ⇒ MonoidI It works!... but it is no so expressive (“vectorial” structure lost)

I Add several typing rules to allow typing (α + β).M with α.T + β.T ′

I As soon as we add one, we have to add many to make it workI Too complex and inelegant (subject reduction by axiom)

I Church styleI Seems to be the natural solutionI Big complexity with polymorphism and distributivity

I Weak subject reduction (this work)I What is the best we can get in Curry style?

8 / 15

Page 12: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Several possible solutions:

I Remove factorisation rule (Done. SR and SN both work)I + in scalars not used anymore. Scalars ⇒ MonoidI It works!... but it is no so expressive (“vectorial” structure lost)

I Add several typing rules to allow typing (α + β).M with α.T + β.T ′

I As soon as we add one, we have to add many to make it workI Too complex and inelegant (subject reduction by axiom)

I Church styleI Seems to be the natural solutionI Big complexity with polymorphism and distributivity

I Weak subject reduction (this work)I What is the best we can get in Curry style?

8 / 15

Page 13: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Typing rules

axΓ, x : U ` x : U

Γ ` M : T0I

Γ ` 0 : 0.T

Γ ` M : TαI

Γ ` α.M : α.T

Γ ` M :n∑

i=1

αi .∀~X .(U → Ti ) Γ ` N :m∑

j=1

βi .Vj ∀Vj ,∃~Wj/U[~Wj/~X ]=Vj

→E

Γ ` (M)N :n∑

i=1

m∑j=1

αi × βi .Ti [ ~Wj/~X ]

Γ, x : U ` M : T→I

Γ ` λx .M : U → T

Γ ` M : T Γ ` N : R+I

Γ ` M + N : T + R

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

Γ ` M : ∀X .U

Γ ` M : ∀X .U∀E

Γ ` M : U[V /X ]

9 / 15

Page 14: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

(α + β).T v α.T + β.T ′ if ∃M / Γ ` M : T and Γ ` M : T ′

(and its contextual closure)

Theorem (A weak subject reduction)If Γ ` M : T and M →R N, then

I if R is not a factorisation rule: Γ ` N : TI if R is a factorisation rule: ∃S v T / Γ ` N : S

How weak?

Let M → N,Subject reduction

Γ ` M : T ⇒ Γ ` N : TSubtyping

Γ ` M : T ⇒ Γ ` N : S , but S ≤ T , so Γ ` N : TOur theorem

Γ ` M : T ⇒ Γ ` N : S , and S v T

10 / 15

Page 15: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

(α + β).T v α.T + β.T ′ if ∃M / Γ ` M : T and Γ ` M : T ′

(and its contextual closure)

Theorem (A weak subject reduction)If Γ ` M : T and M →R N, then

I if R is not a factorisation rule: Γ ` N : TI if R is a factorisation rule: ∃S v T / Γ ` N : S

How weak?

Let M → N,Subject reduction

Γ ` M : T ⇒ Γ ` N : TSubtyping

Γ ` M : T ⇒ Γ ` N : S , but S ≤ T , so Γ ` N : TOur theorem

Γ ` M : T ⇒ Γ ` N : S , and S v T

10 / 15

Page 16: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

(α + β).T v α.T + β.T ′ if ∃M / Γ ` M : T and Γ ` M : T ′

(and its contextual closure)

Theorem (A weak subject reduction)If Γ ` M : T and M →R N, then

I if R is not a factorisation rule: Γ ` N : TI if R is a factorisation rule: ∃S v T / Γ ` N : S

How weak?

Let M → N,Subject reduction

Γ ` M : T ⇒ Γ ` N : TSubtyping

Γ ` M : T ⇒ Γ ` N : S , but S ≤ T , so Γ ` N : TOur theorem

Γ ` M : T ⇒ Γ ` N : S , and S v T

10 / 15

Page 17: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Confluence and Strong normalisation

In the original untyped setting: “confluence by restrictions”:

YB = (λx .(B + (x)x))λx .(B + (x)x)

YB → B + YB → B + B + YB → . . .

YB + (−1).YB −→ (1− 1).YB −→∗ 0↓

B + YB + (−1).YB

↓∗B

Solution in the untyped setting:α.M + β.M → (α + β).Monly if M is closed-normal

In the typed setting: Strong normalisation solves the problem

11 / 15

Page 18: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Confluence and Strong normalisation

In the original untyped setting: “confluence by restrictions”:

YB = (λx .(B + (x)x))λx .(B + (x)x)

YB → B + YB → B + B + YB → . . .

YB + (−1).YB −→ (1− 1).YB −→∗ 0↓

B + YB + (−1).YB

↓∗B

Solution in the untyped setting:α.M + β.M → (α + β).Monly if M is closed-normal

In the typed setting: Strong normalisation solves the problem

11 / 15

Page 19: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Confluence and Strong normalisation

In the original untyped setting: “confluence by restrictions”:

YB = (λx .(B + (x)x))λx .(B + (x)x)

YB → B + YB → B + B + YB → . . .

YB + (−1).YB −→ (1− 1).YB −→∗ 0↓

B + YB + (−1).YB

↓∗B

Solution in the untyped setting:α.M + β.M → (α + β).Monly if M is closed-normal

In the typed setting: Strong normalisation solves the problem

11 / 15

Page 20: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Theorem (Strong normalisation)Γ ` M : T ⇒ M strongly normalising.

Proof.Reducibility candidates method.

Main difficulty: Show that

{Mi}i strongly normalizing⇒∑

i

αi .Mi strongly normalizing

Done by using a measurement on terms decreasing on algebraicrewrites.

12 / 15

Page 21: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Theorem (Confluence)

∀M / Γ ` M : T M →∗ N1M →∗ N2

⇒ ∃L such that N1 →∗ LN2 →∗ L

Proof.

1) local confluence: M → N1M → N2

⇒ ∃L such that N1 →∗ LN2 →∗ L

I Algebraic fragment: Coq proofI Beta-reduction: Straightforward extensionI Commutation: Induction

2) Local confluence + Strong normalisation ⇒ Confluence [TeReSe’03]

13 / 15

Page 22: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Expressing matrices and vectors

Two base vectors: true = λx .λy .xfalse = λx .λy .y

Their types: T = ∀XY .X → Y → XF = ∀XY .X → Y → Y

` α.true + β.false : α.T + β.F

Linear map U s.t. (U)true = a.true + b.false(U)false = c .true + d .false

U := λx .{((x)[a.true + b.false])[c .true + d .false]}

with [M] :=λz .M{M} := (M)_{[M]}→M

` U : ∀X .((I → (a.T + b.F))→ (I → (c .T + d .F))→ X )→ X

14 / 15

Page 23: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Expressing matrices and vectors

Two base vectors: true = λx .λy .xfalse = λx .λy .y

Their types: T = ∀XY .X → Y → XF = ∀XY .X → Y → Y

` α.true + β.false : α.T + β.F

Linear map U s.t. (U)true = a.true + b.false(U)false = c .true + d .false

U := λx .{((x)[a.true + b.false])[c .true + d .false]}

with [M] :=λz .M{M} := (M)_{[M]}→M

` U : ∀X .((I → (a.T + b.F))→ (I → (c .T + d .F))→ X )→ X

14 / 15

Page 24: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Expressing matrices and vectors

Two base vectors: true = λx .λy .xfalse = λx .λy .y

Their types: T = ∀XY .X → Y → XF = ∀XY .X → Y → Y

` α.true + β.false : α.T + β.F

Linear map U s.t. (U)true = a.true + b.false(U)false = c .true + d .false

U := λx .{((x)[a.true + b.false])[c .true + d .false]}

with [M] :=λz .M{M} := (M)_{[M]}→M

` U : ∀X .((I → (a.T + b.F))→ (I → (c .T + d .F))→ X )→ X

14 / 15

Page 25: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Expressing matrices and vectors

Two base vectors: true = λx .λy .xfalse = λx .λy .y

Their types: T = ∀XY .X → Y → XF = ∀XY .X → Y → Y

` α.true + β.false : α.T + β.F

Linear map U s.t. (U)true = a.true + b.false(U)false = c .true + d .false

U := λx .{((x)[a.true + b.false])[c .true + d .false]}

with [M] :=λz .M{M} := (M)_{[M]}→M

` U : ∀X .((I → (a.T + b.F))→ (I → (c .T + d .F))→ X )→ X

14 / 15

Page 26: A type system for the vectorial aspects of the linear-algebraic lambda-calculus

Contributions

I Scalar ∪ Additive (“AC, distributive pairs”)⇒ linear-combination of types

I The typing gives the information of“how much the scalars sums” in the normal form

I Weak SR⇒ Church style captures better the vectorial structure

I Strong normalisation⇒ Confluence without restrictions

I Representation of matrices and vectors

15 / 15