case h
l : Type u_4
m : Type u_5
n : Type u_1
o : Type u_2
p : Type ?u.78326
q : Type ?u.78329
m' : o → Type ?u.78334
n' : o → Type ?u.78339
p' : o → Type ?u.78344
R : Type ?u.78347
S : Type ?u.78350
α : Type u_3
β : Type ?u.78356
inst✝² : Fintype n
inst✝¹ : Fintype o
inst✝ : NonUnitalNonAssocSemiring α
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
x : n ⊕ o → α
i : l ⊕ m
⊢ vecMul x (fromBlocks A B C D) i =
    Sum.elim (vecMul (x ∘ Sum.inl) A + vecMul (x ∘ Sum.inr) C) (vecMul (x ∘ Sum.inl) B + vecMul (x ∘ Sum.inr) D) i
l : Type u_4
m : Type u_5
n : Type u_1
o : Type u_2
p : Type ?u.78326
q : Type ?u.78329
m' : o → Type ?u.78334
n' : o → Type ?u.78339
p' : o → Type ?u.78344
R : Type ?u.78347
S : Type ?u.78350
α : Type u_3
β : Type ?u.78356
inst✝² : Fintype n
inst✝¹ : Fintype o
inst✝ : NonUnitalNonAssocSemiring α
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
x : n ⊕ o → α
⊢ vecMul x (fromBlocks A B C D) =
    Sum.elim (vecMul (x ∘ Sum.inl) A + vecMul (x ∘ Sum.inr) C) (vecMul (x ∘ Sum.inl) B + vecMul (x ∘ Sum.inr) D)
ext i
no goals
case h
l : Type u_4
m : Type u_5
n : Type u_1
o : Type u_2
p : Type ?u.78326
q : Type ?u.78329
m' : o → Type ?u.78334
n' : o → Type ?u.78339
p' : o → Type ?u.78344
R : Type ?u.78347
S : Type ?u.78350
α : Type u_3
β : Type ?u.78356
inst✝² : Fintype n
inst✝¹ : Fintype o
inst✝ : NonUnitalNonAssocSemiring α
A : Matrix n l α
B : Matrix n m α
C : Matrix o l α
D : Matrix o m α
x : n ⊕ o → α
i : l ⊕ m
⊢ vecMul x (fromBlocks A B C D) i =
    Sum.elim (vecMul (x ∘ Sum.inl) A + vecMul (x ∘ Sum.inr) C) (vecMul (x ∘ Sum.inl) B + vecMul (x ∘ Sum.inr) D) i
cases i <;> simp [vecMul, dotProduct]