induction t generalizing x y
L L' : Language
inst✝³ : L.Eq
T : Theory L
ι : Interpretation T L'
M : Type u
inst✝² : Nonempty M
s : Structure L M
inst✝¹ : Structure.Eq L M
inst✝ : M ⊧ₘ* T
n : ℕ
t : Semiterm L' Empty n
y : ι.Sub M
x : Fin n → ι.Sub M
⊢ (Evalbm M (↑y :> fun i => ↑(x i))) (ι.varEquals t) ↔ y = Semiterm.valbm (ι.Sub M) x t
case bvar
L L' : Language
inst✝³ : L.Eq
T : Theory L
ι : Interpretation T L'
M : Type u
inst✝² : Nonempty M
s : Structure L M
inst✝¹ : Structure.Eq L M
inst✝ : M ⊧ₘ* T
n : ℕ
a✝ : Fin n
y : ι.Sub M
x : Fin n → ι.Sub M
⊢ (Evalbm M (↑y :> fun i => ↑(x i))) (ι.varEquals #a✝) ↔ y = Semiterm.valbm (ι.Sub M) x #a✝

case fvar
L L' : Language
inst✝³ : L.Eq
T : Theory L
ι : Interpretation T L'
M : Type u
inst✝² : Nonempty M
s : Structure L M
inst✝¹ : Structure.Eq L M
inst✝ : M ⊧ₘ* T
n : ℕ
a✝ : Empty
y : ι.Sub M
x : Fin n → ι.Sub M
⊢ (Evalbm M (↑y :> fun i => ↑(x i))) (ι.varEquals &a✝) ↔ y = Semiterm.valbm (ι.Sub M) x &a✝

case func
L L' : Language
inst✝³ : L.Eq
T : Theory L
ι : Interpretation T L'
M : Type u
inst✝² : Nonempty M
s : Structure L M
inst✝¹ : Structure.Eq L M
inst✝ : M ⊧ₘ* T
n arity✝ : ℕ
a✝¹ : L'.Func arity✝
a✝ : Fin arity✝ → Semiterm L' Empty n
a_ih✝ :
  ∀ (a : Fin arity✝) {y : ι.Sub M} {x : Fin n → ι.Sub M},
    (Evalbm M (↑y :> fun i => ↑(x i))) (ι.varEquals (a✝ a)) ↔ y = Semiterm.valbm (ι.Sub M) x (a✝ a)
y : ι.Sub M
x : Fin n → ι.Sub M
⊢ (Evalbm M (↑y :> fun i => ↑(x i))) (ι.varEquals (Semiterm.func a✝¹ a✝)) ↔
    y = Semiterm.valbm (ι.Sub M) x (Semiterm.func a✝¹ a✝)