Certified Undecidability of Intuitionistic Linear Logic via Binary - - PowerPoint PPT Presentation

certified undecidability of intuitionistic linear logic
SMART_READER_LITE
LIVE PREVIEW

Certified Undecidability of Intuitionistic Linear Logic via Binary - - PowerPoint PPT Presentation

Certified Undecidability of Intuitionistic Linear Logic via Binary Stack Machines and Minsky Machines Yannick Forster and Dominique Larchey-Wendling CPP 2019 January 14 saarland university computer science Y. Forster and D. Larchey-Wendling


slide-1
SLIDE 1

Certified Undecidability of Intuitionistic Linear Logic via Binary Stack Machines and Minsky Machines

Yannick Forster and Dominique Larchey-Wendling CPP 2019 January 14

computer science

saarland

university

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 1

slide-2
SLIDE 2

Decidability

A problem P : X → P is decidable if . . . Classically Fix a model of computation M: there is a decider in M For the cbv λ-calculus ∃u : T.∀x : X. (ux ⊲ T ∧ Px) ∨ (ux ⊲ F ∧ ¬Px)

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 2

slide-3
SLIDE 3

Decidability

A problem P : X → P is decidable if . . . Classically Fix a model of computation M: there is a decider in M For the cbv λ-calculus ∃u : T.∀x : X. (ux ⊲ T ∧ Px) ∨ (ux ⊲ F ∧ ¬Px) Type Theory ∃f : X → B. ∀x : X. Px ↔ fx = true

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 2

slide-4
SLIDE 4

Decidability

A problem P : X → P is decidable if . . . Classically Fix a model of computation M: there is a decider in M For the cbv λ-calculus ∃u : T.∀x : X. (ux ⊲ T ∧ Px) ∨ (ux ⊲ F ∧ ¬Px) Type Theory ∃f : X → B. ∀x : X. Px ↔ fx = true dependent version (Coq, Agda, Lean, . . . ) dec P := ∀x : X. {P x} + {¬P x}

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 2

slide-5
SLIDE 5

Undecidability

A problem P : X → P is undecidable if . . . Classically If there is no decider u in M

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 3

slide-6
SLIDE 6

Undecidability

A problem P : X → P is undecidable if . . . Classically If there is no decider u in M For the cbv λ-calculus ¬∃u : T.∀x : X. (ux ⊲ T ∧ Px) ∨ (ux ⊲ F ∧ ¬Px)

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 3

slide-7
SLIDE 7

Undecidability

A problem P : X → P is undecidable if . . . Classically If there is no decider u in M For the cbv λ-calculus ¬∃u : T.∀x : X. (ux ⊲ T ∧ Px) ∨ (ux ⊲ F ∧ ¬Px) Type Theory ¬(∀x : X. {Px} + {¬Px})

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 3

slide-8
SLIDE 8

Undecidability

A problem P : X → P is undecidable if . . . Classically If there is no decider u in M For the cbv λ-calculus ¬∃u : T.∀x : X. (ux ⊲ T ∧ Px) ∨ (ux ⊲ F ∧ ¬Px) Type Theory

✭✭✭✭✭✭✭✭✭✭✭ ✭

¬(∀x : X. {Px} + {¬Px})

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 3

slide-9
SLIDE 9

Undecidability

A problem P : X → P is undecidable if . . . Classically If there is no decider u in M For the cbv λ-calculus ¬∃u : T.∀x : X. (ux ⊲ T ∧ Px) ∨ (ux ⊲ F ∧ ¬Px) Type Theory

✭✭✭✭✭✭✭✭✭✭✭ ✭

¬(∀x : X. {Px} + {¬Px}) In reality: most proofs are by reduction

Definition

P undecidable := Halting problem reduces to P

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 3

slide-10
SLIDE 10

Inductive Undecidability via reductions

a problem (X, P) : Σ(X : Type), X → Prop Inductive definition of undecidability over ΣX(X → Prop) undec Halt dec Q → dec P undec P undec Q

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 4

slide-11
SLIDE 11

Inductive Undecidability via reductions

a problem (X, P) : Σ(X : Type), X → Prop Inductive definition of undecidability over ΣX(X → Prop) undec Halt dec Q → dec P undec P undec Q

Lemma (Incompatibility between decidability and undecidability)

If dec P and undec P then dec Halt

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 4

slide-12
SLIDE 12

Inductive Undecidability via reductions

a problem (X, P) : Σ(X : Type), X → Prop Inductive definition of undecidability over ΣX(X → Prop) undec Halt dec Q → dec P undec P undec Q

Lemma (Incompatibility between decidability and undecidability)

If dec P and undec P then dec Halt Turing Reductions: dec Q → dec P Many-one reduction from (X, P) to (Y , Q)

◮ computable function f : X → Y s.t. ∀x. P x ↔ Q(f x) ◮ “computable” requirement dropped in CTT ◮ We write P Q when such reduction exists

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 4

slide-13
SLIDE 13

An undecidability proof for Intuitionistic Linear Logic

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 5

slide-14
SLIDE 14

An undecidability proof for Intuitionistic Linear Logic

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 5

slide-15
SLIDE 15

An undecidability proof for Intuitionistic Linear Logic

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 5

slide-16
SLIDE 16

An undecidability proof for Intuitionistic Linear Logic

TM PCP BPCP BSM MM eILL ILL

ITP18 LICS10 LICS10

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 5

slide-17
SLIDE 17

An undecidability proof for Intuitionistic Linear Logic

TM PCP BPCP BSM MM eILL ILL

ITP18 1 2 3 4 LICS10 5 LICS10

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 5

slide-18
SLIDE 18
  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 6

slide-19
SLIDE 19

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-20
SLIDE 20

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC CPP C

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-21
SLIDE 21

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC CPP C 19i PP

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-22
SLIDE 22

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC CPP C 19i PP n 19in

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-23
SLIDE 23

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC CPP C 19i PP n 19in Ca

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-24
SLIDE 24

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC CPP C 19i PP n 19in Ca s CasC

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-25
SLIDE 25

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC CPP C 19i PP n 19in Ca s CasC Ca

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-26
SLIDE 26

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC CPP C 19i PP n 19in Ca s CasC Ca is ais

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-27
SLIDE 27

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC CPP C 19i PP n 19in Ca s CasC Ca is ais CPP19inCasCais CPP19inCasCais

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-28
SLIDE 28

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC CPP C 19i PP n 19in Ca s CasC Ca is ais CPP19inCasCais CPP19inCasCais

Symbols a, b, c: symbols of type X Strings x, y, z: lists of symbols Card x/y: pairs of strings Card set R: finite set of cards Stacks A: lists of cards

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-29
SLIDE 29

PCPX

n 19in CPP C is ais xuz

  • fze

19i PP Ca s CasC CPP C 19i PP n 19in Ca s CasC Ca is ais CPP19inCasCais CPP19inCasCais

Symbols a, b, c: symbols of type X Strings x, y, z: lists of symbols Card x/y: pairs of strings Card set R: finite set of cards Stacks A: lists of cards []1 := ǫ []2 := ǫ (x/y :: A)1 := x(A1) (x/y :: A)2 := y(A2) PCP (R) := ∃A ⊆ R. A = [] ∧ A1 = A2

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 7

slide-30
SLIDE 30

Contribution

PCP BPCP BSM MM eILL ILL

1

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 8

slide-31
SLIDE 31

PCP BPCP

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 8

slide-32
SLIDE 32

PCP BPCP

PCP is PCPN BPCP is PCPB

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 9

slide-33
SLIDE 33

PCP BPCP

PCP is PCPN BPCP is PCPB f : N∗ → B∗ f (a1 . . . an : N∗) := 1a10 . . . 1an0 Lift f to cards, card sets and stack by pointwise application

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 9

slide-34
SLIDE 34

PCP BPCP

PCP is PCPN BPCP is PCPB f : N∗ → B∗ f (a1 . . . an : N∗) := 1a10 . . . 1an0 Lift f to cards, card sets and stack by pointwise application To prove: PCP R ↔ BPCP(f R)

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 9

slide-35
SLIDE 35

PCP BPCP

PCP is PCPN BPCP is PCPB f : N∗ → B∗ f (a1 . . . an : N∗) := 1a10 . . . 1an0 Lift f to cards, card sets and stack by pointwise application To prove: PCP R ↔ BPCP(f R) Define inverse function g, easy

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 9

slide-36
SLIDE 36

Low-level Code

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 9

slide-37
SLIDE 37

Code and subcode

Given a type I of instructions Codes are N-indexed programs: (i, P = [ρ0; . . . ; ρn−1]) of type N × L I i : ρ0; i + 1 : ρ1; . . . i + n − 1 : ρn−1; labels i, . . . , i + n − 1 identify PC values inside the program Subcode relation (i, P) <sc (j, Q) (i, P) <sc (j, Q) := ∃ L R, ∧ Q = L + + P + + R i = j + |L| instruction ρ occurs at pos. i in (j, Q): (i, [ρ]) <sc (j, Q) “Sub-programs” are contiguous segments

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 10

slide-38
SLIDE 38

Small Step Semantics for Code

Instructions as state transformers states (i, v): i is PC value and v : C a configuration a step relation ρ / / (i1, v1) ≻ (i2, v2)

◮ instruction ρ at position i1 transforms state (i1, v1) into (i2, v2)

extends to codes: (i, P) / / (i1, v1) ≻n (i2, v2) means

◮ Code (i, P) transforms state (i1, v1) into (i2, v2) in n steps

described by two inductive rules (i, P) / / (i1, v1) ≻0 (i1, v1) (i1, [ρ]) <sc (i, P) ρ / / (i1, v1) ≻ (i2, v2) (i, P) / / (i2, v2) ≻n (i3, v3) (i, P) / / (i1, v1) ≻n+1 (i3, v3)

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 11

slide-39
SLIDE 39

Terminating computations and Big Step Semantics

denote P for codes like (i, P) and s for states like (j, v) which termination condition: out j P

◮ no instruction at j in P, computation is blocked (sufficient) ◮ P /

/ (j, v) ≻n s ∧ out j P implies n = 0 ∧ s = (j, v)

reflexive and transitive closure of step relation P / / s ≻∗ s ′ := ∃n, P / / s ≻n s ′ Terminating computations P / / s (j, w) := P / / s ≻∗ (j, w) ∧ out j P Termination P / / s ↓ := ∃s ′, P / / s s ′

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 12

slide-40
SLIDE 40

Contribution

PCP BPCP BSM MM eILL ILL

2

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 13

slide-41
SLIDE 41

BPCP BSM

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 13

slide-42
SLIDE 42

Binary stack machines (BSM)

Example (emptying stack α in 3 instructions)

i : POP α i (i + 3) i + 1 : PUSH α 0 i + 2 : POP α i i

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 14

slide-43
SLIDE 43

Binary stack machines (BSM)

Example (emptying stack α in 3 instructions)

i : POP α i (i + 3) i + 1 : PUSH α 0 i + 2 : POP α i i n stacks of 0s and 1s (L B) for a fixed n state of type (PC, v) ∈ N × (L B)n instructions (with α ∈ [0, n − 1] and b ∈ B and p, q ∈ N) bsm instr ::= POP α p q | PUSH α b Step semantics for POP and PUSH (pseudo code) POP α p q : if α = [] then PC ← q if α = 0 :: β then α ← β; PC ← p if α = 1 :: β then α ← β; PC ← PC + 1 PUSH α b : α ← b :: α; PC ← PC + 1

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 14

slide-44
SLIDE 44

Binary stack machines (BSM)

Example (emptying stack α in 3 instructions)

i : POP α i (i + 3) i + 1 : PUSH α 0 i + 2 : POP α i i n stacks of 0s and 1s (L B) for a fixed n state of type (PC, v) ∈ N × (L B)n instructions (with α ∈ [0, n − 1] and b ∈ B and p, q ∈ N) bsm instr ::= POP α p q | PUSH α b Step semantics for POP and PUSH (pseudo code) POP α p q : if α = [] then PC ← q if α = 0 :: β then α ← β; PC ← p if α = 1 :: β then α ← β; PC ← PC + 1 PUSH α b : α ← b :: α; PC ← PC + 1 BSM termination problem: BSM(n, i, B, v) := (i, B) / / (i, v) ↓

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 14

slide-45
SLIDE 45

BPCP BSM

Iterate all possible lists of card (indices) Hard code every card as PUSH instructions Given a list of cards, compute top and bottom words in two stacks Check for those two stacks equality

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 15

slide-46
SLIDE 46

BPCP BSM

Iterate all possible lists of card (indices) Hard code every card as PUSH instructions Given a list of cards, compute top and bottom words in two stacks Check for those two stacks equality

Definition compare_stacks x y i p q := (* i *) [ POP x (4+i) (7+i) ; (* 1+i *) POP y q q ; (* 2+i *) PUSH x Zero ; POP x i i ; (* JMP i *) (* 4+i *) POP y i q ; (* 5+i *) PUSH y Zero ; POP y q i ; (* JMP q *) (* 7+i *) POP y q p ; (* 8+i *) PUSH x Zero ; POP x q q ]. (* JMP q *)

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 15

slide-47
SLIDE 47

BPCP BSM

Iterate all possible lists of card (indices) Hard code every card as PUSH instructions Given a list of cards, compute top and bottom words in two stacks Check for those two stacks equality

Definition compare_stacks x y i p q := (* i *) [ POP x (4+i) (7+i) ; (* 1+i *) POP y q q ; (* 2+i *) PUSH x Zero ; POP x i i ; (* JMP i *) (* 4+i *) POP y i q ; (* 5+i *) PUSH y Zero ; POP y q i ; (* JMP q *) (* 7+i *) POP y q p ; (* 8+i *) PUSH x Zero ; POP x q q ]. (* JMP q *)

Lemma (Comparing two distinct stacks for identical content)

When x = y, for any stack configuration v, there exists j and w s.t.

(i, compare stacks x y p q i) / / (i, v) ≻∗ (j, w)

where j = p if v[x] = v[y] and j = q otherwise. For any α ∈ {x, y} we have w[α] = v[α].

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 15

slide-48
SLIDE 48

Certified Low-Level Compiler

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 15

slide-49
SLIDE 49

Certified compilation (assumptions)

model X (resp. Y ): language + step semantics a simulation: ⊲ ⊳ : CX → CY → Prop a certified compiler from model X to model Y

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 16

slide-50
SLIDE 50

Certified compilation (assumptions)

model X (resp. Y ): language + step semantics a simulation: ⊲ ⊳ : CX → CY → Prop a certified compiler from model X to model Y given a Single Instruction Compiler (SIC):

◮ transforms a single X instructions ◮ into a list of Y instructions ◮ needs a linker remapping PC values

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 16

slide-51
SLIDE 51

Certified compilation (assumptions)

model X (resp. Y ): language + step semantics a simulation: ⊲ ⊳ : CX → CY → Prop a certified compiler from model X to model Y given a Single Instruction Compiler (SIC):

◮ transforms a single X instructions ◮ into a list of Y instructions ◮ needs a linker remapping PC values

with the following assumptions:

◮ X has total step sem.; Y has deterministic step sem. ◮ length of SIC compiled instruction does not depend on linker ◮ SIC is sound with respect to ⊲

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 16

slide-52
SLIDE 52

Certified compilation (results)

INPUT: X program P and start target PC value j : N

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 17

slide-53
SLIDE 53

Certified compilation (results)

INPUT: X program P and start target PC value j : N OUTPUT: a linker lnk and Y program Q

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 17

slide-54
SLIDE 54

Certified compilation (results)

INPUT: X program P and start target PC value j : N OUTPUT: a linker lnk and Y program Q such that j = start Q = lnk(start P); ∀i, out i P → lnk i = end Q;

Lemma (Soundness)

v1 ⊲ ⊳ w1 ∧ P / /X (i1, v1) (i2, v2) → ∃w2, v2 ⊲ ⊳ w2 ∧ Q / /Y (lnk i1, w1) (lnk i2, w2)

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 17

slide-55
SLIDE 55

Certified compilation (results)

INPUT: X program P and start target PC value j : N OUTPUT: a linker lnk and Y program Q such that j = start Q = lnk(start P); ∀i, out i P → lnk i = end Q;

Lemma (Soundness)

v1 ⊲ ⊳ w1 ∧ P / /X (i1, v1) (i2, v2) → ∃w2, v2 ⊲ ⊳ w2 ∧ Q / /Y (lnk i1, w1) (lnk i2, w2)

Lemma (Completeness)

v1 ⊲ ⊳ w1 ∧ Q / /Y (lnk i1, w1) (j2, w2) → ∃ i2 v2, v2 ⊲ ⊳ w2 ∧ P / /X (i1, v1) (i2, v2) ∧ j2 = lnk i2. Completeness essential for non-termination

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 17

slide-56
SLIDE 56

Contribution

PCP BPCP BSM MM eILL ILL

3

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 18

slide-57
SLIDE 57

BSM MM

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 18

slide-58
SLIDE 58

Minsky Machines (N valued register machines)

Example (transfert α to β in 3 instructions, γ0 spare register)

i : DEC α (3 + i) i + 1 : INC β i + 2 : DEC γ0 i

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 19

slide-59
SLIDE 59

Minsky Machines (N valued register machines)

Example (transfert α to β in 3 instructions, γ0 spare register)

i : DEC α (3 + i) i + 1 : INC β i + 2 : DEC γ0 i n registers of value in N for a fixed n state: (PC, v) ∈ N × Nn instructions (with α ∈ [0, n − 1] and p ∈ N) mm instr ::= INC α | DEC α p Step semantics for INC and DEC (pseudo code) INC α : α ← α + 1; PC ← PC + 1 DEC α p : if α = 0 then PC ← p if α > 0 then α ← α − 1; PC ← PC + 1

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 19

slide-60
SLIDE 60

Minsky Machines (N valued register machines)

Example (transfert α to β in 3 instructions, γ0 spare register)

i : DEC α (3 + i) i + 1 : INC β i + 2 : DEC γ0 i n registers of value in N for a fixed n state: (PC, v) ∈ N × Nn instructions (with α ∈ [0, n − 1] and p ∈ N) mm instr ::= INC α | DEC α p Step semantics for INC and DEC (pseudo code) INC α : α ← α + 1; PC ← PC + 1 DEC α p : if α = 0 then PC ← p if α > 0 then α ← α − 1; PC ← PC + 1 MM(n, M, v) := (1, M) / / (1, v) (0, 0) (termination at zero)

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 19

slide-61
SLIDE 61

BSM MM (simulating stacks)

Simulation ⊲ ⊳ between stacks (L B) and N

◮ stack 100010 simulated by 1 · 010001 ◮ s2n l : N using:

s2n [] := 1 s2n (b :: l) := b + 2 · s2n l

v ⊲ ⊳ w iff for any α, s2n( v[α]) = w[α]

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 20

slide-62
SLIDE 62

BSM MM (simulating stacks)

Simulation ⊲ ⊳ between stacks (L B) and N

◮ stack 100010 simulated by 1 · 010001 ◮ s2n l : N using:

s2n [] := 1 s2n (b :: l) := b + 2 · s2n l

v ⊲ ⊳ w iff for any α, s2n( v[α]) = w[α]

Definition mm_div2 := (* i *) [ DEC src (6+i) ; (* 1+i *) INC rem ; (* 2+i *) DEC src (i+6) ; (* 3+i *) DEC rem (4+i) ; (* 4+i *) INC quo ; (* 5+i *) DEC rem i ].

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 20

slide-63
SLIDE 63

BSM MM (simulating stacks)

Simulation ⊲ ⊳ between stacks (L B) and N

◮ stack 100010 simulated by 1 · 010001 ◮ s2n l : N using:

s2n [] := 1 s2n (b :: l) := b + 2 · s2n l

v ⊲ ⊳ w iff for any α, s2n( v[α]) = w[α]

Definition mm_div2 := (* i *) [ DEC src (6+i) ; (* 1+i *) INC rem ; (* 2+i *) DEC src (i+6) ; (* 3+i *) DEC rem (4+i) ; (* 4+i *) INC quo ; (* 5+i *) DEC rem i ].

Lemma (Euclidian division by 2 of register src)

When quo = rem = src, b ∈ {0, 1} and k ∈ N

  • v[quo] = 0 ∧

v[rem] = 0 ∧ v[src] = b + 2.k → (i, mm div2) / / (i, v) ≻∗ (6 + i, v[src := 0, quo := k, rem := b])

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 20

slide-64
SLIDE 64

BSM MM (simulating instructions)

We implement an instruction compiler (BSM SIC)

◮ simulating PUSH and POP operations ◮ using mm div2, mm mul2, . . . ◮ we need two spare MM registers ◮ n stacks, 2 + n registers

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 21

slide-65
SLIDE 65

BSM MM (simulating instructions)

We implement an instruction compiler (BSM SIC)

◮ simulating PUSH and POP operations ◮ using mm div2, mm mul2, . . . ◮ we need two spare MM registers ◮ n stacks, 2 + n registers

As input for our certified low-level compiler

◮ from (i, P), a n stacks BSM-program ◮ we compute a 2 + n registers MM-program bsm mm ◮ which simulates termination

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 21

slide-66
SLIDE 66

BSM MM (simulating instructions)

We implement an instruction compiler (BSM SIC)

◮ simulating PUSH and POP operations ◮ using mm div2, mm mul2, . . . ◮ we need two spare MM registers ◮ n stacks, 2 + n registers

As input for our certified low-level compiler

◮ from (i, P), a n stacks BSM-program ◮ we compute a 2 + n registers MM-program bsm mm ◮ which simulates termination

Lemma (BSM termination simulated by MM termination)

for any v ∈ Nn, (i, P) / / (i, v) ↓ ↔ (1, bsm mm) / / (1, 0 :: 0 :: w) (0, 0) where w = vec map s2n v

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 21

slide-67
SLIDE 67

Contribution

PCP BPCP BSM MM eILL ILL

4 5

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 22

slide-68
SLIDE 68

MM eILL ILL

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 22

slide-69
SLIDE 69

Intuitionistic Linear Logic

Definition (SILL sequent calculus for the (!, ⊸, &) fragment)

A ⊢ A [id] Γ ⊢ A A, ∆ ⊢ B Γ, ∆ ⊢ B [cut] Γ, A ⊢ B Γ, ! A ⊢ B [!L] ! Γ ⊢ B ! Γ ⊢ ! B [!R] Γ ⊢ B Γ, ! A ⊢ B [w] Γ, ! A, ! A ⊢ B Γ, ! A ⊢ B [c] Γ, A ⊢ C Γ, A & B ⊢ C [&1

L]

Γ, B ⊢ C Γ, A & B ⊢ C [&2

L]

Γ ⊢ A Γ ⊢ B Γ ⊢ A & B [&R] Γ ⊢ A ∆, B ⊢ C Γ, ∆, A ⊸ B ⊢ C [⊸L] Γ, A ⊢ B Γ ⊢ A ⊸ B [⊸R]

Full Linear Logic faithfully embedded by ((·) ⊸ b) ⊸ b translation ILL(Γ, A) := provable(Γ ⊢ A) the reduction for MM occurs in the eILL sub-fragment

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 23

slide-70
SLIDE 70

Elementary ILL (eILL)

Elementary sequents: ! Σ, g1, . . . , gk ⊢ d (gi, a, b, c, d variables) Σ contains commands:

◮ (a ⊸ b) ⊸ c, correponding to INC ◮ a ⊸ (b ⊸ c), correponding to DEC ◮ (a & b) ⊸ c, correponding to FORK

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 24

slide-71
SLIDE 71

Elementary ILL (eILL)

Elementary sequents: ! Σ, g1, . . . , gk ⊢ d (gi, a, b, c, d variables) Σ contains commands:

◮ (a ⊸ b) ⊸ c, correponding to INC ◮ a ⊸ (b ⊸ c), correponding to DEC ◮ (a & b) ⊸ c, correponding to FORK

Definition (GeILL goal directed rules for eILL)

! Σ, a ⊢ a Ax ! Σ, Γ ⊢ a ! Σ, ∆ ⊢ b ! Σ, Γ, ∆ ⊢ c a ⊸ (b ⊸ c) ∈ Σ ! Σ, a, Γ ⊢ b ! Σ, Γ ⊢ c (a ⊸ b) ⊸ c ∈ Σ ! Σ, Γ ⊢ a ! Σ, Γ ⊢ b ! Σ, Γ ⊢ c (a & b) ⊸ c ∈ Σ

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 24

slide-72
SLIDE 72

Elementary ILL (eILL)

Elementary sequents: ! Σ, g1, . . . , gk ⊢ d (gi, a, b, c, d variables) Σ contains commands:

◮ (a ⊸ b) ⊸ c, correponding to INC ◮ a ⊸ (b ⊸ c), correponding to DEC ◮ (a & b) ⊸ c, correponding to FORK

Definition (GeILL goal directed rules for eILL)

! Σ, a ⊢ a Ax ! Σ, Γ ⊢ a ! Σ, ∆ ⊢ b ! Σ, Γ, ∆ ⊢ c a ⊸ (b ⊸ c) ∈ Σ ! Σ, a, Γ ⊢ b ! Σ, Γ ⊢ c (a ⊸ b) ⊸ c ∈ Σ ! Σ, Γ ⊢ a ! Σ, Γ ⊢ b ! Σ, Γ ⊢ c (a & b) ⊸ c ∈ Σ

Sound and complete w.r.t. SILL for eILL sequents

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 24

slide-73
SLIDE 73

Elementary ILL (eILL)

Elementary sequents: ! Σ, g1, . . . , gk ⊢ d (gi, a, b, c, d variables) Σ contains commands:

◮ (a ⊸ b) ⊸ c, correponding to INC ◮ a ⊸ (b ⊸ c), correponding to DEC ◮ (a & b) ⊸ c, correponding to FORK

Definition (GeILL goal directed rules for eILL)

! Σ, a ⊢ a Ax ! Σ, Γ ⊢ a ! Σ, ∆ ⊢ b ! Σ, Γ, ∆ ⊢ c a ⊸ (b ⊸ c) ∈ Σ ! Σ, a, Γ ⊢ b ! Σ, Γ ⊢ c (a ⊸ b) ⊸ c ∈ Σ ! Σ, Γ ⊢ a ! Σ, Γ ⊢ b ! Σ, Γ ⊢ c (a & b) ⊸ c ∈ Σ

Sound and complete w.r.t. SILL for eILL sequents Trivial Phase Semantics (commutative monoid, closure is identity)

◮ SILL and GeILL sound for TPS ◮ eILL complete for TPS(Nk) (when k big enough)

The reduction eILL ILL is the identity map

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 24

slide-74
SLIDE 74

Encoding Minsky machines in eILL

Given M as a list of MM instructions

◮ for every register i ∈ [0, n − 1] in M, two logical variables xi and xi ◮ for every position/state (PC = i) in M, a variable qi

{x0, . . . , xn−1} ⊎ {x0, . . . , xn−1} ⊎ {q0, q1, . . .}

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 25

slide-75
SLIDE 75

Encoding Minsky machines in eILL

Given M as a list of MM instructions

◮ for every register i ∈ [0, n − 1] in M, two logical variables xi and xi ◮ for every position/state (PC = i) in M, a variable qi

{x0, . . . , xn−1} ⊎ {x0, . . . , xn−1} ⊎ {q0, q1, . . .} a computation M / / (i, v) (0, 0) is represented by ! ΣM; ∆

v ⊢ qi

◮ where if

v = (p0, . . . , pn−1) then ∆

v = p0.x0, . . . , pn−1.xn−1

◮ the commands in ΣM are determined by instructions in M

ΣM = {(q0 ⊸ q0) ⊸ q0} ∪ {xβ ⊸ (xα ⊸ xα), (xα ⊸ xα) ⊸ xα | α = β ∈ [0, n − 1]} ∪ {(xα ⊸ qi+1) ⊸ qi | i : INC α ∈ M} ∪ {(xα & qj) ⊸ qi, xα ⊸ (qi+1 ⊸ qi) | i : DEC α j ∈ M}

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 25

slide-76
SLIDE 76

Encoding Minsky machines in eILL

Given M as a list of MM instructions

◮ for every register i ∈ [0, n − 1] in M, two logical variables xi and xi ◮ for every position/state (PC = i) in M, a variable qi

{x0, . . . , xn−1} ⊎ {x0, . . . , xn−1} ⊎ {q0, q1, . . .} a computation M / / (i, v) (0, 0) is represented by ! ΣM; ∆

v ⊢ qi

◮ where if

v = (p0, . . . , pn−1) then ∆

v = p0.x0, . . . , pn−1.xn−1

◮ the commands in ΣM are determined by instructions in M

ΣM = {(q0 ⊸ q0) ⊸ q0} ∪ {xβ ⊸ (xα ⊸ xα), (xα ⊸ xα) ⊸ xα | α = β ∈ [0, n − 1]} ∪ {(xα ⊸ qi+1) ⊸ qi | i : INC α ∈ M} ∪ {(xα & qj) ⊸ qi, xα ⊸ (qi+1 ⊸ qi) | i : DEC α j ∈ M}

Theorem (Simulating MM termination at zero with GeILL entailment)

M / / (i, v) (0, 0) ↔ ! ΣM, ∆

v ⊢ qi

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 25

slide-77
SLIDE 77

Encoding Minsky machines in eILL

Given M as a list of MM instructions

◮ for every register i ∈ [0, n − 1] in M, two logical variables xi and xi ◮ for every position/state (PC = i) in M, a variable qi

{x0, . . . , xn−1} ⊎ {x0, . . . , xn−1} ⊎ {q0, q1, . . .} a computation M / / (i, v) (0, 0) is represented by ! ΣM; ∆

v ⊢ qi

◮ where if

v = (p0, . . . , pn−1) then ∆

v = p0.x0, . . . , pn−1.xn−1

◮ the commands in ΣM are determined by instructions in M

ΣM = {(q0 ⊸ q0) ⊸ q0} ∪ {xβ ⊸ (xα ⊸ xα), (xα ⊸ xα) ⊸ xα | α = β ∈ [0, n − 1]} ∪ {(xα ⊸ qi+1) ⊸ qi | i : INC α ∈ M} ∪ {(xα & qj) ⊸ qi, xα ⊸ (qi+1 ⊸ qi) | i : DEC α j ∈ M}

Theorem (Simulating MM termination at zero with GeILL entailment)

M / / (i, v) (0, 0) ↔ ! ΣM, ∆

v ⊢ qi

Hence the reduction MM eILL

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 25

slide-78
SLIDE 78

Wrap-up of this talk

Reductions: PCP to BPCP: trivial binary encoding BPCP to BSM: verified exhaustive search BSM to MM: certified compiler between low-level languages MM to eILL: elegant encoding of computational model in logics eILL to ILL: faithfull embedding

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 26

slide-79
SLIDE 79

Wrap-up of this talk

Reductions: PCP to BPCP: trivial binary encoding BPCP to BSM: verified exhaustive search BSM to MM: certified compiler between low-level languages MM to eILL: elegant encoding of computational model in logics eILL to ILL: faithfull embedding Low verification overhead

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 26

slide-80
SLIDE 80

Wrap-up of this talk

Reductions: PCP to BPCP: trivial binary encoding BPCP to BSM: verified exhaustive search BSM to MM: certified compiler between low-level languages MM to eILL: elegant encoding of computational model in logics eILL to ILL: faithfull embedding Low verification overhead

(compared to detailed paper proofs)

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 26

slide-81
SLIDE 81

Towards a library of undecidable problems

cbvλ FOL TM BPCP BSM MM ILL DIO(H10)

ITP18 CPP19

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 27

slide-82
SLIDE 82

Conclusion

A library of computational models and undecidable problems Exemplary undecidability proof for provability in linear logic Enabling loads of future work. Attach your own undecidable problems!

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 28

slide-83
SLIDE 83

Conclusion

A library of computational models and undecidable problems Exemplary undecidability proof for provability in linear logic Enabling loads of future work. Attach your own undecidable problems! https://uds-psl.github.io/ill-undecidability PDF is hyperlinked with the repo.

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 28

slide-84
SLIDE 84

Conclusion

A library of computational models and undecidable problems Exemplary undecidability proof for provability in linear logic Enabling loads of future work. Attach your own undecidable problems! https://uds-psl.github.io/ill-undecidability PDF is hyperlinked with the repo.

Advertisement: CPP 2019 talk On Synthetic Undecidability in Coq, with an Application to the Entscheidungsproblem Tuesday, 16:00

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 28

slide-85
SLIDE 85

Conclusion

A library of computational models and undecidable problems Exemplary undecidability proof for provability in linear logic Enabling loads of future work. Attach your own undecidable problems! https://uds-psl.github.io/ill-undecidability PDF is hyperlinked with the repo.

Advertisement: CPP 2019 talk On Synthetic Undecidability in Coq, with an Application to the Entscheidungsproblem Tuesday, 16:00

Questions?

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 28

slide-86
SLIDE 86

Ongoing and Future Work

FXP FAM CFP CFI 3rd-ord. unif ILL cbvλ 2SM mTM TM PCP BPCP BSM MM eILL (i)FOL ZF IMP HOL IPC2 µ rec. functions tiling problems System F inhab. diophantine eqs

Forster, Kunze: Automated extraction from Coq to cbv λ-calculus yields computability proofs for all reductions

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 29

slide-87
SLIDE 87

Properties of step semantics

Determinism (or functional): ρ / / s ≻ s1 → ρ / / s ≻ s2 → s1 = s2 Determinism then holds for P / / s ≻n s ′ and P / / s s ′ But not for transitive closures: P / / s ≻∗ s ′ or P / / s ≻+ s ′ example of non-determinism: parallel composition Totality: ∀s ∃s ′, ρ / / s ≻ s ′ then out j P is the only way to block a computation example of blocking instructions: HALT or POP the upcomming BSM and MM programming languages both deterministic and total

  • Y. Forster and D. Larchey-Wendling

Certified Undecidability of ILL CPP 2019 – Jan 14 30