Documentation

DescriptiveComplexity.Problems.CodeHalt.Arith

The arithmetic a certificate for CODEHALT has to speak #

Everything the ∃SO[new] certificate of DescriptiveComplexity.CODEHALT needs to know about Nat.Partrec.Code, stated over alone – no logic, no structures. Three groups:

Codes as numbers #

Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph

The number of a proper subcode is smaller: this is the well-founded measure the soundness of a certificate runs on.

Dependency graph

The successor rule of Nat.pair #

(a, b) is the pair enumerated just after (a', b'). The four cases are: move up inside a shell, close a shell, move along a shell, and open the next one.

Equations
Instances For
    Dependency graph
    theorem DescriptiveComplexity.CodeHalt.pair_next {a' b' a b : } (h : NextP a' b' a b) :
    Nat.pair a b = Nat.pair a' b' + 1
    Dependency graph
    theorem DescriptiveComplexity.CodeHalt.exists_next (a' b' : ) :
    ∃ (a : ) (b : ), NextP a' b' a b
    Dependency graph
    Dependency graph
    theorem DescriptiveComplexity.CodeHalt.exists_pred_pair {a b : } (h : Nat.pair a b 0) :
    ∃ (a' : ) (b' : ), Nat.pair a' b' + 1 = Nat.pair a b NextP a' b' a b

    The predecessor of a nonzero pair, together with the step relating them: the completeness half of the recurrence.

    Dependency graph

    Unfolding bounded evaluation #

    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    theorem DescriptiveComplexity.CodeHalt.evaln_rfind'_spec (k : ) {cf : Nat.Partrec.Code} {a m v : } :
    v Nat.Partrec.Code.evaln k cf.rfind' (Nat.pair a m)m v 0 Nat.Partrec.Code.evaln k cf (Nat.pair a v) ∀ (w : ), m ww < v∃ (u : ), u 0 u Nat.Partrec.Code.evaln k cf (Nat.pair a w)

    The search an rfind' performs, read as a bounded universal statement. A bounded evaluation of rfind' cf on ⟨a, m⟩ returns some v ≥ m such that cf returns 0 at ⟨a, v⟩ and something nonzero at every ⟨a, w⟩ with m ≤ w < v – and all of that within the same budget, which is what lets a first-order kernel state the search without a chain.

    Dependency graph

    Introduction rules for evaluation #

    One per constructor: what has to hold of the arguments for a value to be in the evaluation of a code. They are what the soundness of a certificate discharges its case analysis with.

    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    theorem DescriptiveComplexity.CodeHalt.mem_eval_pair {cf cg : Nat.Partrec.Code} {n a b : } (ha : a cf.eval n) (hb : b cg.eval n) :
    Nat.pair a b (cf.pair cg).eval n
    Dependency graph
    theorem DescriptiveComplexity.CodeHalt.mem_eval_comp {cf cg : Nat.Partrec.Code} {n y v : } (hy : y cg.eval n) (hv : v cf.eval y) :
    v (cf.comp cg).eval n
    Dependency graph
    Dependency graph
    theorem DescriptiveComplexity.CodeHalt.mem_eval_prec_succ {cf cg : Nat.Partrec.Code} {a j i v : } (hi : i (cf.prec cg).eval (Nat.pair a j)) (hv : v cg.eval (Nat.pair a (Nat.pair j i))) :
    v (cf.prec cg).eval (Nat.pair a (j + 1))
    Dependency graph
    theorem DescriptiveComplexity.CodeHalt.mem_eval_rfind' {cf : Nat.Partrec.Code} {a m v : } (hmv : m v) (h0 : 0 cf.eval (Nat.pair a v)) (hlt : ∀ (w : ), m ww < v∃ (u : ), u 0 u cf.eval (Nat.pair a w)) :
    v cf.rfind'.eval (Nat.pair a m)

    The evaluation of an rfind', from the bounded universal shape of the search: v is a place at or above m where cf returns 0, and every place in between returns something nonzero.

    Dependency graph

    A bound on the values a bounded evaluation produces #

    Every value a bounded evaluation with budget k of a code numbered at most E can produce. The numeral segment of a certificate is an initial segment of reaching this far, which is what makes it finite.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Dependency graph
      theorem DescriptiveComplexity.CodeHalt.le_valBound {E k e x v : } (he : e E) (hv : v Nat.Partrec.Code.evaln k (dec e) x) :
      Dependency graph