Theorem: FirstOrder.Language.BoundedFormula.mapTermRel_mapTermRel
File: Mathlib/ModelTheory/Syntax.lean

tactic: induction' φ with _ _ _ _ _ _ _ _ _ _ _ ih1 ih2 _ _ ih3
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.61221
P : Type ?u.61224
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type u_5
n✝ : ℕ
L'' : Language
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
ft' : (n : ℕ) → Term L' (β ⊕ Fin n) → Term L'' (γ ⊕ Fin n)
fr' : (n : ℕ) → Relations L' n → Relations L'' n
n : ℕ
φ : BoundedFormula L α n
⊢ mapTermRel ft' fr' (fun x => id) (mapTermRel ft fr (fun x => id) φ) =
    mapTermRel (fun x => ft' x ∘ ft x) (fun x => fr' x ∘ fr x) (fun x => id) φ

tactic: rfl
state_before: case falsum
L : Language
L' : Language
M : Type w
N : Type ?u.61221
P : Type ?u.61224
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type u_5
n✝¹ : ℕ
L'' : Language
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
ft' : (n : ℕ) → Term L' (β ⊕ Fin n) → Term L'' (γ ⊕ Fin n)
fr' : (n : ℕ) → Relations L' n → Relations L'' n
n n✝ : ℕ
⊢ mapTermRel ft' fr' (fun x => id) (mapTermRel ft fr (fun x => id) falsum) =
    mapTermRel (fun x => ft' x ∘ ft x) (fun x => fr' x ∘ fr x) (fun x => id) falsum

tactic: simp [mapTermRel]
state_before: case equal
L : Language
L' : Language
M : Type w
N : Type ?u.61221
P : Type ?u.61224
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type u_5
n✝¹ : ℕ
L'' : Language
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
ft' : (n : ℕ) → Term L' (β ⊕ Fin n) → Term L'' (γ ⊕ Fin n)
fr' : (n : ℕ) → Relations L' n → Relations L'' n
n n✝ : ℕ
t₁✝ t₂✝ : Term L (α ⊕ Fin n✝)
⊢ mapTermRel ft' fr' (fun x => id) (mapTermRel ft fr (fun x => id) (equal t₁✝ t₂✝)) =
    mapTermRel (fun x => ft' x ∘ ft x) (fun x => fr' x ∘ fr x) (fun x => id) (equal t₁✝ t₂✝)

tactic: simp [mapTermRel]
state_before: case rel
L : Language
L' : Language
M : Type w
N : Type ?u.61221
P : Type ?u.61224
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type u_5
n✝¹ : ℕ
L'' : Language
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
ft' : (n : ℕ) → Term L' (β ⊕ Fin n) → Term L'' (γ ⊕ Fin n)
fr' : (n : ℕ) → Relations L' n → Relations L'' n
n n✝ l✝ : ℕ
R✝ : Relations L l✝
ts✝ : Fin l✝ → Term L (α ⊕ Fin n✝)
⊢ mapTermRel ft' fr' (fun x => id) (mapTermRel ft fr (fun x => id) (rel R✝ ts✝)) =
    mapTermRel (fun x => ft' x ∘ ft x) (fun x => fr' x ∘ fr x) (fun x => id) (rel R✝ ts✝)

tactic: simp [mapTermRel, ih1, ih2]
state_before: case imp
L : Language
L' : Language
M : Type w
N : Type ?u.61221
P : Type ?u.61224
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type u_5
n✝¹ : ℕ
L'' : Language
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
ft' : (n : ℕ) → Term L' (β ⊕ Fin n) → Term L'' (γ ⊕ Fin n)
fr' : (n : ℕ) → Relations L' n → Relations L'' n
n n✝ : ℕ
f₁✝ f₂✝ : BoundedFormula L α n✝
ih1 :
  mapTermRel ft' fr' (fun x => id) (mapTermRel ft fr (fun x => id) f₁✝) =
    mapTermRel (fun x => ft' x ∘ ft x) (fun x => fr' x ∘ fr x) (fun x => id) f₁✝
ih2 :
  mapTermRel ft' fr' (fun x => id) (mapTermRel ft fr (fun x => id) f₂✝) =
    mapTermRel (fun x => ft' x ∘ ft x) (fun x => fr' x ∘ fr x) (fun x => id) f₂✝
⊢ mapTermRel ft' fr' (fun x => id) (mapTermRel ft fr (fun x => id) (imp f₁✝ f₂✝)) =
    mapTermRel (fun x => ft' x ∘ ft x) (fun x => fr' x ∘ fr x) (fun x => id) (imp f₁✝ f₂✝)

tactic: simp [mapTermRel, ih3]
state_before: case all
L : Language
L' : Language
M : Type w
N : Type ?u.61221
P : Type ?u.61224
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type u_5
n✝¹ : ℕ
L'' : Language
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
ft' : (n : ℕ) → Term L' (β ⊕ Fin n) → Term L'' (γ ⊕ Fin n)
fr' : (n : ℕ) → Relations L' n → Relations L'' n
n n✝ : ℕ
f✝ : BoundedFormula L α (n✝ + 1)
ih3 :
  mapTermRel ft' fr' (fun x => id) (mapTermRel ft fr (fun x => id) f✝) =
    mapTermRel (fun x => ft' x ∘ ft x) (fun x => fr' x ∘ fr x) (fun x => id) f✝
⊢ mapTermRel ft' fr' (fun x => id) (mapTermRel ft fr (fun x => id) (all f✝)) =
    mapTermRel (fun x => ft' x ∘ ft x) (fun x => fr' x ∘ fr x) (fun x => id) (all f✝)