case zero
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
M : Fin Nat.zero → Type u_2
inst✝¹ : (i : Fin Nat.zero) → AddCommMonoid (M i)
inst✝ : (i : Fin Nat.zero) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin Nat.zero → Type u_4
e : (i : Fin Nat.zero) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin Nat.zero) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
⊢ f = g

case succ
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
⊢ f = g
R : Type u_1
ι : Type ?u.528
n : ℕ
M : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : AddCommMonoid M₃
inst✝³ : (i : Fin n) → AddCommMonoid (M i)
inst✝² : (i : Fin n) → Module R (M i)
inst✝¹ : Module R M₂
inst✝ : Module R M₃
f g : MultilinearMap R M M₂
ι₁ : Fin n → Type u_4
e : (i : Fin n) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin n) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
⊢ f = g
induction' n with m hm
case zero.H
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
M : Fin Nat.zero → Type u_2
inst✝¹ : (i : Fin Nat.zero) → AddCommMonoid (M i)
inst✝ : (i : Fin Nat.zero) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin Nat.zero → Type u_4
e : (i : Fin Nat.zero) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin Nat.zero) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
x : (i : Fin Nat.zero) → M i
⊢ ↑f x = ↑g x
case zero
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
M : Fin Nat.zero → Type u_2
inst✝¹ : (i : Fin Nat.zero) → AddCommMonoid (M i)
inst✝ : (i : Fin Nat.zero) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin Nat.zero → Type u_4
e : (i : Fin Nat.zero) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin Nat.zero) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
⊢ f = g
ext x
case h.e'_3.h.e'_6.h
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
M : Fin Nat.zero → Type u_2
inst✝¹ : (i : Fin Nat.zero) → AddCommMonoid (M i)
inst✝ : (i : Fin Nat.zero) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin Nat.zero → Type u_4
e : (i : Fin Nat.zero) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin Nat.zero) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
x✝ : (i : Fin Nat.zero) → M i
x : Fin Nat.zero
⊢ x✝ x = ↑(e x) (finZeroElim x)
case h.e'_3.h.e'_6.h
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
M : Fin Nat.zero → Type u_2
inst✝¹ : (i : Fin Nat.zero) → AddCommMonoid (M i)
inst✝ : (i : Fin Nat.zero) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin Nat.zero → Type u_4
e : (i : Fin Nat.zero) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin Nat.zero) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
x : (i : Fin Nat.zero) → M i
x✝ : Fin Nat.zero
⊢ x x✝ = ↑(e x✝) (finZeroElim x✝)
rename_i x
no goals
case h.e'_3.h.e'_6.h
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
M : Fin Nat.zero → Type u_2
inst✝¹ : (i : Fin Nat.zero) → AddCommMonoid (M i)
inst✝ : (i : Fin Nat.zero) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin Nat.zero → Type u_4
e : (i : Fin Nat.zero) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin Nat.zero) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
x✝ : (i : Fin Nat.zero) → M i
x : Fin Nat.zero
⊢ x✝ x = ↑(e x) (finZeroElim x)
apply finZeroElim x
case succ.a
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
⊢ (fun x => curryLeft x) f = (fun x => curryLeft x) g
case succ
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
⊢ f = g
apply Function.LeftInverse.injective uncurry_curryLeft
case succ.a
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
⊢ ∀ (i : ι₁ 0), ↑((fun x => curryLeft x) f) (↑(e 0) i) = ↑((fun x => curryLeft x) g) (↑(e 0) i)
case succ.a
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
⊢ (fun x => curryLeft x) f = (fun x => curryLeft x) g
refine' Basis.ext (e 0) _
case succ.a
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
⊢ ↑((fun x => curryLeft x) f) (↑(e 0) i) = ↑((fun x => curryLeft x) g) (↑(e 0) i)
case succ.a
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
⊢ ∀ (i : ι₁ 0), ↑((fun x => curryLeft x) f) (↑(e 0) i) = ↑((fun x => curryLeft x) g) (↑(e 0) i)
intro i
case succ.a
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
⊢ ∀ (v : (i : Fin m) → ι₁ (Fin.succ i)),
    (↑(↑((fun x => curryLeft x) f) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (v i)) =
      ↑(↑((fun x => curryLeft x) g) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (v i)
case succ.a
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
⊢ ↑((fun x => curryLeft x) f) (↑(e 0) i) = ↑((fun x => curryLeft x) g) (↑(e 0) i)
apply hm (Fin.tail e)
case succ.a
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
⊢ (↑(↑((fun x => curryLeft x) f) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (j i)) =
    ↑(↑((fun x => curryLeft x) g) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (j i)
case succ.a
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
⊢ ∀ (v : (i : Fin m) → ι₁ (Fin.succ i)),
    (↑(↑((fun x => curryLeft x) f) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (v i)) =
      ↑(↑((fun x => curryLeft x) g) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (v i)
intro j
case h.e'_2
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
⊢ (↑(↑((fun x => curryLeft x) f) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (j i)) = ↑f fun i_1 => ↑(e i_1) (Fin.cons i j i_1)

case h.e'_3
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
⊢ (↑(↑((fun x => curryLeft x) g) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (j i)) = ↑g fun i_1 => ↑(e i_1) (Fin.cons i j i_1)
case succ.a
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
⊢ (↑(↑((fun x => curryLeft x) f) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (j i)) =
    ↑(↑((fun x => curryLeft x) g) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (j i)
convert h (Fin.cons i j)
no goals
case h.e'_2
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
⊢ (↑(↑((fun x => curryLeft x) f) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (j i)) = ↑f fun i_1 => ↑(e i_1) (Fin.cons i j i_1)

case h.e'_3
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
⊢ (↑(↑((fun x => curryLeft x) g) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (j i)) = ↑g fun i_1 => ↑(e i_1) (Fin.cons i j i_1)
iterate 2
  rw [curryLeft_apply]
  congr 1 with x
  refine' Fin.cases rfl (fun x => _) x
  dsimp [Fin.tail]
  rw [Fin.cons_succ, Fin.cons_succ]
case h.e'_3
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
⊢ ↑g (Fin.cons (↑(e 0) i) fun i => ↑(Fin.tail e i) (j i)) = ↑g fun i_1 => ↑(e i_1) (Fin.cons i j i_1)
case h.e'_3
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
⊢ (↑(↑((fun x => curryLeft x) g) (↑(e 0) i)) fun i => ↑(Fin.tail e i) (j i)) = ↑g fun i_1 => ↑(e i_1) (Fin.cons i j i_1)
rw [curryLeft_apply]
case h.e'_3.h.e_6.h.h
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
x : Fin (m + 1)
⊢ Fin.cons (↑(e 0) i) (fun i => ↑(Fin.tail e i) (j i)) x = ↑(e x) (Fin.cons i j x)
case h.e'_3
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
⊢ ↑g (Fin.cons (↑(e 0) i) fun i => ↑(Fin.tail e i) (j i)) = ↑g fun i_1 => ↑(e i_1) (Fin.cons i j i_1)
congr 1 with x
case h.e'_3.h.e_6.h.h
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
x✝ : Fin (m + 1)
x : Fin m
⊢ Fin.cons (↑(e 0) i) (fun i => ↑(Fin.tail e i) (j i)) (Fin.succ x) = ↑(e (Fin.succ x)) (Fin.cons i j (Fin.succ x))
case h.e'_3.h.e_6.h.h
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
x : Fin (m + 1)
⊢ Fin.cons (↑(e 0) i) (fun i => ↑(Fin.tail e i) (j i)) x = ↑(e x) (Fin.cons i j x)
refine' Fin.cases rfl (fun x => _) x
case h.e'_3.h.e_6.h.h
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
x✝ : Fin (m + 1)
x : Fin m
⊢ Fin.cons (↑(e 0) i) (fun i => ↑(e (Fin.succ i)) (j i)) (Fin.succ x) = ↑(e (Fin.succ x)) (Fin.cons i j (Fin.succ x))
case h.e'_3.h.e_6.h.h
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
x✝ : Fin (m + 1)
x : Fin m
⊢ Fin.cons (↑(e 0) i) (fun i => ↑(Fin.tail e i) (j i)) (Fin.succ x) = ↑(e (Fin.succ x)) (Fin.cons i j (Fin.succ x))
dsimp [Fin.tail]
no goals
case h.e'_3.h.e_6.h.h
R : Type u_1
ι : Type ?u.528
n : ℕ
M✝ : Fin n → Type u_2
M₂ : Type u_3
M₃ : Type ?u.541
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : AddCommMonoid M₃
inst✝⁵ : (i : Fin n) → AddCommMonoid (M✝ i)
inst✝⁴ : (i : Fin n) → Module R (M✝ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
f✝ g✝ : MultilinearMap R M✝ M₂
ι₁✝ : Fin n → Type u_4
e✝ : (i : Fin n) → Basis (ι₁✝ i) R (M✝ i)
h✝ : ∀ (v : (i : Fin n) → ι₁✝ i), (↑f✝ fun i => ↑(e✝ i) (v i)) = ↑g✝ fun i => ↑(e✝ i) (v i)
m : ℕ
hm :
  ∀ {M : Fin m → Type u_2} [inst : (i : Fin m) → AddCommMonoid (M i)] [inst_1 : (i : Fin m) → Module R (M i)]
    {f g : MultilinearMap R M M₂} {ι₁ : Fin m → Type u_4} (e : (i : Fin m) → Basis (ι₁ i) R (M i)),
    (∀ (v : (i : Fin m) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)) → f = g
M : Fin (Nat.succ m) → Type u_2
inst✝¹ : (i : Fin (Nat.succ m)) → AddCommMonoid (M i)
inst✝ : (i : Fin (Nat.succ m)) → Module R (M i)
f g : MultilinearMap R M M₂
ι₁ : Fin (Nat.succ m) → Type u_4
e : (i : Fin (Nat.succ m)) → Basis (ι₁ i) R (M i)
h : ∀ (v : (i : Fin (Nat.succ m)) → ι₁ i), (↑f fun i => ↑(e i) (v i)) = ↑g fun i => ↑(e i) (v i)
i : ι₁ 0
j : (i : Fin m) → ι₁ (Fin.succ i)
x✝ : Fin (m + 1)
x : Fin m
⊢ Fin.cons (↑(e 0) i) (fun i => ↑(e (Fin.succ i)) (j i)) (Fin.succ x) = ↑(e (Fin.succ x)) (Fin.cons i j (Fin.succ x))
rw [Fin.cons_succ, Fin.cons_succ]