Existential second-order conjunction and disjunction #
existConj and existDisj combine formulas while collecting their leading
existential relation quantifiers into one prefix. Their semantics hold for
arbitrary open formulas; existential SO operands produce existential SO results.
Each result has exactly the sum of the operand sizes plus one, so witness merging
does not duplicate formulas.
This is the existential-prefix manipulation used in the second-order framework of Immerman's Descriptive Complexity, Section 7.1. It supplies logical closure before the machine characterization of existential SO is proved.
theorem
Complexity.DescriptiveComplexity.SOFormula.isExistSO_mergeExist
{V : Vocabulary}
{rctx : List Nat}
{n : Nat}
(isConjunction : Bool)
(φ ψ : SOFormula V rctx n)
(hφ : φ.IsExistSO)
(hψ : ψ.IsExistSO)
:
(mergeExist isConjunction φ ψ).IsExistSO
The merged prefix retains existential SO form.
@[simp]
theorem
Complexity.DescriptiveComplexity.SOFormula.size_mergeExist
{V : Vocabulary}
{rctx : List Nat}
{n : Nat}
(isConjunction : Bool)
(φ ψ : SOFormula V rctx n)
:
Prefix merging adds one connective and preserves all other syntax nodes.