Satisfaction: dependence, decidability, and families of structures #
This file shows that the value of a term depends only on its variables, and that first-order
satisfaction is decidable on a finite structure with decidable equality and decidable relations,
so that decide checks Realize facts on concrete finite models. It also realizes terms and
formulas at an index of a family interp : W → L.Structure M of structures on one carrier, such
as the world-indexed interpretation of a constant-domain Kripke model, where mathlib's
instance-based realize needs the instance chosen at each index.
Main definitions #
FirstOrder.Language.BoundedFormula.decidableRealizedecidesBoundedFormula.Realizeby recursion on the formula, andFirstOrder.Language.Formula.decidableRealizeis the same for formulas.FirstOrder.Language.Term.realizeAt,FirstOrder.Language.Formula.RealizeAt: realization in the structure a family carries at an index.
Main results #
FirstOrder.Language.Term.dependsOn_realize: a term's value depends only on its variables.
[UPSTREAM] The value of a term depends only on the values of its variables.
Satisfaction on a finite structure with decidable equality and decidable relations is
decidable, by recursion on the formula; decide reduces through it on concrete models.
Equations
- FirstOrder.Language.BoundedFormula.falsum.decidableRealize x✝¹ x✝ = isFalse ⋯
- (FirstOrder.Language.BoundedFormula.equal t₁ t₂).decidableRealize x✝¹ x✝ = FirstOrder.Language.BoundedFormula.decidableRealize._aux_1 x✝² t₁ t₂ x✝¹ x✝
- (FirstOrder.Language.BoundedFormula.rel R ts).decidableRealize x✝¹ x✝ = FirstOrder.Language.BoundedFormula.decidableRealize._aux_3 x✝² l R ts x✝¹ x✝
- (φ.imp ψ).decidableRealize x✝¹ x✝ = { decide := if h : φ.Realize x✝¹ x✝ then decide ((fun (a : φ.Realize x✝¹ x✝) => ψ.Realize x✝¹ x✝) h) else true, reflects_decide := ⋯ }
- φ.all.decidableRealize x✝¹ x✝ = { decide := decide (∀ a ∈ Finset.univ, (fun (a : M) => φ.Realize x✝¹ (Fin.snoc x✝ a)) a), reflects_decide := ⋯ }
Equations
- φ.decidableRealize v = FirstOrder.Language.BoundedFormula.decidableRealize φ v default
Realization in a family of structures #
[UPSTREAM] The value of a term in the structure the family carries at w.
Equations
- t.realizeAt interp w v = FirstOrder.Language.Term.realize v t
Instances For
[UPSTREAM] Satisfaction in the structure the family carries at w.
Equations
- ψ.RealizeAt interp w v = ψ.Realize v