Documentation

Foundation.FirstOrder.Syntax.Classical.Rew

Rewriting Entailment #

term/formula morphisms such as Rewritings, substitutions, and embs are handled by the structure FFL.FirstOrder.Rew.

Rewritings FFL.FirstOrder.Rew is naturally converted to formula Rewritings by FFL.FirstOrder.Rew.hom.

theorem FFL.FirstOrder.Semiformula.rewAux_neg {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (φ : Semiformula L ξ₁ n₁) :
rewAux ω (∼φ) = ∼rewAux ω φ
theorem FFL.FirstOrder.Semiformula.ext_rewAux' {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} {ω₁ ω₂ : Rew L ξ₁ n₁ ξ₂ n₂} (h : ω₁ = ω₂) (φ : Semiformula L ξ₁ n₁) :
rewAux ω₁ φ = rewAux ω₂ φ
def FFL.FirstOrder.Semiformula.rew {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) :
Semiformula L ξ₁ n₁ →ˡᶜ Semiformula L ξ₂ n₂
Equations
Instances For
    @[instance_reducible]
    instance FFL.FirstOrder.Semiformula.instRewriting {L : Language} {ξ : Type u_2} {ζ : Type u_3} :
    Rewriting L ξ (Semiformula L ξ) ζ (Semiformula L ζ)
    Equations
    @[reducible, inline]
    abbrev FFL.FirstOrder.Semiformula.subst {L : Language} {ξ : Type u_2} {n m : ℕ} (φ : Semiformula L ξ n) (v : Fin n → Semiterm L ξ m) :
    Equations
    Instances For
      @[reducible, inline]
      abbrev FFL.FirstOrder.Semiformula.emb {o : Type u_1} {L : Language} {n : ℕ} {ξ : Type u_3} [IsEmpty o] (φ : Semiformula L o n) :
      Equations
      Instances For
        @[reducible, inline]
        Equations
        Instances For
          theorem FFL.FirstOrder.Semiformula.rew_rel {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {k : ℕ} (r : L.Rel k) (v : Fin k → Semiterm L ξ₁ n₁) :
          (Rewriting.app ω) (rel r v) = rel r fun (i : Fin k) => ω (v i)
          theorem FFL.FirstOrder.Semiformula.rew_nrel {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {k : ℕ} (r : L.Rel k) (v : Fin k → Semiterm L ξ₁ n₁) :
          (Rewriting.app ω) (nrel r v) = nrel r fun (i : Fin k) => ω (v i)
          @[simp]
          theorem FFL.FirstOrder.Semiformula.rew_rel_eq_comp {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {k : ℕ} {r : L.Rel k} {v : Fin k → Semiterm L ξ₁ n₁} :
          (Rewriting.app ω) (rel r v) = rel r (⇑ω ∘ v)
          @[simp]
          theorem FFL.FirstOrder.Semiformula.rew_nrel_eq_comp {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {k : ℕ} {r : L.Rel k} {v : Fin k → Semiterm L ξ₁ n₁} :
          (Rewriting.app ω) (nrel r v) = nrel r (⇑ω ∘ v)
          @[simp]
          theorem FFL.FirstOrder.Semiformula.rew_rel0 {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {r : L.Rel 0} {v : Fin 0 → Semiterm L ξ₁ n₁} :
          (Rewriting.app ω) (rel r v) = rel r ![]
          @[simp]
          theorem FFL.FirstOrder.Semiformula.rew_rel1 {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {r : L.Rel 1} {t : Semiterm L ξ₁ n₁} :
          (Rewriting.app ω) (rel r ![t]) = rel r ![ω t]
          @[simp]
          theorem FFL.FirstOrder.Semiformula.rew_rel2 {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {r : L.Rel 2} {t₁ t₂ : Semiterm L ξ₁ n₁} :
          (Rewriting.app ω) (rel r ![t₁, t₂]) = rel r ![ω t₁, ω t₂]
          @[simp]
          theorem FFL.FirstOrder.Semiformula.rew_rel3 {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {r : L.Rel 3} {t₁ t₂ t₃ : Semiterm L ξ₁ n₁} :
          (Rewriting.app ω) (rel r ![t₁, t₂, t₃]) = rel r ![ω t₁, ω t₂, ω t₃]
          @[simp]
          theorem FFL.FirstOrder.Semiformula.rew_nrel0 {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {r : L.Rel 0} {v : Fin 0 → Semiterm L ξ₁ n₁} :
          (Rewriting.app ω) (nrel r v) = nrel r ![]
          @[simp]
          theorem FFL.FirstOrder.Semiformula.rew_nrel1 {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {r : L.Rel 1} {t : Semiterm L ξ₁ n₁} :
          (Rewriting.app ω) (nrel r ![t]) = nrel r ![ω t]
          @[simp]
          theorem FFL.FirstOrder.Semiformula.rew_nrel2 {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {r : L.Rel 2} {t₁ t₂ : Semiterm L ξ₁ n₁} :
          (Rewriting.app ω) (nrel r ![t₁, t₂]) = nrel r ![ω t₁, ω t₂]
          @[simp]
          theorem FFL.FirstOrder.Semiformula.rew_nrel3 {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {r : L.Rel 3} {t₁ t₂ t₃ : Semiterm L ξ₁ n₁} :
          (Rewriting.app ω) (nrel r ![t₁, t₂, t₃]) = nrel r ![ω t₁, ω t₂, ω t₃]
          instance FFL.FirstOrder.Semiformula.instTransitiveRewriting {L : Language} {ξ₁ : Type u_2} {ξ₂ : Type u_3} {ξ₃ : Type u_4} :
          TransitiveRewriting L ξ₁ (Semiformula L ξ₁) ξ₂ (Semiformula L ξ₂) ξ₃ (Semiformula L ξ₃)
          @[simp]
          theorem FFL.FirstOrder.Semiformula.complexity_rew {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) (φ : Semiformula L ξ₁ n₁) :
          @[simp]
          theorem FFL.FirstOrder.Semiformula.eq_top_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} :
          (Rewriting.app ω) φ = ⊤ ↔ φ = ⊤
          @[simp]
          theorem FFL.FirstOrder.Semiformula.eq_bot_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} :
          (Rewriting.app ω) φ = ⊥ ↔ φ = ⊥
          theorem FFL.FirstOrder.Semiformula.eq_rel_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} {k : ℕ} {r : L.Rel k} {v : Fin k → Semiterm L ξ₂ n₂} :
          (Rewriting.app ω) φ = rel r v ↔ ∃ (v' : Fin k → Semiterm L ξ₁ n₁), ⇑ω ∘ v' = v ∧ φ = rel r v'
          theorem FFL.FirstOrder.Semiformula.eq_nrel_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} {k : ℕ} {r : L.Rel k} {v : Fin k → Semiterm L ξ₂ n₂} :
          (Rewriting.app ω) φ = nrel r v ↔ ∃ (v' : Fin k → Semiterm L ξ₁ n₁), ⇑ω ∘ v' = v ∧ φ = nrel r v'
          @[simp]
          theorem FFL.FirstOrder.Semiformula.eq_and_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} {ψ₁ ψ₂ : Semiformula L ξ₂ n₂} :
          (Rewriting.app ω) φ = ψ₁ ⋏ ψ₂ ↔ ∃ (φ₁ : Semiformula L ξ₁ n₁) (φ₂ : Semiformula L ξ₁ n₁), (Rewriting.app ω) φ₁ = ψ₁ ∧ (Rewriting.app ω) φ₂ = ψ₂ ∧ φ = φ₁ ⋏ φ₂
          @[simp]
          theorem FFL.FirstOrder.Semiformula.eq_or_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} {ψ₁ ψ₂ : Semiformula L ξ₂ n₂} :
          (Rewriting.app ω) φ = ψ₁ ⋎ ψ₂ ↔ ∃ (φ₁ : Semiformula L ξ₁ n₁) (φ₂ : Semiformula L ξ₁ n₁), (Rewriting.app ω) φ₁ = ψ₁ ∧ (Rewriting.app ω) φ₂ = ψ₂ ∧ φ = φ₁ ⋎ φ₂
          theorem FFL.FirstOrder.Semiformula.eq_all_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} {ψ : Semiformula L ξ₂ (n₂ + 1)} :
          (Rewriting.app ω) φ = ∀¹ ψ ↔ ∃ (φ' : Semiformula L ξ₁ (n₁ + 1)), (Rewriting.app ω.q) φ' = ψ ∧ φ = ∀¹ φ'
          theorem FFL.FirstOrder.Semiformula.eq_exs_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} {ψ : Semiformula L ξ₂ (n₂ + 1)} :
          (Rewriting.app ω) φ = ∃¹ ψ ↔ ∃ (φ' : Semiformula L ξ₁ (n₁ + 1)), (Rewriting.app ω.q) φ' = ψ ∧ φ = ∃¹ φ'
          @[simp]
          theorem FFL.FirstOrder.Semiformula.eq_neg_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} {ψ₁ ψ₂ : Semiformula L ξ₂ n₂} :
          (Rewriting.app ω) φ = ψ₁ 🡒 ψ₂ ↔ ∃ (φ₁ : Semiformula L ξ₁ n₁) (φ₂ : Semiformula L ξ₁ n₁), (Rewriting.app ω) φ₁ = ψ₁ ∧ (Rewriting.app ω) φ₂ = ψ₂ ∧ φ = φ₁ 🡒 φ₂
          theorem FFL.FirstOrder.Semiformula.eq_ball_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} {ψ₁ ψ₂ : Semiformula L ξ₂ (n₂ + 1)} :
          ((Rewriting.app ω) φ = ∀¹[ψ₁] ψ₂) ↔ ∃ (φ₁ : Semiformula L ξ₁ (n₁ + 1)) (φ₂ : Semiformula L ξ₁ (n₁ + 1)), (Rewriting.app ω.q) φ₁ = ψ₁ ∧ (Rewriting.app ω.q) φ₂ = ψ₂ ∧ φ = ∀¹[φ₁] φ₂
          theorem FFL.FirstOrder.Semiformula.eq_bexs_iff {L : Language} {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} (ω : Rew L ξ₁ n₁ ξ₂ n₂) {φ : Semiformula L ξ₁ n₁} {ψ₁ ψ₂ : Semiformula L ξ₂ (n₂ + 1)} :
          ((Rewriting.app ω) φ = ∃¹[ψ₁] ψ₂) ↔ ∃ (φ₁ : Semiformula L ξ₁ (n₁ + 1)) (φ₂ : Semiformula L ξ₁ (n₁ + 1)), (Rewriting.app ω.q) φ₁ = ψ₁ ∧ (Rewriting.app ω.q) φ₂ = ψ₂ ∧ φ = ∃¹[φ₁] φ₂
          @[simp]
          theorem FFL.FirstOrder.Semiformula.coe_rel {ο : Type u_1} {L : Language} {n : ℕ} {ξ : Type u_3} [IsEmpty ο] {k : ℕ} (R : L.Rel k) (v : Fin k → Semiterm L ο n) :
          Rewriting.emb (rel R v) = rel R fun (i : Fin k) => Rew.emb (v i)
          theorem FFL.FirstOrder.Semiformula.coe_nrel {ο : Type u_1} {L : Language} {n : ℕ} {ξ : Type u_3} [IsEmpty ο] {k : ℕ} (R : L.Rel k) (v : Fin k → Semiterm L ο n) :
          Rewriting.emb (nrel R v) = nrel R fun (i : Fin k) => Rew.emb (v i)
          theorem FFL.FirstOrder.Semiformula.coe_subst_eq_subst_coe {L : Language} {k n : ℕ} (φ : Semisentence L k) (v : Fin k → ClosedSemiterm L n) :
          Rewriting.emb (φ ⇜ v) = Rewriting.emb φ ⇜ fun (i : Fin k) => Rew.emb (v i)
          @[irreducible]
          def FFL.FirstOrder.Semiformula.formulaRec {L : Language} {C : Proposition L → Sort u_2} (verum : C ⊤) (falsum : C ⊥) (rel : {l : ℕ} → (r : L.Rel l) → (v : Fin l → SyntacticTerm L) → C (rel r v)) (nrel : {l : ℕ} → (r : L.Rel l) → (v : Fin l → SyntacticTerm L) → C (nrel r v)) (and : (φ ψ : Proposition L) → C φ → C ψ → C (φ ⋏ ψ)) (or : (φ ψ : Proposition L) → C φ → C ψ → C (φ ⋎ ψ)) (all : (φ : Semiproposition L 1) → C (Rewriting.free φ) → C (∀¹ φ)) (ex : (φ : Semiproposition L 1) → C (Rewriting.free φ) → C (∃¹ φ)) (φ : Proposition L) :
          C φ
          Equations
          Instances For
            theorem FFL.FirstOrder.Semiformula.fvar?_rew {ξ₁ : Type u_1} {ξ₂ : Type u_2} {L : Language} {n₁ n₂ : ℕ} [DecidableEq ξ₁] [DecidableEq ξ₂] {φ : Semiformula L ξ₁ n₁} {ω : Rew L ξ₁ n₁ ξ₂ n₂} {x : ξ₂} (h : ((Rewriting.app ω) φ).FVar? x) :
            (∃ (i : Fin n₁), (ω (Semiterm.bvar i)).FVar? x) ∨ ∃ (z : ξ₁), φ.FVar? z ∧ (ω (Semiterm.fvar z)).FVar? x
            @[simp]
            theorem FFL.FirstOrder.Semiformula.freeVariables_emb {ξ : Type u_2} {L : Language} {n : ℕ} [DecidableEq ξ] {ο : Type u_1} [IsEmpty ο] (φ : Semiformula L ο n) :
            theorem FFL.FirstOrder.Semiformula.rew_eq_of_funEqOn {ξ₁ : Type u_1} {L : Language} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} [DecidableEq ξ₁] {ω₁ ω₂ : Rew L ξ₁ n₁ ξ₂ n₂} {φ : Semiformula L ξ₁ n₁} (hb : ∀ (x : Fin n₁), ω₁ (Semiterm.bvar x) = ω₂ (Semiterm.bvar x)) (hf : Function.funEqOn φ.FVar? (⇑ω₁ ∘ Semiterm.fvar) (⇑ω₂ ∘ Semiterm.fvar)) :
            (Rewriting.app ω₁) φ = (Rewriting.app ω₂) φ
            theorem FFL.FirstOrder.Semiformula.rew_eq_of_funEqOn₀ {ξ₁ : Type u_1} {L : Language} {ξ₂ : Type u_3} {n₂ : ℕ} [DecidableEq ξ₁] {ω₁ ω₂ : Rew L ξ₁ 0 ξ₂ n₂} {φ : Semiformula L ξ₁ 0} (hf : Function.funEqOn φ.FVar? (⇑ω₁ ∘ Semiterm.fvar) (⇑ω₂ ∘ Semiterm.fvar)) :
            (Rewriting.app ω₁) φ = (Rewriting.app ω₂) φ
            theorem FFL.FirstOrder.Semiformula.rew_eq_self_of {ξ : Type u_1} {L : Language} {n : ℕ} [DecidableEq ξ] {ω : Rew L ξ n ξ n} {φ : Semiformula L ξ n} (hb : ∀ (x : Fin n), ω (Semiterm.bvar x) = Semiterm.bvar x) (hf : ∀ (x : ξ), φ.FVar? x → ω (Semiterm.fvar x) = Semiterm.fvar x) :
            (Rewriting.app ω) φ = φ
            @[simp]
            theorem FFL.FirstOrder.Semiformula.ex_ne_subst {L : Language} {ξ : Type u_2} (φ : Semiformula L ξ 1) (t : Semiterm L ξ 0) :
            φ/[t] ≠ ∃¹ φ
            @[simp]
            theorem FFL.FirstOrder.Semiformula.subst_comp_fixitr_eq_map {L : Language} (φ : Proposition L) (f : ℕ → SyntacticTerm L) :
            ((Rewriting.app (Rew.fixitr 0 (fvSup φ))) φ ⇜ fun (x : Fin (0 + fvSup φ)) => f ↑x) = (Rewriting.app (Rew.rewrite f)) φ
            @[simp]
            theorem FFL.FirstOrder.Semiformula.subst_comp_fixitr {L : Language} (φ : Proposition L) :
            ((Rewriting.app (Rew.fixitr 0 (fvSup φ))) φ ⇜ fun (x : Fin (0 + fvSup φ)) => Semiterm.fvar ↑x) = φ
            @[simp]
            theorem FFL.FirstOrder.Semiformula.emb_toEmpty {ξ : Type u_1} {L : Language} {n : ℕ} [DecidableEq ξ] (φ : Semiformula L ξ n) (hp : φ.freeVariables = ∅) :
            @[simp]
            theorem FFL.FirstOrder.Semiformula.toEmpty_emb {ξ : Type u_1} {L : Language} {n : ℕ} [DecidableEq ξ] (φ : Semisentence L n) :
            (Rewriting.emb φ).toEmpty ⋯ = φ
            @[simp]
            theorem FFL.FirstOrder.Semiformula.toEmpty_and {ξ : Type u_1} {L : Language} {n : ℕ} [DecidableEq ξ] (φ ψ : Semiformula L ξ n) (h : (φ ⋏ ψ).freeVariables = ∅) :
            (φ ⋏ ψ).toEmpty h = φ.toEmpty ⋯ ⋏ ψ.toEmpty ⋯
            @[simp]
            theorem FFL.FirstOrder.Semiformula.toEmpty_or {ξ : Type u_1} {L : Language} {n : ℕ} [DecidableEq ξ] (φ ψ : Semiformula L ξ n) (h : (φ ⋎ ψ).freeVariables = ∅) :
            (φ ⋎ ψ).toEmpty h = φ.toEmpty ⋯ ⋎ ψ.toEmpty ⋯
            @[simp]
            theorem FFL.FirstOrder.Semiformula.toEmpty_all {ξ : Type u_1} {L : Language} {n : ℕ} [DecidableEq ξ] (φ : Semiformula L ξ (n + 1)) (h : (∀¹ φ).freeVariables = ∅) :
            @[simp]
            theorem FFL.FirstOrder.Semiformula.toEmpty_ex {ξ : Type u_1} {L : Language} {n : ℕ} [DecidableEq ξ] (φ : Semiformula L ξ (n + 1)) (h : (∃¹ φ).freeVariables = ∅) :
            def FFL.FirstOrder.Semiformula.toEmpty' {ξ : Type u_1} {L : Language} [DecidableEq ξ] {n : ℕ} (φ : Semiformula L ξ n) :
            Equations
            Instances For
              @[simp]
              theorem FFL.FirstOrder.Semiformula.lMap_bind {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {n₁ : ℕ} {ξ₂ : Type u_2} {n₂ : ℕ} {ξ₁ : Type u_3} (b : Fin n₁ → Semiterm L₁ ξ₂ n₂) (e : ξ₁ → Semiterm L₁ ξ₂ n₂) (φ : Semiformula L₁ ξ₁ n₁) :
              (lMap Φ) ((Rewriting.app (Rew.bind b e)) φ) = (Rewriting.app (Rew.bind (Semiterm.lMap Φ ∘ b) (Semiterm.lMap Φ ∘ e))) ((lMap Φ) φ)
              theorem FFL.FirstOrder.Semiformula.lMap_map {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {n₁ n₂ : ℕ} {ξ₁ : Type u_2} {ξ₂ : Type u_3} (b : Fin n₁ → Fin n₂) (e : ξ₁ → ξ₂) (φ : Semiformula L₁ ξ₁ n₁) :
              (lMap Φ) ((Rewriting.app (Rew.map b e)) φ) = (Rewriting.app (Rew.map b e)) ((lMap Φ) φ)
              theorem FFL.FirstOrder.Semiformula.lMap_rewrite {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {ξ₁ : Type u_2} {ξ₂ : Type u_3} {n : ℕ} (f : ξ₁ → Semiterm L₁ ξ₂ n) (φ : Semiformula L₁ ξ₁ n) :
              theorem FFL.FirstOrder.Semiformula.lMap_subst {L₁ : Language} {L₂ : Language} {ξ : Type u_1} {Φ : L₁.Hom L₂} {k n : ℕ} (w : Fin k → Semiterm L₁ ξ n) (φ : Semiformula L₁ ξ k) :
              (lMap Φ) (φ ⇜ w) = (lMap Φ) φ ⇜ (Semiterm.lMap Φ ∘ w)
              theorem FFL.FirstOrder.Semiformula.lMap_shift {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {n : ℕ} (φ : Semiproposition L₁ n) :
              theorem FFL.FirstOrder.Semiformula.lMap_free {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {n : ℕ} (φ : Semiproposition L₁ (n + 1)) :
              theorem FFL.FirstOrder.Semiformula.lMap_fix {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {n : ℕ} (φ : Semiproposition L₁ n) :
              theorem FFL.FirstOrder.Semiformula.lMap_emb {L₁ : Language} {L₂ : Language} {ξ : Type u_1} {Φ : L₁.Hom L₂} {n : ℕ} {ο : Type u_2} [IsEmpty ο] (φ : Semiformula L₁ ο n) :
              (lMap Φ) (Rewriting.emb φ) = Rewriting.emb ((lMap Φ) φ)
              theorem FFL.FirstOrder.Semiformula.lMap_rewriteMap {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {ξ₁ : Type u_2} {n : ℕ} {ξ₂ : Type u_3} (φ : Semiformula L₁ ξ₁ n) (f : ξ₁ → ξ₂) :
              @[simp]
              theorem FFL.FirstOrder.Semiformula.rew_open_iff {L : Language} {ξ₁ : Type u_2} {n₁ : ℕ} {ξ₂ : Type u_3} {n₂ : ℕ} {ω : Rew L ξ₁ n₁ ξ₂ n₂} {φ : Semiformula L ξ₁ n₁} :
              ((Rewriting.app ω) φ).Open ↔ φ.Open