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,Cslib.Logic.FO.InputLiteral.Realize,Cslib.Logic.FO.InputLiteral.not,Cslib.Logic.FO.InputLiteral.relabel,Cslib.Logic.FO.InputLiteral.toFormula: a constant or a signed relation applied to free variables, its semantics, negation, variable renaming, and formula view.Cslib.Logic.FO.ProjectionFormula,Cslib.Logic.FO.ProjectionFormula.not,Cslib.Logic.FO.ProjectionFormula.relabel,Cslib.Logic.FO.ProjectionFormula.subst,Cslib.Logic.FO.ProjectionFormula.IsQF: numeric tests with input literals at the leaves, negation, variable renaming, substitution, and quantifier-freeness.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.Cslib.Logic.FO.ProjectionFormula.Case,Cslib.Logic.FO.ProjectionFormula.caseGuard,Cslib.Logic.FO.ProjectionFormula.caseLiteral: the leaf cases of a projection formula, their guard formulas, and their output literals.
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
A positive relation literal .rel R args false holds when R holds on x ∘ args.
A negated relation literal .rel R args true holds when R does not hold on x ∘ args.
Negate a literal, keeping its input address unchanged.
Instances For
The negated literal l.not holds if and only if l does not hold.
Rename the variables of an input literal.
Instances For
Relabeling a literal by f evaluates it under the assignment x ∘ f.
View an input literal as a formula.
Instances For
The formula l.toFormula is realized if and only if l is realized.
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
Selecting a literal from p.not negates the literal selected from p.
Rename every free variable in numeric tests and input literals.
Instances For
Selecting a literal from p.relabel f relabels the literal selected under x ∘ f.
Relabeling a projection formula by f evaluates its formula under x ∘ f.
The formula of p.not holds if and only if the formula of p does not hold.
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
Every leaf projection formula is quantifier-free.
A branch of quantifier-free subformulas with a quantifier-free guard is quantifier-free.
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.
Negating a quantifier-free projection formula preserves quantifier-freeness.
Relabeling a quantifier-free projection formula preserves quantifier-freeness.
Substituting quantifier-free guards and quantifier-free projections into a quantifier-free projection formula preserves quantifier-freeness.
The finitely many leaf occurrences of a projection formula. Distinct occurrences remain distinct even when they carry the same literal.
Instances For
A projection formula has finitely many leaf cases.
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.