Finite quantifier blocks for Lω₁ω formulas #
Finite blocks of existential and universal quantifiers over the last k bound variables,
with their realization semantics in Fin.append form.
Main Definitions #
FirstOrder.Language.BoundedFormulaω.existsBlock: quantify the lastkbound variables existentially, by iteratingex.FirstOrder.Language.BoundedFormulaω.forallBlock: the universal analogue, iteratingall.
Main Results #
realize_existsBlock:(existsBlock φ).Realize v xs ↔ ∃ ys : Fin k → M, φ.Realize v (Fin.append xs ys)— the firstncoordinates remain the ambient bound environment and the lastkcoordinates are the block's witnesses.realize_forallBlock: the universal analogue.
Implementation Notes #
The environment in the realization lemmas is the plain Fin.append xs ys (well-typed since
Fin (n + k) is the formula's bound-variable index); the successor step is the standard
Fin.snoc (Fin.append xs ys) y = Fin.append xs (Fin.snoc ys y) exchange. This is reusable
syntax infrastructure independent of any particular application.
Existentially quantify the last k bound variables of a formula, by iterating ex.
Equations
- φ.existsBlock = φ
- φ.existsBlock = φ.ex.existsBlock
Instances For
Universally quantify the last k bound variables of a formula, by iterating all.
Equations
- φ.forallBlock = φ
- φ.forallBlock = φ.all.forallBlock
Instances For
Realization of a finite existential block: witnesses for the last k bound variables,
in Fin.append form.
Realization of a finite universal block: all values of the last k bound variables,
in Fin.append form.