The numeral segment of a certificate #
An ∃SO[new] certificate for DescriptiveComplexity.CODEHALT carries numbers
as invented values: a finite set with a guessed linear order on it, read as
the initial segment 0, 1, …, N of ℕ. This file is that reading.
DescriptiveComplexity.CodeHalt.numOf is the number a value stands for – the
count of values below it, i.e. DescriptiveComplexity.bitRank at the trivial
set of positions. DescriptiveComplexity.CodeHalt.IsZ and
DescriptiveComplexity.CodeHalt.IsS are “is the least value” and “is covered
by”, spelled out so that a first-order kernel can state them verbatim, and the
two iff lemmas say they mean 0 and + 1. That is the whole bridge: from
there on a certificate is a statement about natural numbers.
The last two lemmas run the bridge the other way, on Fin (N + 1) with its own
order, which is the segment a certificate is built on.
The number a value stands for #
The number a value of the numeral segment stands for: how many values lie strictly below it.
Equations
- DescriptiveComplexity.CodeHalt.numOf Le d = DescriptiveComplexity.bitRank Le (fun (x : D) => True) d
Instances For
Dependency graph
d is the least value of the segment, i.e. the numeral 0.
Equations
- DescriptiveComplexity.CodeHalt.IsZ Le d = ∀ (e : D), Le d e
Instances For
Dependency graph
d' is the value just above d, i.e. its numeral is one more.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Every number below a reached one is reached: the values of the segment
are an initial segment of ℕ. This is what lets a bounded universal over the
segment be read as a bounded universal over ℕ.