Documentation

Foundation.FirstOrder.Basic.Syntax.Rew

Rewriting System #

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

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

theorem Finset.biUnion_eq_empty {β : Type u_1} {α : Type u_2} [DecidableEq β] {s : Finset α} {f : αFinset β} :
s.biUnion f = is, f i =
theorem LO.FirstOrder.Semiformula.rewAux_neg {L : Language} {ξ₁ : Type u_2} {n₁ : } {ξ₂ : Type u_3} {n₂ : } (ω : Rew L ξ₁ n₁ ξ₂ n₂) (φ : Semiformula L ξ₁ n₁) :
rewAux ω (φ) = rewAux ω φ
theorem LO.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 LO.FirstOrder.Semiformula.rew {L : Language} {ξ₁ : Type u_2} {n₁ : } {ξ₂ : Type u_3} {n₂ : } (ω : Rew L ξ₁ n₁ ξ₂ n₂) :
Semiformula L ξ₁ n₁ →ˡᶜ Semiformula L ξ₂ n₂
Equations
instance LO.FirstOrder.Semiformula.instRewriting {L : Language} {ξ : Type u_2} {ζ : Type u_3} :
Rewriting L ξ (Semiformula L ξ) ζ (Semiformula L ζ)
Equations
theorem LO.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 kSemiterm L ξ₁ n₁) :
(Rewriting.app ω) (rel r v) = rel r fun (i : Fin k) => ω (v i)
theorem LO.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 kSemiterm L ξ₁ n₁) :
(Rewriting.app ω) (nrel r v) = nrel r fun (i : Fin k) => ω (v i)
theorem LO.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 kSemiterm L ξ₁ n₁} :
(Rewriting.app ω) (rel r v) = rel r (ω v)
theorem LO.FirstOrder.Semiformula.nrel' {L : Language} {ξ₁ : Type u_2} {n₁ : } {ξ₂ : Type u_3} {n₂ : } (ω : Rew L ξ₁ n₁ ξ₂ n₂) {k : } {r : L.Rel k} {v : Fin kSemiterm L ξ₁ n₁} :
(Rewriting.app ω) (nrel r v) = nrel r (ω v)
@[simp]
theorem LO.FirstOrder.Semiformula.rew_rel0 {L : Language} {ξ₁ : Type u_2} {n₁ : } {ξ₂ : Type u_3} {n₂ : } (ω : Rew L ξ₁ n₁ ξ₂ n₂) {r : L.Rel 0} {v : Fin 0Semiterm L ξ₁ n₁} :
(Rewriting.app ω) (rel r v) = rel r ![]
@[simp]
theorem LO.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 LO.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 LO.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 LO.FirstOrder.Semiformula.rew_nrel0 {L : Language} {ξ₁ : Type u_2} {n₁ : } {ξ₂ : Type u_3} {n₂ : } (ω : Rew L ξ₁ n₁ ξ₂ n₂) {r : L.Rel 0} {v : Fin 0Semiterm L ξ₁ n₁} :
(Rewriting.app ω) (nrel r v) = nrel r ![]
@[simp]
theorem LO.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 LO.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 LO.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 LO.FirstOrder.Semiformula.instTransitiveRewriting {L : Language} {ξ₁ : Type u_2} {ξ₂ : Type u_3} {ξ₃ : Type u_4} :
TransitiveRewriting L ξ₁ (Semiformula L ξ₁) ξ₂ (Semiformula L ξ₂) ξ₃ (Semiformula L ξ₃)
@[simp]
theorem LO.FirstOrder.Semiformula.complexity_rew {L : Language} {ξ₁ : Type u_2} {n₁ : } {ξ₂ : Type u_3} {n₂ : } (ω : Rew L ξ₁ n₁ ξ₂ n₂) (φ : Semiformula L ξ₁ n₁) :
((Rewriting.app ω) φ).complexity = φ.complexity
@[simp]
theorem LO.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 LO.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 LO.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 kSemiterm L ξ₂ n₂} :
(Rewriting.app ω) φ = rel r v ∃ (v' : Fin kSemiterm L ξ₁ n₁), ω v' = v φ = rel r v'
theorem LO.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 kSemiterm L ξ₂ n₂} :
(Rewriting.app ω) φ = nrel r v ∃ (v' : Fin kSemiterm L ξ₁ n₁), ω v' = v φ = nrel r v'
@[simp]
theorem LO.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 LO.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 LO.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 LO.FirstOrder.Semiformula.eq_ex_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 LO.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 LO.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 LO.FirstOrder.Semiformula.eq_bex_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 LO.FirstOrder.Semiformula.coe_inj {L : Language} {n : } (σ π : Semisentence L n) :
σ = π σ = π
theorem LO.FirstOrder.Semiformula.coe_substitute_eq_substitute_coe {L : Language} {k n : } (φ : Semisentence L k) (v : Fin kSemiterm L Empty n) :
(φ v) = φ fun (i : Fin k) => Rew.emb (v i)
theorem LO.FirstOrder.Semiformula.coe_substs_eq_substs_coe₁ {L : Language} {n : } (φ : Semisentence L 1) (t : Semiterm L Empty n) :
(φ/[t]) = φ/[Rew.emb t]
@[irreducible]
def LO.FirstOrder.Semiformula.formulaRec {L : Language} {C : SyntacticFormula LSort u_2} (verum : C ) (falsum : C ) (rel : {l : } → (r : L.Rel l) → (v : Fin lSyntacticTerm L) → C (rel r v)) (nrel : {l : } → (r : L.Rel l) → (v : Fin lSyntacticTerm L) → C (nrel r v)) (and : (φ ψ : SyntacticFormula L) → C φC ψC (φ ψ)) (or : (φ ψ : SyntacticFormula L) → C φC ψC (φ ψ)) (all : (φ : SyntacticSemiformula L 1) → C (Rewriting.free φ)C (∀' φ)) (ex : (φ : SyntacticSemiformula L 1) → C (Rewriting.free φ)C (∃' φ)) (φ : SyntacticFormula L) :
C φ
Equations
theorem LO.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 LO.FirstOrder.Semiformula.freeVariables_emb {ξ : Type u_2} {L : Language} {n : } [DecidableEq ξ] {ο : Type u_1} [IsEmpty ο] (φ : Semiformula L ο n) :
(↑φ).freeVariables =
theorem LO.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 LO.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 LO.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 LO.FirstOrder.Semiformula.ex_ne_subst {L : Language} {ξ : Type u_2} (φ : Semiformula L ξ 1) (t : Semiterm L ξ 0) :
φ/[t] ∃' φ
@[simp]
theorem LO.FirstOrder.Semiformula.fvSup_sentence {L : Language} {n : } (σ : Semisentence L n) :
(↑σ).fvSup = 0
@[simp]
@[simp]
def LO.FirstOrder.Semiformula.toEmpty {ξ : Type u_1} {L : Language} [DecidableEq ξ] {n : } (φ : Semiformula L ξ n) :
φ.freeVariables = Semisentence L n
Equations
@[simp]
theorem LO.FirstOrder.Semiformula.emb_toEmpty {ξ : Type u_1} {L : Language} {n : } [DecidableEq ξ] (φ : Semiformula L ξ n) (hp : φ.freeVariables = ) :
(φ.toEmpty hp) = φ
@[simp]
theorem LO.FirstOrder.Semiformula.toEmpty_verum {ξ : Type u_1} {L : Language} {n : } [DecidableEq ξ] :
.toEmpty =
@[simp]
theorem LO.FirstOrder.Semiformula.toEmpty_falsum {ξ : Type u_1} {L : Language} {n : } [DecidableEq ξ] :
.toEmpty =
@[simp]
theorem LO.FirstOrder.Semiformula.toEmpty_and {ξ : Type u_1} {L : Language} {n : } [DecidableEq ξ] (φ ψ : Semiformula L ξ n) (h : (φ ψ).freeVariables = ) :
(φ ψ).toEmpty h = φ.toEmpty ψ.toEmpty
@[simp]
theorem LO.FirstOrder.Semiformula.toEmpty_or {ξ : Type u_1} {L : Language} {n : } [DecidableEq ξ] (φ ψ : Semiformula L ξ n) (h : (φ ψ).freeVariables = ) :
(φ ψ).toEmpty h = φ.toEmpty ψ.toEmpty
@[simp]
theorem LO.FirstOrder.Semiformula.toEmpty_all {ξ : Type u_1} {L : Language} {n : } [DecidableEq ξ] (φ : Semiformula L ξ (n + 1)) (h : (∀' φ).freeVariables = ) :
(∀' φ).toEmpty h = ∀' φ.toEmpty h
@[simp]
theorem LO.FirstOrder.Semiformula.toEmpty_ex {ξ : Type u_1} {L : Language} {n : } [DecidableEq ξ] (φ : Semiformula L ξ (n + 1)) (h : (∃' φ).freeVariables = ) :
(∃' φ).toEmpty h = ∃' φ.toEmpty h
theorem LO.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 LO.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 LO.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 LO.FirstOrder.Semiformula.lMap_substs {L₁ : Language} {L₂ : Language} {ξ : Type u_1} {Φ : L₁.Hom L₂} {k n : } (w : Fin kSemiterm L₁ ξ n) (φ : Semiformula L₁ ξ k) :
(lMap Φ) (φ w) = (lMap Φ) φ (Semiterm.lMap Φ w)
theorem LO.FirstOrder.Semiformula.lMap_shift {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {n : } (φ : SyntacticSemiformula L₁ n) :
theorem LO.FirstOrder.Semiformula.lMap_free {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {n : } (φ : SyntacticSemiformula L₁ (n + 1)) :
theorem LO.FirstOrder.Semiformula.lMap_fix {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {n : } (φ : SyntacticSemiformula L₁ n) :
theorem LO.FirstOrder.Semiformula.lMap_emb {L₁ : Language} {L₂ : Language} {ξ : Type u_1} {Φ : L₁.Hom L₂} {n : } {ο : Type u_2} [IsEmpty ο] (φ : Semiformula L₁ ο n) :
(lMap Φ) φ = ((lMap Φ) φ)
theorem LO.FirstOrder.Semiformula.lMap_toS {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {n : } (φ : Semiformula L₁ (Fin n) 0) :
theorem LO.FirstOrder.Semiformula.lMap_rewriteMap {L₁ : Language} {L₂ : Language} {Φ : L₁.Hom L₂} {ξ₁ : Type u_2} {n : } {ξ₂ : Type u_3} (φ : Semiformula L₁ ξ₁ n) (f : ξ₁ξ₂) :
@[simp]
theorem LO.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