Non determinism through type isomophism

43
Non determinism through type isomophism Alejandro Díaz-Caro LIPN, Université Paris 13, Sorbonne Paris Cité Gilles Dowek INRIA – Paris–Rocquencourt 7th LSFA Rio de Janeiro, September 29–30, 2012

description

We define an equivalence relation on propositions and a proof system where equivalent propositions have the same proofs. The system obtained this way resembles several known non-deterministic and algebraic lambda-calculi.

Transcript of Non determinism through type isomophism

Page 1: Non determinism through type isomophism

Non determinism through typeisomophism

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

Gilles DowekINRIA – Paris–Rocquencourt

7th LSFARio de Janeiro, September 29–30, 2012

Page 2: Non determinism through type isomophism

Motivation: Di Cosmo’s isomorphisms [Di Cosmo’95]

- A ∧ B ≡ B ∧ A- A ∧ (B ∧ C ) ≡ (A ∧ B) ∧ C- A⇒ (B ∧ C ) ≡ (A⇒ B) ∧ (A⇒ C )

- (A ∧ B)⇒ C ≡ A⇒ (B ⇒ C )

- A⇒ (B ⇒ C ) ≡ B ⇒ (A⇒ C )

- A ∧ T ≡ A- A⇒ T ≡ T- T⇒ A ≡ A- ∀X .∀Y .A ≡ ∀Y .∀X .A- ∀X .A ≡ ∀Y .A[Y = X ]

- ∀X .(A⇒ B) ≡ A⇒ ∀X .B if X /∈ FV (A)

- ∀X .(A ∧ B) ≡ ∀X .A ∧ ∀X .B- ∀X .T ≡ T- ∀X .(A ∧ B) ≡ ∀X .∀Y .(A ∧ (B[Y = X ]))

We want a proof-systemwhere isomorphic proposi-tions have the same proofs

2 / 10

Page 3: Non determinism through type isomophism

Motivation: Di Cosmo’s isomorphisms [Di Cosmo’95]

- A ∧ B ≡ B ∧ A- A ∧ (B ∧ C ) ≡ (A ∧ B) ∧ C- A⇒ (B ∧ C ) ≡ (A⇒ B) ∧ (A⇒ C )

- (A ∧ B)⇒ C ≡ A⇒ (B ⇒ C )

- A⇒ (B ⇒ C ) ≡ B ⇒ (A⇒ C )

- A ∧ T ≡ A- A⇒ T ≡ T- T⇒ A ≡ A- ∀X .∀Y .A ≡ ∀Y .∀X .A- ∀X .A ≡ ∀Y .A[Y = X ]

- ∀X .(A⇒ B) ≡ A⇒ ∀X .B if X /∈ FV (A)

- ∀X .(A ∧ B) ≡ ∀X .A ∧ ∀X .B- ∀X .T ≡ T- ∀X .(A ∧ B) ≡ ∀X .∀Y .(A ∧ (B[Y = X ]))

We want a proof-systemwhere isomorphic proposi-tions have the same proofs

2 / 10

Page 4: Non determinism through type isomophism

Minimal second order propositional logic

Γ, x : A ` x : A

Γ, x : A ` t : B

Γ ` λx .t : A⇒ B

Γ ` t : A⇒ B Γ ` s : A

Γ ` ts : B

Γ ` t : AX /∈ FV (Γ)

Γ ` t : ∀X .A

Γ ` t : ∀X .A

Γ ` t : A[B/X ]

Adding conjunctionΓ ` t : A Γ ` r : B

Γ ` 〈t, r〉 : A ∧ B

We want A ∧ B = B ∧ AA ∧ (B ∧ C ) = (A ∧ B) ∧ Cso 〈t, r〉 = 〈r, t〉〈t, 〈r, s〉〉 = 〈〈t, r〉, s〉

We writet + r = r + t

t + (r + s) = (t + r) + s

Also A⇒ (B ∧ C) = (A⇒ B) ∧ (A⇒ C) inducesλx .(t + r) = λx .t + λx .r

(t + r)s = ts + rs

3 / 10

Page 5: Non determinism through type isomophism

Minimal second order propositional logic

Γ, x : A ` x : A

Γ, x : A ` t : B

Γ ` λx .t : A⇒ B

Γ ` t : A⇒ B Γ ` s : A

Γ ` ts : B

Γ ` t : AX /∈ FV (Γ)

Γ ` t : ∀X .A

Γ ` t : ∀X .A

Γ ` t : A[B/X ]

Adding conjunctionΓ ` t : A Γ ` r : B

Γ ` 〈t, r〉 : A ∧ B

We want A ∧ B = B ∧ AA ∧ (B ∧ C ) = (A ∧ B) ∧ Cso 〈t, r〉 = 〈r, t〉〈t, 〈r, s〉〉 = 〈〈t, r〉, s〉

We writet + r = r + t

t + (r + s) = (t + r) + s

Also A⇒ (B ∧ C) = (A⇒ B) ∧ (A⇒ C) inducesλx .(t + r) = λx .t + λx .r

(t + r)s = ts + rs

3 / 10

Page 6: Non determinism through type isomophism

Minimal second order propositional logic

Γ, x : A ` x : A

Γ, x : A ` t : B

Γ ` λx .t : A⇒ B

Γ ` t : A⇒ B Γ ` s : A

Γ ` ts : B

Γ ` t : AX /∈ FV (Γ)

Γ ` t : ∀X .A

Γ ` t : ∀X .A

Γ ` t : A[B/X ]

Adding conjunctionΓ ` t : A Γ ` r : B

Γ ` 〈t, r〉 : A ∧ B

We want A ∧ B = B ∧ AA ∧ (B ∧ C ) = (A ∧ B) ∧ Cso 〈t, r〉 = 〈r, t〉〈t, 〈r, s〉〉 = 〈〈t, r〉, s〉

We writet + r = r + t

t + (r + s) = (t + r) + s

Also A⇒ (B ∧ C) = (A⇒ B) ∧ (A⇒ C) inducesλx .(t + r) = λx .t + λx .r

(t + r)s = ts + rs

3 / 10

Page 7: Non determinism through type isomophism

Minimal second order propositional logic

Γ, x : A ` x : A

Γ, x : A ` t : B

Γ ` λx .t : A⇒ B

Γ ` t : A⇒ B Γ ` s : A

Γ ` ts : B

Γ ` t : AX /∈ FV (Γ)

Γ ` t : ∀X .A

Γ ` t : ∀X .A

Γ ` t : A[B/X ]

Adding conjunctionΓ ` t : A Γ ` r : B

Γ ` t + r : A ∧ B

We want A ∧ B = B ∧ AA ∧ (B ∧ C ) = (A ∧ B) ∧ Cso 〈t, r〉 = 〈r, t〉〈t, 〈r, s〉〉 = 〈〈t, r〉, s〉

We writet + r = r + t

t + (r + s) = (t + r) + s

Also A⇒ (B ∧ C) = (A⇒ B) ∧ (A⇒ C) inducesλx .(t + r) = λx .t + λx .r

(t + r)s = ts + rs

3 / 10

Page 8: Non determinism through type isomophism

Minimal second order propositional logic

Γ, x : A ` x : A

Γ, x : A ` t : B

Γ ` λx .t : A⇒ B

Γ ` t : A⇒ B Γ ` s : A

Γ ` ts : B

Γ ` t : AX /∈ FV (Γ)

Γ ` t : ∀X .A

Γ ` t : ∀X .A

Γ ` t : A[B/X ]

Adding conjunctionΓ ` t : A Γ ` r : B

Γ ` t + r : A ∧ B

We want A ∧ B = B ∧ AA ∧ (B ∧ C ) = (A ∧ B) ∧ Cso 〈t, r〉 = 〈r, t〉〈t, 〈r, s〉〉 = 〈〈t, r〉, s〉

We writet + r = r + t

t + (r + s) = (t + r) + s

Also A⇒ (B ∧ C) = (A⇒ B) ∧ (A⇒ C) inducesλx .(t + r) = λx .t + λx .r

(t + r)s = ts + rs3 / 10

Page 9: Non determinism through type isomophism

What about ∧-elimination?Γ ` t + r : A ∧ B

Γ ` π1(t + r) : A

But A ∧ B = B ∧ A !!Γ ` t + r : B ∧ A

Γ ` π1(t + r) : B

Moreovert + r = r + t so π1(t + r) = π1(r + t) !!

Workaround: Church-style. Project w.r.t. a type

If Γ ` t : A then πA(t + r)→ t

This induces non-determinism

If Γ ` t : AΓ ` r : A then πA(t + r)→ t

πA(t + r)→ r

We are interested in the proof theoryand both t and r are valid proofs of A

4 / 10

Page 10: Non determinism through type isomophism

What about ∧-elimination?Γ ` t + r : A ∧ B

Γ ` π1(t + r) : ABut A ∧ B = B ∧ A !!

Γ ` t + r : B ∧ A

Γ ` π1(t + r) : B

Moreovert + r = r + t so π1(t + r) = π1(r + t) !!

Workaround: Church-style. Project w.r.t. a type

If Γ ` t : A then πA(t + r)→ t

This induces non-determinism

If Γ ` t : AΓ ` r : A then πA(t + r)→ t

πA(t + r)→ r

We are interested in the proof theoryand both t and r are valid proofs of A

4 / 10

Page 11: Non determinism through type isomophism

What about ∧-elimination?Γ ` t + r : A ∧ B

Γ ` π1(t + r) : ABut A ∧ B = B ∧ A !!

Γ ` t + r : B ∧ A

Γ ` π1(t + r) : B

Moreovert + r = r + t so π1(t + r) = π1(r + t) !!

Workaround: Church-style. Project w.r.t. a type

If Γ ` t : A then πA(t + r)→ t

This induces non-determinism

If Γ ` t : AΓ ` r : A then πA(t + r)→ t

πA(t + r)→ r

We are interested in the proof theoryand both t and r are valid proofs of A

4 / 10

Page 12: Non determinism through type isomophism

What about ∧-elimination?Γ ` t + r : A ∧ B

Γ ` π1(t + r) : ABut A ∧ B = B ∧ A !!

Γ ` t + r : B ∧ A

Γ ` π1(t + r) : B

Moreovert + r = r + t so π1(t + r) = π1(r + t) !!

Workaround: Church-style. Project w.r.t. a type

If Γ ` t : A then πA(t + r)→ t

This induces non-determinism

If Γ ` t : AΓ ` r : A then πA(t + r)→ t

πA(t + r)→ r

We are interested in the proof theoryand both t and r are valid proofs of A

4 / 10

Page 13: Non determinism through type isomophism

What about ∧-elimination?Γ ` t + r : A ∧ B

Γ ` π1(t + r) : ABut A ∧ B = B ∧ A !!

Γ ` t + r : B ∧ A

Γ ` π1(t + r) : B

Moreovert + r = r + t so π1(t + r) = π1(r + t) !!

Workaround: Church-style. Project w.r.t. a type

If Γ ` t : A then πA(t + r)→ t

This induces non-determinism

If Γ ` t : AΓ ` r : A then πA(t + r)→ t

πA(t + r)→ r

We are interested in the proof theoryand both t and r are valid proofs of A

4 / 10

Page 14: Non determinism through type isomophism

The calculus

TypesA,B,C ::= X | A⇒ B | A ∧ B | ∀X .A

EquivalencesA ∧ B ≡ B ∧ A

(A ∧ B) ∧ C ≡ A ∧ (B ∧ C )A⇒ (B ∧ C ) ≡ (A⇒ B) ∧ (A⇒ C )

Termst, r, s ::= xA | λxA.t | tr | ΛX .t | t{A}

| t + r | πA(t)

Reduction rules(λxA.t)r ↪→ t[r/x ]

(ΛX .t){A} ↪→ t[A/X ]πA(t + r) ↪→ t (if Γ ` t : A)

t + r � r + t(t + r) + s � t + (r + s)

(t + r)s � ts + rsλxA.(t + r) � λxA.t + λxA.rπA⇒B(t)r � πB(tr)

(if Γ ` t : A⇒ (B ∧ C))

axΓ, x : A ` x : A

Γ, x : A ` t : B⇒I

Γ ` λxA.t : A⇒ B

Γ ` t : A⇒ B Γ ` s : A⇒E

Γ ` ts : B

Γ ` t : A X /∈ FV (Γ)

∀IΓ ` ΛX .t : ∀X .A

Γ ` t : ∀X .A∀E

Γ ` t{B} : A[B/X ]

Γ ` t : A Γ ` r : B∧I

Γ ` t + r : A ∧ B

Γ ` t : A ∧ B∧E

Γ ` πA(t) : A

Γ ` t : A A ≡ B≡

Γ ` t : B

Theorem (Subject reduction)If Γ ` t : A and t→ r then Γ ` r : A

with → := ↪→ or �

5 / 10

Page 15: Non determinism through type isomophism

The calculus

TypesA,B,C ::= X | A⇒ B | A ∧ B | ∀X .A

EquivalencesA ∧ B ≡ B ∧ A

(A ∧ B) ∧ C ≡ A ∧ (B ∧ C )A⇒ (B ∧ C ) ≡ (A⇒ B) ∧ (A⇒ C )

Termst, r, s ::= xA | λxA.t | tr | ΛX .t | t{A}

| t + r | πA(t)

Reduction rules(λxA.t)r ↪→ t[r/x ]

(ΛX .t){A} ↪→ t[A/X ]πA(t + r) ↪→ t (if Γ ` t : A)

t + r � r + t(t + r) + s � t + (r + s)

(t + r)s � ts + rsλxA.(t + r) � λxA.t + λxA.rπA⇒B(t)r � πB(tr)

(if Γ ` t : A⇒ (B ∧ C))

axΓ, x : A ` x : A

Γ, x : A ` t : B⇒I

Γ ` λxA.t : A⇒ B

Γ ` t : A⇒ B Γ ` s : A⇒E

Γ ` ts : B

Γ ` t : A X /∈ FV (Γ)

∀IΓ ` ΛX .t : ∀X .A

Γ ` t : ∀X .A∀E

Γ ` t{B} : A[B/X ]

Γ ` t : A Γ ` r : B∧I

Γ ` t + r : A ∧ B

Γ ` t : A ∧ B∧E

Γ ` πA(t) : A

Γ ` t : A A ≡ B≡

Γ ` t : B

Theorem (Subject reduction)If Γ ` t : A and t→ r then Γ ` r : A

with → := ↪→ or �

5 / 10

Page 16: Non determinism through type isomophism

The calculus

TypesA,B,C ::= X | A⇒ B | A ∧ B | ∀X .A

EquivalencesA ∧ B ≡ B ∧ A

(A ∧ B) ∧ C ≡ A ∧ (B ∧ C )A⇒ (B ∧ C ) ≡ (A⇒ B) ∧ (A⇒ C )

Termst, r, s ::= xA | λxA.t | tr | ΛX .t | t{A}

| t + r | πA(t)

Reduction rules(λxA.t)r ↪→ t[r/x ]

(ΛX .t){A} ↪→ t[A/X ]πA(t + r) ↪→ t (if Γ ` t : A)

t + r � r + t(t + r) + s � t + (r + s)

(t + r)s � ts + rsλxA.(t + r) � λxA.t + λxA.rπA⇒B(t)r � πB(tr)

(if Γ ` t : A⇒ (B ∧ C))

axΓ, x : A ` x : A

Γ, x : A ` t : B⇒I

Γ ` λxA.t : A⇒ B

Γ ` t : A⇒ B Γ ` s : A⇒E

Γ ` ts : B

Γ ` t : A X /∈ FV (Γ)

∀IΓ ` ΛX .t : ∀X .A

Γ ` t : ∀X .A∀E

Γ ` t{B} : A[B/X ]

Γ ` t : A Γ ` r : B∧I

Γ ` t + r : A ∧ B

Γ ` t : A ∧ B∧E

Γ ` πA(t) : A

Γ ` t : A A ≡ B≡

Γ ` t : B

Theorem (Subject reduction)If Γ ` t : A and t→ r then Γ ` r : A

with → := ↪→ or �

5 / 10

Page 17: Non determinism through type isomophism

The calculus

TypesA,B,C ::= X | A⇒ B | A ∧ B | ∀X .A

EquivalencesA ∧ B ≡ B ∧ A

(A ∧ B) ∧ C ≡ A ∧ (B ∧ C )A⇒ (B ∧ C ) ≡ (A⇒ B) ∧ (A⇒ C )

Termst, r, s ::= xA | λxA.t | tr | ΛX .t | t{A}

| t + r | πA(t)

Reduction rules(λxA.t)r ↪→ t[r/x ]

(ΛX .t){A} ↪→ t[A/X ]πA(t + r) ↪→ t (if Γ ` t : A)

t + r � r + t(t + r) + s � t + (r + s)

(t + r)s � ts + rsλxA.(t + r) � λxA.t + λxA.rπA⇒B(t)r � πB(tr)

(if Γ ` t : A⇒ (B ∧ C))

axΓ, x : A ` x : A

Γ, x : A ` t : B⇒I

Γ ` λxA.t : A⇒ B

Γ ` t : A⇒ B Γ ` s : A⇒E

Γ ` ts : B

Γ ` t : A X /∈ FV (Γ)

∀IΓ ` ΛX .t : ∀X .A

Γ ` t : ∀X .A∀E

Γ ` t{B} : A[B/X ]

Γ ` t : A Γ ` r : B∧I

Γ ` t + r : A ∧ B

Γ ` t : A ∧ B∧E

Γ ` πA(t) : A

Γ ` t : A A ≡ B≡

Γ ` t : B

Theorem (Subject reduction)If Γ ` t : A and t→ r then Γ ` r : A

with → := ↪→ or �

5 / 10

Page 18: Non determinism through type isomophism

The calculus

TypesA,B,C ::= X | A⇒ B | A ∧ B | ∀X .A

EquivalencesA ∧ B ≡ B ∧ A

(A ∧ B) ∧ C ≡ A ∧ (B ∧ C )A⇒ (B ∧ C ) ≡ (A⇒ B) ∧ (A⇒ C )

Termst, r, s ::= xA | λxA.t | tr | ΛX .t | t{A}

| t + r | πA(t)

Reduction rules(λxA.t)r ↪→ t[r/x ]

(ΛX .t){A} ↪→ t[A/X ]πA(t + r) ↪→ t (if Γ ` t : A)

t + r � r + t(t + r) + s � t + (r + s)

(t + r)s � ts + rsλxA.(t + r) � λxA.t + λxA.rπA⇒B(t)r � πB(tr)

(if Γ ` t : A⇒ (B ∧ C))

axΓ, x : A ` x : A

Γ, x : A ` t : B⇒I

Γ ` λxA.t : A⇒ B

Γ ` t : A⇒ B Γ ` s : A⇒E

Γ ` ts : B

Γ ` t : A X /∈ FV (Γ)

∀IΓ ` ΛX .t : ∀X .A

Γ ` t : ∀X .A∀E

Γ ` t{B} : A[B/X ]

Γ ` t : A Γ ` r : B∧I

Γ ` t + r : A ∧ B

Γ ` t : A ∧ B∧E

Γ ` πA(t) : A

Γ ` t : A A ≡ B≡

Γ ` t : B

Theorem (Subject reduction)If Γ ` t : A and t→ r then Γ ` r : A

with → := ↪→ or �

5 / 10

Page 19: Non determinism through type isomophism

Example (I)

` λxA∧B .x : (A ∧ B)⇒ (A ∧ B)

(A ∧ B)⇒ (A ∧ B) ≡ ((A ∧ B)⇒ A) ∧ ((A ∧ B)⇒ B)

Hence` π(A∧B)⇒A(λxA∧B .x) : (A ∧ B)⇒ A

Let ` r : A ∧ B

` π(A∧B)⇒A(λxA∧B .x) r : A

π(A∧B)⇒A(λxA∧B .x)r � πA((λxA∧B .x)r) ↪→ πA(r)

6 / 10

Page 20: Non determinism through type isomophism

Example (I)

` λxA∧B .x : (A ∧ B)⇒ (A ∧ B)

(A ∧ B)⇒ (A ∧ B) ≡ ((A ∧ B)⇒ A) ∧ ((A ∧ B)⇒ B)

Hence` π(A∧B)⇒A(λxA∧B .x) : (A ∧ B)⇒ A

Let ` r : A ∧ B

` π(A∧B)⇒A(λxA∧B .x) r : A

π(A∧B)⇒A(λxA∧B .x)r � πA((λxA∧B .x)r) ↪→ πA(r)

6 / 10

Page 21: Non determinism through type isomophism

Example (I)

` λxA∧B .x : (A ∧ B)⇒ (A ∧ B)

(A ∧ B)⇒ (A ∧ B) ≡ ((A ∧ B)⇒ A) ∧ ((A ∧ B)⇒ B)

Hence` π(A∧B)⇒A(λxA∧B .x) : (A ∧ B)⇒ A

Let ` r : A ∧ B

` π(A∧B)⇒A(λxA∧B .x) r : A

π(A∧B)⇒A(λxA∧B .x)r � πA((λxA∧B .x)r) ↪→ πA(r)

6 / 10

Page 22: Non determinism through type isomophism

Example (I)

` λxA∧B .x : (A ∧ B)⇒ (A ∧ B)

(A ∧ B)⇒ (A ∧ B) ≡ ((A ∧ B)⇒ A) ∧ ((A ∧ B)⇒ B)

Hence` π(A∧B)⇒A(λxA∧B .x) : (A ∧ B)⇒ A

Let ` r : A ∧ B

` π(A∧B)⇒A(λxA∧B .x) r : A

π(A∧B)⇒A(λxA∧B .x)r � πA((λxA∧B .x)r) ↪→ πA(r)

6 / 10

Page 23: Non determinism through type isomophism

Example (I)

` λxA∧B .x : (A ∧ B)⇒ (A ∧ B)

(A ∧ B)⇒ (A ∧ B) ≡ ((A ∧ B)⇒ A) ∧ ((A ∧ B)⇒ B)

Hence` π(A∧B)⇒A(λxA∧B .x) : (A ∧ B)⇒ A

Let ` r : A ∧ B

` π(A∧B)⇒A(λxA∧B .x) r : A

π(A∧B)⇒A(λxA∧B .x)r � πA((λxA∧B .x)r) ↪→ πA(r)

6 / 10

Page 24: Non determinism through type isomophism

Example (I)

` λxA∧B .x : (A ∧ B)⇒ (A ∧ B)

(A ∧ B)⇒ (A ∧ B) ≡ ((A ∧ B)⇒ A) ∧ ((A ∧ B)⇒ B)

Hence` π(A∧B)⇒A(λxA∧B .x) : (A ∧ B)⇒ A

Let ` r : A ∧ B

` π(A∧B)⇒A(λxA∧B .x) r : A

π(A∧B)⇒A(λxA∧B .x)r � πA((λxA∧B .x)r) ↪→ πA(r)

6 / 10

Page 25: Non determinism through type isomophism

Example (II)

TF = λxB.λyB.(x + y)

` TF : B⇒ B⇒ (B ∧ B)

B⇒ B⇒ (B ∧ B) ≡ (B⇒ B⇒ B) ∧ (B⇒ B⇒ B)

` πB⇒B⇒B(TF) : B⇒ B⇒ B

Let ` t : B and ` f : B

πB⇒B⇒B(TF) t f � πB⇒B((TF)t) f � πB((TF)tf)

t

↪→ πB(t + f)% �

33

� y

++ f

7 / 10

Page 26: Non determinism through type isomophism

Example (II)

TF = λxB.λyB.(x + y)

` TF : B⇒ B⇒ (B ∧ B)

B⇒ B⇒ (B ∧ B) ≡ (B⇒ B⇒ B) ∧ (B⇒ B⇒ B)

` πB⇒B⇒B(TF) : B⇒ B⇒ B

Let ` t : B and ` f : B

πB⇒B⇒B(TF) t f � πB⇒B((TF)t) f � πB((TF)tf)

t

↪→ πB(t + f)% �

33

� y

++ f

7 / 10

Page 27: Non determinism through type isomophism

Example (II)

TF = λxB.λyB.(x + y)

` TF : B⇒ B⇒ (B ∧ B)

B⇒ B⇒ (B ∧ B) ≡ (B⇒ B⇒ B) ∧ (B⇒ B⇒ B)

` πB⇒B⇒B(TF) : B⇒ B⇒ B

Let ` t : B and ` f : B

πB⇒B⇒B(TF) t f � πB⇒B((TF)t) f � πB((TF)tf)

t

↪→ πB(t + f)% �

33

� y

++ f

7 / 10

Page 28: Non determinism through type isomophism

Example (II)

TF = λxB.λyB.(x + y)

` TF : B⇒ B⇒ (B ∧ B)

B⇒ B⇒ (B ∧ B) ≡ (B⇒ B⇒ B) ∧ (B⇒ B⇒ B)

` πB⇒B⇒B(TF) : B⇒ B⇒ B

Let ` t : B and ` f : B

πB⇒B⇒B(TF) t f � πB⇒B((TF)t) f � πB((TF)tf)

t

↪→ πB(t + f)% �

33

� y

++ f

7 / 10

Page 29: Non determinism through type isomophism

Example (II)

TF = λxB.λyB.(x + y)

` TF : B⇒ B⇒ (B ∧ B)

B⇒ B⇒ (B ∧ B) ≡ (B⇒ B⇒ B) ∧ (B⇒ B⇒ B)

` πB⇒B⇒B(TF) : B⇒ B⇒ B

Let ` t : B and ` f : B

πB⇒B⇒B(TF) t f

� πB⇒B((TF)t) f � πB((TF)tf)

t

↪→ πB(t + f)% �

33

� y

++ f

7 / 10

Page 30: Non determinism through type isomophism

Example (II)

TF = λxB.λyB.(x + y)

` TF : B⇒ B⇒ (B ∧ B)

B⇒ B⇒ (B ∧ B) ≡ (B⇒ B⇒ B) ∧ (B⇒ B⇒ B)

` πB⇒B⇒B(TF) : B⇒ B⇒ B

Let ` t : B and ` f : B

πB⇒B⇒B(TF) t f � πB⇒B((TF)t) f

� πB((TF)tf)

t

↪→ πB(t + f)% �

33

� y

++ f

7 / 10

Page 31: Non determinism through type isomophism

Example (II)

TF = λxB.λyB.(x + y)

` TF : B⇒ B⇒ (B ∧ B)

B⇒ B⇒ (B ∧ B) ≡ (B⇒ B⇒ B) ∧ (B⇒ B⇒ B)

` πB⇒B⇒B(TF) : B⇒ B⇒ B

Let ` t : B and ` f : B

πB⇒B⇒B(TF) t f � πB⇒B((TF)t) f � πB((TF)tf)

t

↪→ πB(t + f)% �

33

� y

++ f

7 / 10

Page 32: Non determinism through type isomophism

Example (II)

TF = λxB.λyB.(x + y)

` TF : B⇒ B⇒ (B ∧ B)

B⇒ B⇒ (B ∧ B) ≡ (B⇒ B⇒ B) ∧ (B⇒ B⇒ B)

` πB⇒B⇒B(TF) : B⇒ B⇒ B

Let ` t : B and ` f : B

πB⇒B⇒B(TF) t f � πB⇒B((TF)t) f � πB((TF)tf)

t

↪→ πB(t + f)% �

33

� y

++ f

7 / 10

Page 33: Non determinism through type isomophism

Confluence (some ideas)Of course, a non-deterministic calculus is not confluent!

Counterexample πA(xA + yA)

xx &&xA

|''

yA

|ww

?

However, we can prove it keeps some coherence

I Confluence of the deterministic fragmentI Confluence of the “term ensembles”

e.g. tzz ""

{ri}i##

t′

}}{r′i}i [Arrighi,Díaz-Caro,Gadella,Grattage’08]

8 / 10

Page 34: Non determinism through type isomophism

Confluence (some ideas)Of course, a non-deterministic calculus is not confluent!

Counterexample πA(xA + yA)

xx &&xA

|''

yA

|ww

?

However, we can prove it keeps some coherence

I Confluence of the deterministic fragmentI Confluence of the “term ensembles”

e.g. tzz ""

{ri}i##

t′

}}{r′i}i [Arrighi,Díaz-Caro,Gadella,Grattage’08]

8 / 10

Page 35: Non determinism through type isomophism

Conclusions (with some examples)Proof systemLet t be a proof of Aand r be a proof of Bso t + r is a proof of both A ∧ B and B ∧ A

Non deterministic calculustt = ΛX .λxX .λyX .x ff = ΛX .λxX .λyX .y

B = ∀X .X ⇒ X ⇒ X

` tt + ff : B ∧ B

` πB(tt + ff ) : B

{{ ##tt ff

So far:- Proof system where (three) isomorphic types get the same proofs- Non-deterministic calculus

9 / 10

Page 36: Non determinism through type isomophism

Future directions (open problems)

Can we continue adding Di Cosmo’s isomorphisms?

e.g. A ∧ T ≡ A induces t + 0 � t and A⇒ T ≡ T induces λx .0 � 0

But if T⇒ T ≡ T then ` (λxT.xx)(λxT.xx) : T (wrong)

A more interesting open question:

Can we use this no determinism to define a probabilistic/quantumlanguage?

Some clues:I Similar to the linear-algebraic lambda-calculus [Arrighi,Dowek]

I We need call-by-value (no-cloning)I In call-by-value,

t(r + s) � tr + ts

But (A ∧ B)⇒ C 6≡ (A⇒ C) ∧ (B ⇒ C)

Workaround: Use polymorphism: ∀X .X ⇒ CX [Arrighi,Díaz-Caro]

10 / 10

Page 37: Non determinism through type isomophism

Future directions (open problems)

Can we continue adding Di Cosmo’s isomorphisms?

e.g. A ∧ T ≡ A induces t + 0 � t and A⇒ T ≡ T induces λx .0 � 0But if T⇒ T ≡ T then ` (λxT.xx)(λxT.xx) : T (wrong)

A more interesting open question:

Can we use this no determinism to define a probabilistic/quantumlanguage?

Some clues:I Similar to the linear-algebraic lambda-calculus [Arrighi,Dowek]

I We need call-by-value (no-cloning)I In call-by-value,

t(r + s) � tr + ts

But (A ∧ B)⇒ C 6≡ (A⇒ C) ∧ (B ⇒ C)

Workaround: Use polymorphism: ∀X .X ⇒ CX [Arrighi,Díaz-Caro]

10 / 10

Page 38: Non determinism through type isomophism

Future directions (open problems)

Can we continue adding Di Cosmo’s isomorphisms?

e.g. A ∧ T ≡ A induces t + 0 � t and A⇒ T ≡ T induces λx .0 � 0But if T⇒ T ≡ T then ` (λxT.xx)(λxT.xx) : T (wrong)

A more interesting open question:

Can we use this no determinism to define a probabilistic/quantumlanguage?

Some clues:I Similar to the linear-algebraic lambda-calculus [Arrighi,Dowek]

I We need call-by-value (no-cloning)I In call-by-value,

t(r + s) � tr + ts

But (A ∧ B)⇒ C 6≡ (A⇒ C) ∧ (B ⇒ C)

Workaround: Use polymorphism: ∀X .X ⇒ CX [Arrighi,Díaz-Caro]

10 / 10

Page 39: Non determinism through type isomophism

Future directions (open problems)

Can we continue adding Di Cosmo’s isomorphisms?

e.g. A ∧ T ≡ A induces t + 0 � t and A⇒ T ≡ T induces λx .0 � 0But if T⇒ T ≡ T then ` (λxT.xx)(λxT.xx) : T (wrong)

A more interesting open question:

Can we use this no determinism to define a probabilistic/quantumlanguage?

Some clues:I Similar to the linear-algebraic lambda-calculus [Arrighi,Dowek]

I We need call-by-value (no-cloning)I In call-by-value,

t(r + s) � tr + ts

But (A ∧ B)⇒ C 6≡ (A⇒ C) ∧ (B ⇒ C)

Workaround: Use polymorphism: ∀X .X ⇒ CX [Arrighi,Díaz-Caro]

10 / 10

Page 40: Non determinism through type isomophism

Future directions (open problems)

Can we continue adding Di Cosmo’s isomorphisms?

e.g. A ∧ T ≡ A induces t + 0 � t and A⇒ T ≡ T induces λx .0 � 0But if T⇒ T ≡ T then ` (λxT.xx)(λxT.xx) : T (wrong)

A more interesting open question:

Can we use this no determinism to define a probabilistic/quantumlanguage?

Some clues:I Similar to the linear-algebraic lambda-calculus [Arrighi,Dowek]

I We need call-by-value (no-cloning)

I In call-by-value,t(r + s) � tr + ts

But (A ∧ B)⇒ C 6≡ (A⇒ C) ∧ (B ⇒ C)

Workaround: Use polymorphism: ∀X .X ⇒ CX [Arrighi,Díaz-Caro]

10 / 10

Page 41: Non determinism through type isomophism

Future directions (open problems)

Can we continue adding Di Cosmo’s isomorphisms?

e.g. A ∧ T ≡ A induces t + 0 � t and A⇒ T ≡ T induces λx .0 � 0But if T⇒ T ≡ T then ` (λxT.xx)(λxT.xx) : T (wrong)

A more interesting open question:

Can we use this no determinism to define a probabilistic/quantumlanguage?

Some clues:I Similar to the linear-algebraic lambda-calculus [Arrighi,Dowek]

I We need call-by-value (no-cloning)I In call-by-value,

t(r + s) � tr + ts

But (A ∧ B)⇒ C 6≡ (A⇒ C) ∧ (B ⇒ C)

Workaround: Use polymorphism: ∀X .X ⇒ CX [Arrighi,Díaz-Caro]

10 / 10

Page 42: Non determinism through type isomophism

Future directions (open problems)

Can we continue adding Di Cosmo’s isomorphisms?

e.g. A ∧ T ≡ A induces t + 0 � t and A⇒ T ≡ T induces λx .0 � 0But if T⇒ T ≡ T then ` (λxT.xx)(λxT.xx) : T (wrong)

A more interesting open question:

Can we use this no determinism to define a probabilistic/quantumlanguage?

Some clues:I Similar to the linear-algebraic lambda-calculus [Arrighi,Dowek]

I We need call-by-value (no-cloning)I In call-by-value,

t(r + s) � tr + ts

But (A ∧ B)⇒ C 6≡ (A⇒ C) ∧ (B ⇒ C)

Workaround: Use polymorphism: ∀X .X ⇒ CX [Arrighi,Díaz-Caro]

10 / 10

Page 43: Non determinism through type isomophism

Future directions (open problems)

Can we continue adding Di Cosmo’s isomorphisms?

e.g. A ∧ T ≡ A induces t + 0 � t and A⇒ T ≡ T induces λx .0 � 0But if T⇒ T ≡ T then ` (λxT.xx)(λxT.xx) : T (wrong)

A more interesting open question:

Can we use this no determinism to define a probabilistic/quantumlanguage?

Some clues:I Similar to the linear-algebraic lambda-calculus [Arrighi,Dowek]

I We need call-by-value (no-cloning)I In call-by-value,

t(r + s) � tr + ts

But (A ∧ B)⇒ C 6≡ (A⇒ C) ∧ (B ⇒ C)

Workaround: Use polymorphism: ∀X .X ⇒ CX [Arrighi,Díaz-Caro]

10 / 10