Theorem: LO.FirstOrder.Semiterm.val_func₂ (Logic/FirstOrder/Basic/Semantics/Semantics.lean)

State before:
n n₁ n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
e : Fin n → M
e₁ : Fin n₁ → M
e₂ : Fin n₂ → M
ε : μ → M
ε₁ : μ₁ → M
ε₂ : μ₂ → M
f : L.Func 2
t u : Semiterm L μ n
⊢ val s e ε (func f ![t, u]) = Structure.func f ![val s e ε t, val s e ε u]
Tactic:
simp [val_func]
State after:
n n₁ n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
e : Fin n → M
e₁ : Fin n₁ → M
e₂ : Fin n₂ → M
ε : μ → M
ε₁ : μ₁ → M
ε₂ : μ₂ → M
f : L.Func 2
t u : Semiterm L μ n
⊢ (Structure.func f fun i => val s e ε (![t, u] i)) = Structure.func f ![val s e ε t, val s e ε u]

State before:
n n₁ n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
e : Fin n → M
e₁ : Fin n₁ → M
e₂ : Fin n₂ → M
ε : μ → M
ε₁ : μ₁ → M
ε₂ : μ₂ → M
f : L.Func 2
t u : Semiterm L μ n
⊢ (Structure.func f fun i => val s e ε (![t, u] i)) = Structure.func f ![val s e ε t, val s e ε u]
Tactic:
congr
State after:
case e_a
n n₁ n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
e : Fin n → M
e₁ : Fin n₁ → M
e₂ : Fin n₂ → M
ε : μ → M
ε₁ : μ₁ → M
ε₂ : μ₂ → M
f : L.Func 2
t u : Semiterm L μ n
⊢ (fun i => val s e ε (![t, u] i)) = ![val s e ε t, val s e ε u]

State before:
case e_a
n n₁ n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
e : Fin n → M
e₁ : Fin n₁ → M
e₂ : Fin n₂ → M
ε : μ → M
ε₁ : μ₁ → M
ε₂ : μ₂ → M
f : L.Func 2
t u : Semiterm L μ n
⊢ (fun i => val s e ε (![t, u] i)) = ![val s e ε t, val s e ε u]
Tactic:
funext i
State after:
case e_a.h
n n₁ n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
e : Fin n → M
e₁ : Fin n₁ → M
e₂ : Fin n₂ → M
ε : μ → M
ε₁ : μ₁ → M
ε₂ : μ₂ → M
f : L.Func 2
t u : Semiterm L μ n
i : Fin 2
⊢ val s e ε (![t, u] i) = ![val s e ε t, val s e ε u] i

State before:
case e_a.h
n n₁ n₂ : ℕ
L : Language
μ : Type v
μ₁ : Type v₁
μ₂ : Type v₂
M : Type w
s : Structure L M
e : Fin n → M
e₁ : Fin n₁ → M
e₂ : Fin n₂ → M
ε : μ → M
ε₁ : μ₁ → M
ε₂ : μ₂ → M
f : L.Func 2
t u : Semiterm L μ n
i : Fin 2
⊢ val s e ε (![t, u] i) = ![val s e ε t, val s e ε u] i
Tactic:
cases' i using Fin.cases with i <;> simp
State after:
no goals