First-order projection formulas #
A projection chooses a constant or one signed input-relation bit using only numeric information.
ProjectionFormula N L α separates the numeric language N from the input language L.
Its internal nodes test formulas of N; its leaves are constants or input literals. Consequently
neither the choice of input bit nor its polarity can depend on input-relation values.
The syntax is a decision-tree presentation of the mutually exclusive numeric cases in the definition of first-order projections Immerman and Landau, Definition 3.6. Numeric guards may contain quantifiers; quantifier-free interpretations with arbitrary Boolean combinations of input relations are not projections. The numeric vocabulary is a parameter: no interpretation of order or BIT, or machine resource bound, is implicit in this definition.
Main definitions #
Cslib.Logic.FO.InputLiteral: a constant or a signed relation applied to free variables.Cslib.Logic.FO.ProjectionFormula: numeric tests with input literals at the leaves.Cslib.Logic.FO.ProjectionFormula.toFormula: the ordinary formula over the sum of the two languages.Cslib.Logic.FO.ProjectionFormula.select: the literal selected by the numeric structure alone.
Main results #
Cslib.Logic.FO.ProjectionFormula.realize_toFormula: realization is that of the selected literal.Cslib.Logic.FO.ProjectionFormula.exists_literal: one selected literal works for all input structures.Cslib.Logic.FO.ProjectionFormula.existsUnique_case: the numeric cases partition assignments.Cslib.Logic.FO.ProjectionFormula.realize_iff_exists_case: disjoint-case normal form.Cslib.Logic.FO.ProjectionFormula.realize_subst: truth-preserving substitution.Cslib.Logic.FO.ProjectionFormula.realize_relabel: variable renaming preserves realization.
References #
A projection output is a constant or a single input-relation literal. Arguments are variables, so even the address of the input bit is independent of input relations.
- const {L : FirstOrder.Language} {α : Type u_1} (value : Bool) : InputLiteral L α
A constant truth value.
- rel {L : FirstOrder.Language} {α : Type u_1} {n : ℕ} (symbol : L.Relations n) (args : Fin n → α) (negative : Bool) : InputLiteral L α
A relation on the given variables, negated exactly when
negativeis true.
Instances For
The truth value of a constant or input literal.
Instances For
Negate a literal, keeping its input address unchanged.
Instances For
Rename the variables of an input literal.
Instances For
View an input literal as a formula.
Instances For
Every input literal is quantifier-free.
A first-order projection formula: numeric tests may choose between input literals, but
input values cannot occur in the tests. N and L are separate vocabularies.
- leaf {N : FirstOrder.Language} {L : FirstOrder.Language} {α : Type u_1} (literal : InputLiteral L α) : ProjectionFormula N L α
A constant or a single signed input bit.
- branch {N : FirstOrder.Language} {L : FirstOrder.Language} {α : Type u_1} (guard : N.Formula α) (yes no : ProjectionFormula N L α) : ProjectionFormula N L α
Test a numeric formula, independently of the input relations.
Instances For
Translate numeric tests and input literals to the sum language.
Instances For
Choose the output literal using only the numeric structure and the variable assignment.
There is deliberately no L.Structure M parameter.
Instances For
The output of a projection is exactly one literal selected without inspecting the input relations. This statement holds for every interpretation of the input vocabulary.
A leaf is realized as its literal.
A branch is realized as its first or second subtree, as its numeric guard holds or not.
A single literal works for every interpretation of the input relations. The existential choice precedes the input structure: the selected literal cannot depend on input bits.
Negate the output, leaving all numeric tests unchanged.
Instances For
Rename every free variable in numeric tests and input literals.
Instances For
Substitute numeric tests and input literals independently. In particular, replacing each input literal by a projection preserves the one-input-bit restriction.
Instances For
Correct substitutions of numeric tests and input literals preserve truth. The source and target structures need not have the same universe or vocabulary.
All numeric tests are quantifier-free. The vocabulary is still a parameter; this property alone does not select the classical numeric vocabulary or exclude BIT.
Instances For
Quantifier-free numeric tests give a quantifier-free ordinary formula. Quantifier-freeness of an arbitrary ordinary formula does not ensure it is a projection: it can mix input bits.
The finitely many leaf occurrences of a projection formula. Distinct occurrences remain distinct even when they carry the same literal.
Instances For
The conjunction of numeric tests on the path to a leaf.
Instances For
The literal at a leaf occurrence.
Instances For
The numeric cases form a partition, including on empty structures whenever an assignment of the free variables exists.
A projection is the disjunction of its mutually exclusive numeric cases, each conjoined with one constant or signed input literal.