apply dotProduct_eq_zero_of_mem_span hy
case refine_2
l : Type u_1
m✝ : Type u_2
m' : Type u_3
n✝ : Type u_4
n' : Type u_5
n₁ : Type u_6
n₂ : Type u_7
o : Type u_8
α : Type u_9
R✝ : Type u_10
A✝¹ B✝ : Matrix m✝ n✝ R✝
s✝ : Set m✝
t✝ : Set n✝
m : Type u_11
n : Type u_12
R : Type u_13
s : Set m
t : Set n
A✝ B : Matrix m n R
K : Type u_14
inst✝¹ : Field K
A : Matrix m n K
inst✝ : Fintype m
x✝ : ∃ g, ∑ i : m, g i • A.rowFun i = 0 ∧ ∃ i, ¬g i = 0
x : m → K
hx : ∑ i : m, x i • A.rowFun i = 0
h0 : ∃ i, ¬x i = 0
y : m → K
hy : y ∈ A.colSpace
⊢ ∑ x_1 : m, x x_1 • y x_1 = 0
case refine_2
l : Type u_1
m✝ : Type u_2
m' : Type u_3
n✝ : Type u_4
n' : Type u_5
n₁ : Type u_6
n₂ : Type u_7
o : Type u_8
α : Type u_9
R✝ : Type u_10
A✝¹ B✝ : Matrix m✝ n✝ R✝
s✝ : Set m✝
t✝ : Set n✝
m : Type u_11
n : Type u_12
R : Type u_13
s : Set m
t : Set n
A✝ B : Matrix m n R
K : Type u_14
inst✝¹ : Field K
A : Matrix m n K
inst✝ : Fintype m
x✝ : ∃ g, ∑ i : m, g i • A.rowFun i = 0 ∧ ∃ i, ¬g i = 0
x : m → K
hx : ∑ i : m, x i • A.rowFun i = 0
h0 : ∃ i, ¬x i = 0
y : m → K
hy : y ∈ A.colSpace
⊢ ∀ z ∈ range Aᵀ.rowFun, (fun i => x i) ⬝ᵥ z = 0