Hilbert’s Tenth Problem in Coq
Dominique Larchey-Wendling and Yannick Forster FSCD 2019 June 25
computer science
saarland
university
- D. Larchey-Wendling and Y. Forster
H10 in Coq FSCD 2019 – June 25 1
Hilberts Tenth Problem in Coq Dominique Larchey-Wendling and Yannick - - PowerPoint PPT Presentation
Hilberts Tenth Problem in Coq Dominique Larchey-Wendling and Yannick Forster FSCD 2019 June 25 saarland university computer science D. Larchey-Wendling and Y. Forster H10 in Coq FSCD 2019 June 25 1 Introduction D. Larchey-Wendling
computer science
H10 in Coq FSCD 2019 – June 25 1
H10 in Coq FSCD 2019 – June 25 1
◮ does a given Turing machine halt? (Halt) ◮ does a given register/Minsky machine halt? (MM) ◮ the Post correspondence problem (PCP) ◮ is there a proof/term for this formula/type (FOL, syst. F)?
H10 in Coq FSCD 2019 – June 25 2
◮ required inventing a formal concept of “decision procedure” ◮ algorithms characterized by computability theory (CT, 30-40’s) ◮ a general notion of computable, and thus non-computable
H10 in Coq FSCD 2019 – June 25 3
H10 in Coq FSCD 2019 – June 25 4
◮ computable function f : X → Y s.t. ∀x, P x ↔ Q(f x) ◮ “computable” requirement replaced by “defined in CTT” ◮ We write P Q when such reduction exists
◮ from a seed of undecidability Halt (single tape TM) ◮ but also PCP (Forster&Heiter&Smolka, ITP 18) ◮ BSM, MM, ILL (Forster&LW, CPP 19) ◮ FOL (Forster&Kirst&Smolka, CPP 19) . . .
H10 in Coq FSCD 2019 – June 25 5
◮ assuming only Matiyasevich theorem (z = xy Diophantine) ◮ (Matiyasevich 2000) is a very detailed pen&paper proof
◮ system F inhabitation (Dudenhefner&Rehof, TYPES 18) ◮ second-order unification (Goldfarb 81)
◮ enumerating Diophantine solutions is trivial to program ◮ an easy way to strengthen Church’s thesis
◮ Diophantine equations can encode any RE-predicate
H10 in Coq FSCD 2019 – June 25 6
H10 in Coq FSCD 2019 – June 25 7
1 Overview of the reduction from Halt to H10, via FRACTRAN 2 Basics of FRACTRAN vs. MM (Conway 87) 3 Details on Diophantine encoding of FRACTRAN 4 H10 and the DPRM theorem 5 Mechanized Diophantine relations 6 Some remarks on the Coq code 7 Related works 8 Overview over the library and future work
H10 in Coq FSCD 2019 – June 25 8
H10 in Coq FSCD 2019 – June 25 8
◮ Halt PCP via SRS (ITP 18) ◮ PCP MM via Binary Stack Machines (CPP 19)
◮ following Conway (87) ◮ removing self-loops from MM
◮ Diophantine admissibility of RT-closure ◮ two results as black-boxes (implemented): ⋆ Matiyasevich proof (2000) (z = xy) ⋆ Admissibility of ∀fin (Matiyasevich 1997)
H10 in Coq FSCD 2019 – June 25 9
H10 in Coq FSCD 2019 – June 25 9
M (1,
H10 in Coq FSCD 2019 – June 25 10
◮ pick the first p/q s.t. x · p/q ∈ N, and this is the new state ◮ inductively, characterized by two rules:
F x ≻ y
F x ≻ y
F x ≻ y
F s ↓ := ∃x, Q /
F s ≻∗ x
F x ≻ y)
F s ↓
H10 in Coq FSCD 2019 – June 25 11
0 . . . qxn−1 n−1
◮ every MM has an equivalent self-loop free MM ◮ self-loops unconditional jump to a length-2 cycle
M (1, [x1; . . . ; xn]) ↓ ↔ Q /
F p1qx1 1 . . . qxn n ↓
H10 in Coq FSCD 2019 – June 25 12
◮ two DEC instructions starting at 0 : ◮ x0 is nullified, x1 zero-valued spare register
H10 in Coq FSCD 2019 – June 25 13
◮ two DEC instructions starting at 0 : ◮ x0 is nullified, x1 zero-valued spare register
H10 in Coq FSCD 2019 – June 25 13
◮ two DEC instructions starting at 0 : ◮ x0 is nullified, x1 zero-valued spare register
H10 in Coq FSCD 2019 – June 25 13
◮ two DEC instructions starting at 0 : ◮ x0 is nullified, x1 zero-valued spare register
H10 in Coq FSCD 2019 – June 25 13
◮ two DEC instructions starting at 0 : ◮ x0 is nullified, x1 zero-valued spare register
H10 in Coq FSCD 2019 – June 25 13
◮ two DEC instructions starting at 0 : ◮ x0 is nullified, x1 zero-valued spare register
H10 in Coq FSCD 2019 – June 25 13
◮ two DEC instructions starting at 0 : ◮ x0 is nullified, x1 zero-valued spare register
H10 in Coq FSCD 2019 – June 25 13
◮ two DEC instructions starting at 0 : ◮ x0 is nullified, x1 zero-valued spare register
H10 in Coq FSCD 2019 – June 25 13
◮ two DEC instructions starting at 0 : ◮ x0 is nullified, x1 zero-valued spare register
H10 in Coq FSCD 2019 – June 25 13
◮ two DEC instructions starting at 0 : ◮ x0 is nullified, x1 zero-valued spare register
H10 in Coq FSCD 2019 – June 25 13
◮
F x ≻ y
◮
F x ≻ y
F x ≻ y
◮
F x ≻ y)
◮
F x ≻ y)
F x ≻ y)
F s ↓ ↔ ∃x,
F s ≻∗ x
F x ≻ y)
◮ under polynomial equations (!) ◮ under “does not divide” (Euclidean division) ◮ under finitary conjunctions and disjunctions, existential quantification ◮ under RT-closure (this one is hard!)
H10 in Coq FSCD 2019 – June 25 14
◮ by reduction from Halt via PCP
◮ by reduction from MM
◮ Given (Q, s) a FRACTRAN program and an initial state ◮ compute a polynomial equation which has a solution iff Q /
F s ↓
H10 in Coq FSCD 2019 – June 25 15
M (1,
M (1, [v1; . . . ; vn] +
F p1qv1 1 . . . qvn n ↓
1 . . . qvn n is Diophantine
◮ by induction on n, using Matiyasevich thm. (z = xy is Diophantine)
F s ↓ is Diophantine
H10 in Coq FSCD 2019 – June 25 16
H10 in Coq FSCD 2019 – June 25 16
◮ not only polynomial equations, but also ∧, ∨, ∃ ◮ automated recognition of Diophantine shapes ◮ possibility to expand the shapes: x ∤ y, z = xy, ∀fin ◮ privileged tool for establishing Diophantineness
◮ list of u ˙
◮ u, v, w = existential variables, xi . . . = parameters, n : N = constant ◮ nice intermediate layer, e.g. 2nd-ord. unification or system F
◮ p and q are polynomials with variables, constants and parameters ◮ H10 is the special case with no parameter
H10 in Coq FSCD 2019 – June 25 17
H10 in Coq FSCD 2019 – June 25 18
H10 in Coq FSCD 2019 – June 25 19
ν
H10 in Coq FSCD 2019 – June 25 20
H10 in Coq FSCD 2019 – June 25 21
ν := ϕ u = ν xi
◮ E is always satisfiable (for any ν) ◮ (r ˙
◮ encode ˙
◮ encode ˙
◮ encode p ˙
ν
H10 in Coq FSCD 2019 – June 25 22
i=1 2piqi = n i=1 p2 i + q2 i
H10 in Coq FSCD 2019 – June 25 23
H10 in Coq FSCD 2019 – June 25 23
◮ 3k loc for Matiyasevich’s results (z = xy and ∀fin) ◮ 5k loc the Diophantine, FRACTRAN, H10 and the DPRM ◮ 4k loc addition to shared libs
◮ expanding Diophantine shape hints as they get proved
H10 in Coq FSCD 2019 – June 25 24
◮ no link with computational models
◮ some basic results about Diophantine relations (Pak 2018)
◮ still unfinished: https://gitlab.com/hilbert-10/dprm
H10 in Coq FSCD 2019 – June 25 25
1 Interactive construction of (computable) functions in proof scripts 2 Basic automation providing proof search using hints 3 Automation for goals involving numbers over rings
H10 in Coq FSCD 2019 – June 25 26
H10 in Coq FSCD 2019 – June 25 26
H10 in Coq FSCD 2019 – June 25 27