Theorem: FirstOrder.Language.BoundedFormula.realize_mapTermRel_id
File: Mathlib/ModelTheory/Semantics.lean

tactic: induction' φ with _ _ _ _ _ _ _ _ _ _ _ ih1 ih2 _ _ ih
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.71406
P : Type ?u.71409
inst✝³ : Structure L M
inst✝² : Structure L N
inst✝¹ : Structure L P
α : Type u'
β : Type v'
n✝ l : ℕ
φ✝ ψ : BoundedFormula L α l
θ : BoundedFormula L α (Nat.succ l)
v✝ : α → M
xs✝ : Fin l → M
inst✝ : Structure L' M
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
n : ℕ
φ : BoundedFormula L α n
v : α → M
v' : β → M
xs : Fin n → M
h1 : ∀ (n : ℕ) (t : Term L (α ⊕ Fin n)) (xs : Fin n → M), realize (Sum.elim v' xs) (ft n t) = realize (Sum.elim v xs) t
h2 : ∀ (n : ℕ) (R : Relations L n) (x : Fin n → M), RelMap (fr n R) x = RelMap R x
⊢ Realize (mapTermRel ft fr (fun x => id) φ) v' xs ↔ Realize φ v xs

tactic: rfl
state_before: case falsum
L : Language
L' : Language
M : Type w
N : Type ?u.71406
P : Type ?u.71409
inst✝³ : Structure L M
inst✝² : Structure L N
inst✝¹ : Structure L P
α : Type u'
β : Type v'
n✝¹ l : ℕ
φ ψ : BoundedFormula L α l
θ : BoundedFormula L α (Nat.succ l)
v✝ : α → M
xs✝¹ : Fin l → M
inst✝ : Structure L' M
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
n : ℕ
v : α → M
v' : β → M
xs✝ : Fin n → M
h1 : ∀ (n : ℕ) (t : Term L (α ⊕ Fin n)) (xs : Fin n → M), realize (Sum.elim v' xs) (ft n t) = realize (Sum.elim v xs) t
h2 : ∀ (n : ℕ) (R : Relations L n) (x : Fin n → M), RelMap (fr n R) x = RelMap R x
n✝ : ℕ
xs : Fin n✝ → M
⊢ Realize (mapTermRel ft fr (fun x => id) falsum) v' xs ↔ Realize falsum v xs

tactic: simp [mapTermRel, Realize, h1]
state_before: case equal
L : Language
L' : Language
M : Type w
N : Type ?u.71406
P : Type ?u.71409
inst✝³ : Structure L M
inst✝² : Structure L N
inst✝¹ : Structure L P
α : Type u'
β : Type v'
n✝¹ l : ℕ
φ ψ : BoundedFormula L α l
θ : BoundedFormula L α (Nat.succ l)
v✝ : α → M
xs✝¹ : Fin l → M
inst✝ : Structure L' M
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
n : ℕ
v : α → M
v' : β → M
xs✝ : Fin n → M
h1 : ∀ (n : ℕ) (t : Term L (α ⊕ Fin n)) (xs : Fin n → M), realize (Sum.elim v' xs) (ft n t) = realize (Sum.elim v xs) t
h2 : ∀ (n : ℕ) (R : Relations L n) (x : Fin n → M), RelMap (fr n R) x = RelMap R x
n✝ : ℕ
t₁✝ t₂✝ : Term L (α ⊕ Fin n✝)
xs : Fin n✝ → M
⊢ Realize (mapTermRel ft fr (fun x => id) (equal t₁✝ t₂✝)) v' xs ↔ Realize (equal t₁✝ t₂✝) v xs

tactic: simp [mapTermRel, Realize, h1, h2]
state_before: case rel
L : Language
L' : Language
M : Type w
N : Type ?u.71406
P : Type ?u.71409
inst✝³ : Structure L M
inst✝² : Structure L N
inst✝¹ : Structure L P
α : Type u'
β : Type v'
n✝¹ l : ℕ
φ ψ : BoundedFormula L α l
θ : BoundedFormula L α (Nat.succ l)
v✝ : α → M
xs✝¹ : Fin l → M
inst✝ : Structure L' M
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
n : ℕ
v : α → M
v' : β → M
xs✝ : Fin n → M
h1 : ∀ (n : ℕ) (t : Term L (α ⊕ Fin n)) (xs : Fin n → M), realize (Sum.elim v' xs) (ft n t) = realize (Sum.elim v xs) t
h2 : ∀ (n : ℕ) (R : Relations L n) (x : Fin n → M), RelMap (fr n R) x = RelMap R x
n✝ l✝ : ℕ
R✝ : Relations L l✝
ts✝ : Fin l✝ → Term L (α ⊕ Fin n✝)
xs : Fin n✝ → M
⊢ Realize (mapTermRel ft fr (fun x => id) (rel R✝ ts✝)) v' xs ↔ Realize (rel R✝ ts✝) v xs

tactic: simp [mapTermRel, Realize, ih1, ih2]
state_before: case imp
L : Language
L' : Language
M : Type w
N : Type ?u.71406
P : Type ?u.71409
inst✝³ : Structure L M
inst✝² : Structure L N
inst✝¹ : Structure L P
α : Type u'
β : Type v'
n✝¹ l : ℕ
φ ψ : BoundedFormula L α l
θ : BoundedFormula L α (Nat.succ l)
v✝ : α → M
xs✝¹ : Fin l → M
inst✝ : Structure L' M
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
n : ℕ
v : α → M
v' : β → M
xs✝ : Fin n → M
h1 : ∀ (n : ℕ) (t : Term L (α ⊕ Fin n)) (xs : Fin n → M), realize (Sum.elim v' xs) (ft n t) = realize (Sum.elim v xs) t
h2 : ∀ (n : ℕ) (R : Relations L n) (x : Fin n → M), RelMap (fr n R) x = RelMap R x
n✝ : ℕ
f₁✝ f₂✝ : BoundedFormula L α n✝
ih1 : ∀ {xs : Fin n✝ → M}, Realize (mapTermRel ft fr (fun x => id) f₁✝) v' xs ↔ Realize f₁✝ v xs
ih2 : ∀ {xs : Fin n✝ → M}, Realize (mapTermRel ft fr (fun x => id) f₂✝) v' xs ↔ Realize f₂✝ v xs
xs : Fin n✝ → M
⊢ Realize (mapTermRel ft fr (fun x => id) (f₁✝ ⟹ f₂✝)) v' xs ↔ Realize (f₁✝ ⟹ f₂✝) v xs

tactic: simp only [mapTermRel, Realize, ih, id.def]
state_before: case all
L : Language
L' : Language
M : Type w
N : Type ?u.71406
P : Type ?u.71409
inst✝³ : Structure L M
inst✝² : Structure L N
inst✝¹ : Structure L P
α : Type u'
β : Type v'
n✝¹ l : ℕ
φ ψ : BoundedFormula L α l
θ : BoundedFormula L α (Nat.succ l)
v✝ : α → M
xs✝¹ : Fin l → M
inst✝ : Structure L' M
ft : (n : ℕ) → Term L (α ⊕ Fin n) → Term L' (β ⊕ Fin n)
fr : (n : ℕ) → Relations L n → Relations L' n
n : ℕ
v : α → M
v' : β → M
xs✝ : Fin n → M
h1 : ∀ (n : ℕ) (t : Term L (α ⊕ Fin n)) (xs : Fin n → M), realize (Sum.elim v' xs) (ft n t) = realize (Sum.elim v xs) t
h2 : ∀ (n : ℕ) (R : Relations L n) (x : Fin n → M), RelMap (fr n R) x = RelMap R x
n✝ : ℕ
f✝ : BoundedFormula L α (n✝ + 1)
ih : ∀ {xs : Fin (n✝ + 1) → M}, Realize (mapTermRel ft fr (fun x => id) f✝) v' xs ↔ Realize f✝ v xs
xs : Fin n✝ → M
⊢ Realize (mapTermRel ft fr (fun x => id) (∀'f✝)) v' xs ↔ Realize (∀'f✝) v xs