Canonical ordered first-order structures #
The numeric vocabulary contains ≤, BIT, and the constants 0, 1, and max. On Fin n,
with 2 ≤ n, these have their canonical meanings computed from the natural indices. In
BIT(x, i), bit zero is the least significant bit. The numeric tables are not additional input.
An input language is expanded by Mathlib's Language.sum; its existing functions, constants and
relations retain their interpretations. Formulas and terms are Mathlib's existing syntax, so
numeric constants can occur directly in relation arguments, equalities and quantified formulas.
This is the canonical-structure prerequisite for ordered descriptive complexity. Native full-tuple
BIT and canonical full-tuple interpretations are supplied in Ordered.TupleBit and
Ordered.FullTuple; their composition is in Ordered.FullTuple.Composition.
Machine and circuit capture theorems require separate developments.
Main definitions #
Cslib.Logic.FO.Ordered.numericLanguage: the numeric symbols.Cslib.Logic.FO.Ordered.language: expansion of an input language by the numeric vocabulary.Cslib.Logic.FO.Ordered.numericStructure: canonical numeric semantics onFin n, forn ≥ 2.Cslib.Logic.FO.Ordered.zero,Cslib.Logic.FO.Ordered.one,Cslib.Logic.FO.Ordered.max: numeric constant terms in the expanded language.Cslib.Logic.FO.Ordered.le,Cslib.Logic.FO.Ordered.bit: numeric atoms on arbitrary terms.
Main results #
Cslib.Logic.FO.Ordered.realize_bit: exact zero-indexed BIT semantics.Cslib.Logic.FO.Ordered.realize_zero_ne_one: the numeric constants are distinct.Cslib.Logic.FO.Ordered.realize_inputFormula: expansion preserves all input formulas.
References #
- N. Immerman, Descriptive Complexity, Section 1.2 and Provisos 1.14–1.15. This minimal vocabulary includes order and BIT; no equivalence with addition/multiplication is asserted.
- Earlier canonical-expansion interfaces in S. Schlesinger, Canonical numerical predicates in Complexitylib informed this native Mathlib formulation.
The numeric function symbols are constants only.
- zero : NumericFunction 0
The least element.
- one : NumericFunction 0
The element with natural index one.
- max : NumericFunction 0
The greatest element.
Instances For
Instances For
The natural index of a canonical numeric constant in a universe of size m.
Instances For
Canonical order and zero-indexed binary digits.
- le : NumericRelation 2
Weak natural order.
- bit : NumericRelation 2
bit x itests the bit of weight2^iinx.
Instances For
Instances For
The canonical numeric vocabulary, including genuine nullary function symbols.
Instances For
Preserve input symbols and adjoin the canonical numeric vocabulary.
Instances For
Canonical numeric semantics; the lower bound makes zero and one distinct elements.
Instances For
The numeric zero, as an ordinary Mathlib constant term.
Instances For
The numeric one, as an ordinary Mathlib constant term.
Instances For
The greatest element, as an ordinary Mathlib constant term.
Instances For
Canonical weak order applied to arbitrary terms, including constants.
Instances For
Canonical BIT applied to arbitrary terms; the second argument is the zero-based bit index.
Instances For
The numeric constants are distinct in every canonical expanded structure.
bit L s i holds exactly when bit i of s is set, counting from the least significant
bit.
The language inclusion preserves the truth of every input formula, including constants and quantifiers already present in the input language.