Substitution and Helper Lemmas #
The lemmas here are mostly from Sections 2.1 and 2.2.
Single-step replacing #
Replace atomic proposition x
by ψ
in a formula.
Equations
Instances For
Replace atomic proposition x
by ψ
in a program.
Equations
Instances For
theorem
repl_in_list_non_occ_eq
{x : ℕ}
{ρ : Formula}
(F : List Formula)
:
Sum.inl x ∉ Vocab.fromList (List.map Formula.voc F) → List.map (repl_in_F x ρ) F = F
Overwrite the valuation of x
with the current value of ψ
in a model.
Equations
Instances For
theorem
repl_in_model_sat_iff
(x : ℕ)
(ψ φ : Formula)
{W : Type}
(M : KripkeModel W)
(w : W)
:
(M, w)⊨repl_in_F x ψ φ ↔ (repl_in_model x ψ M, w)⊨φ
theorem
repl_in_model_rel_iff
(x : ℕ)
(ψ : Formula)
(α : Program)
{W : Type}
(M : KripkeModel W)
(w v : W)
:
relate M (repl_in_P x ψ α) w v ↔ relate (repl_in_model x ψ M) α w v
theorem
repl_in_disMap
{α : Type u_1}
(x : ℕ)
(ρ : Formula)
(L : List α)
(p : α → Prop)
(f : α → Formula)
[DecidablePred p]
:
repl_in_F x ρ (dis (List.map (fun (Fδ : α) => if p Fδ then Formula.bottom else f Fδ) L)) = dis (List.map (fun (Fδ : α) => if p Fδ then Formula.bottom else repl_in_F x ρ (f Fδ)) L)
Simultaneous Substitutions #
Apply substitution σ
to formula φ
.
Equations
- subst_in_F σ Formula.bottom = ⊥
- subst_in_F σ (·c) = σ c
- subst_in_F σ (~φ) = (~subst_in_F σ φ)
- subst_in_F σ (φ1⋀φ2) = subst_in_F σ φ1⋀subst_in_F σ φ2
- subst_in_F σ (⌈α⌉φ) = ⌈subst_in_P σ α⌉subst_in_F σ φ
Instances For
Apply substitution σ
to program α
.
Equations
- subst_in_P σ (·c) = ·c
- subst_in_P σ (α;'β) = (subst_in_P σ α;'subst_in_P σ β)
- subst_in_P σ (α⋓β) = (subst_in_P σ α⋓subst_in_P σ β)
- subst_in_P σ (∗α) = (∗subst_in_P σ α)
- subst_in_P σ (?'φ) = (?'subst_in_F σ φ)
Instances For
Overwrite the valuation in M
with the substitution σ
.
Equations
- subst_in_model σ { val := V, Rel := R } = { val := fun (w : W) (c : ℕ) => ({ val := V, Rel := R }, w)⊨σ c, Rel := R }
Instances For
theorem
substitutionLemma
(σ : Substitution)
(φ : Formula)
{W : Type}
(M : KripkeModel W)
(w : W)
:
(M, w)⊨subst_in_F σ φ ↔ (subst_in_model σ M, w)⊨φ
theorem
substitutionLemmaRel
(σ : Substitution)
(α : Program)
{W : Type}
(M : KripkeModel W)
(w v : W)
:
relate M (subst_in_P σ α) w v ↔ relate (subst_in_model σ M) α w v