Theorem: FirstOrder.Language.LHom.realize_onBoundedFormula
File: Mathlib/ModelTheory/Semantics.lean

tactic: induction' ψ with _ _ _ _ _ _ _ _ _ _ _ ih1 ih2 _ _ ih3
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.231167
P : Type ?u.231170
inst✝⁴ : Structure L M
inst✝³ : Structure L N
inst✝² : Structure L P
α : Type u'
β : Type v'
n✝ : ℕ
inst✝¹ : Structure L' M
φ : L →ᴸ L'
inst✝ : IsExpansionOn φ M
n : ℕ
ψ : BoundedFormula L α n
v : α → M
xs : Fin n → M
⊢ Realize (onBoundedFormula φ ψ) v xs ↔ Realize ψ v xs

tactic: rfl
state_before: case falsum
L : Language
L' : Language
M : Type w
N : Type ?u.231167
P : Type ?u.231170
inst✝⁴ : Structure L M
inst✝³ : Structure L N
inst✝² : Structure L P
α : Type u'
β : Type v'
n✝¹ : ℕ
inst✝¹ : Structure L' M
φ : L →ᴸ L'
inst✝ : IsExpansionOn φ M
n : ℕ
v : α → M
xs✝ : Fin n → M
n✝ : ℕ
xs : Fin n✝ → M
⊢ Realize (onBoundedFormula φ falsum) v xs ↔ Realize falsum v xs

tactic: simp only [onBoundedFormula, realize_bdEqual, realize_onTerm]
state_before: case equal
L : Language
L' : Language
M : Type w
N : Type ?u.231167
P : Type ?u.231170
inst✝⁴ : Structure L M
inst✝³ : Structure L N
inst✝² : Structure L P
α : Type u'
β : Type v'
n✝¹ : ℕ
inst✝¹ : Structure L' M
φ : L →ᴸ L'
inst✝ : IsExpansionOn φ M
n : ℕ
v : α → M
xs✝ : Fin n → M
n✝ : ℕ
t₁✝ t₂✝ : Term L (α ⊕ Fin n✝)
xs : Fin n✝ → M
⊢ Realize (onBoundedFormula φ (equal t₁✝ t₂✝)) v xs ↔ Realize (equal t₁✝ t₂✝) v xs

tactic: rfl
state_before: case equal
L : Language
L' : Language
M : Type w
N : Type ?u.231167
P : Type ?u.231170
inst✝⁴ : Structure L M
inst✝³ : Structure L N
inst✝² : Structure L P
α : Type u'
β : Type v'
n✝¹ : ℕ
inst✝¹ : Structure L' M
φ : L →ᴸ L'
inst✝ : IsExpansionOn φ M
n : ℕ
v : α → M
xs✝ : Fin n → M
n✝ : ℕ
t₁✝ t₂✝ : Term L (α ⊕ Fin n✝)
xs : Fin n✝ → M
⊢ Term.realize (Sum.elim v xs) t₁✝ = Term.realize (Sum.elim v xs) t₂✝ ↔ Realize (equal t₁✝ t₂✝) v xs

tactic: simp only [onBoundedFormula, realize_rel, LHom.map_onRelation,
  Function.comp_apply, realize_onTerm]
state_before: case rel
L : Language
L' : Language
M : Type w
N : Type ?u.231167
P : Type ?u.231170
inst✝⁴ : Structure L M
inst✝³ : Structure L N
inst✝² : Structure L P
α : Type u'
β : Type v'
n✝¹ : ℕ
inst✝¹ : Structure L' M
φ : L →ᴸ L'
inst✝ : IsExpansionOn φ M
n : ℕ
v : α → M
xs✝ : Fin n → M
n✝ l✝ : ℕ
R✝ : Relations L l✝
ts✝ : Fin l✝ → Term L (α ⊕ Fin n✝)
xs : Fin n✝ → M
⊢ Realize (onBoundedFormula φ (rel R✝ ts✝)) v xs ↔ Realize (rel R✝ ts✝) v xs

tactic: rfl
state_before: case rel
L : Language
L' : Language
M : Type w
N : Type ?u.231167
P : Type ?u.231170
inst✝⁴ : Structure L M
inst✝³ : Structure L N
inst✝² : Structure L P
α : Type u'
β : Type v'
n✝¹ : ℕ
inst✝¹ : Structure L' M
φ : L →ᴸ L'
inst✝ : IsExpansionOn φ M
n : ℕ
v : α → M
xs✝ : Fin n → M
n✝ l✝ : ℕ
R✝ : Relations L l✝
ts✝ : Fin l✝ → Term L (α ⊕ Fin n✝)
xs : Fin n✝ → M
⊢ (RelMap R✝ fun i => Term.realize (Sum.elim v xs) (ts✝ i)) ↔ Realize (rel R✝ ts✝) v xs

tactic: simp only [onBoundedFormula, ih1, ih2, realize_imp]
state_before: case imp
L : Language
L' : Language
M : Type w
N : Type ?u.231167
P : Type ?u.231170
inst✝⁴ : Structure L M
inst✝³ : Structure L N
inst✝² : Structure L P
α : Type u'
β : Type v'
n✝¹ : ℕ
inst✝¹ : Structure L' M
φ : L →ᴸ L'
inst✝ : IsExpansionOn φ M
n : ℕ
v : α → M
xs✝ : Fin n → M
n✝ : ℕ
f₁✝ f₂✝ : BoundedFormula L α n✝
ih1 : ∀ {xs : Fin n✝ → M}, Realize (onBoundedFormula φ f₁✝) v xs ↔ Realize f₁✝ v xs
ih2 : ∀ {xs : Fin n✝ → M}, Realize (onBoundedFormula φ f₂✝) v xs ↔ Realize f₂✝ v xs
xs : Fin n✝ → M
⊢ Realize (onBoundedFormula φ (f₁✝ ⟹ f₂✝)) v xs ↔ Realize (f₁✝ ⟹ f₂✝) v xs

tactic: simp only [onBoundedFormula, ih3, realize_all]
state_before: case all
L : Language
L' : Language
M : Type w
N : Type ?u.231167
P : Type ?u.231170
inst✝⁴ : Structure L M
inst✝³ : Structure L N
inst✝² : Structure L P
α : Type u'
β : Type v'
n✝¹ : ℕ
inst✝¹ : Structure L' M
φ : L →ᴸ L'
inst✝ : IsExpansionOn φ M
n : ℕ
v : α → M
xs✝ : Fin n → M
n✝ : ℕ
f✝ : BoundedFormula L α (n✝ + 1)
ih3 : ∀ {xs : Fin (n✝ + 1) → M}, Realize (onBoundedFormula φ f✝) v xs ↔ Realize f✝ v xs
xs : Fin n✝ → M
⊢ Realize (onBoundedFormula φ (∀'f✝)) v xs ↔ Realize (∀'f✝) v xs