@@ -94,11 +94,11 @@ lemma toColumns₂_apply (A : Matrix m (n₁ ⊕ n₂) R) (i : m) (j : n₂) :
94
94
(toColumns₂ A) i j = A i (Sum.inr j) := rfl
95
95
96
96
@[simp]
97
- lemma toColumns₁_fromColumns (A₁ : Matrix m n₁ R) (A₂ : Matrix m n₂ R) :
97
+ lemma toColumns₁_fromColumns (A₁ : Matrix m n₁ R) (A₂ : Matrix m n₂ R) :
98
98
toColumns₁ (fromColumns A₁ A₂) = A₁ := rfl
99
99
100
100
@[simp]
101
- lemma toColumns₂_fromColumns (A₁ : Matrix m n₁ R) (A₂ : Matrix m n₂ R) :
101
+ lemma toColumns₂_fromColumns (A₁ : Matrix m n₁ R) (A₂ : Matrix m n₂ R) :
102
102
toColumns₂ (fromColumns A₁ A₂) = A₂ := rfl
103
103
104
104
@[simp]
@@ -144,14 +144,38 @@ section Semiring
144
144
145
145
variable [Semiring R]
146
146
147
+ @[simp]
148
+ lemma fromRows_mulVec (A₁ : Matrix m₁ n R) (A₂ : Matrix m₂ n R) (v : n → R) :
149
+ fromRows A₁ A₂ *ᵥ v = Sum.elim (A₁ *ᵥ v) (A₂ *ᵥ v) := by
150
+ ext (_ | _) <;> rfl
151
+
152
+ @[simp]
153
+ lemma vecMul_fromColumns (B₁ : Matrix m n₁ R) (B₂ : Matrix m n₂ R) (v : m → R) :
154
+ v ᵥ* fromColumns B₁ B₂ = Sum.elim (v ᵥ* B₁) (v ᵥ* B₂) := by
155
+ ext (_ | _) <;> rfl
156
+
157
+ @[simp]
158
+ lemma sum_elim_vecMul_fromRows (B₁ : Matrix m₁ n R) (B₂ : Matrix m₂ n R)
159
+ (v₁ : m₁ → R) (v₂ : m₂ → R) :
160
+ Sum.elim v₁ v₂ ᵥ* fromRows B₁ B₂ = v₁ ᵥ* B₁ + v₂ ᵥ* B₂ := by
161
+ ext
162
+ simp [Matrix.vecMul, fromRows, dotProduct]
163
+
164
+ @[simp]
165
+ lemma fromColumns_mulVec_sum_elim (A₁ : Matrix m n₁ R) (A₂ : Matrix m n₂ R)
166
+ (v₁ : n₁ → R) (v₂ : n₂ → R) :
167
+ fromColumns A₁ A₂ *ᵥ Sum.elim v₁ v₂ = A₁ *ᵥ v₁ + A₂ *ᵥ v₂ := by
168
+ ext
169
+ simp [Matrix.mulVec, fromColumns]
170
+
147
171
@[simp]
148
172
lemma fromRows_mul (A₁ : Matrix m₁ n R) (A₂ : Matrix m₂ n R) (B : Matrix n m R) :
149
- ( fromRows A₁ A₂) * B = fromRows (A₁ * B) (A₂ * B) := by
173
+ fromRows A₁ A₂ * B = fromRows (A₁ * B) (A₂ * B) := by
150
174
ext (_ | _) _ <;> simp [mul_apply]
151
175
152
176
@[simp]
153
177
lemma mul_fromColumns (A : Matrix m n R) (B₁ : Matrix n n₁ R) (B₂ : Matrix n n₂ R) :
154
- A * ( fromColumns B₁ B₂) = fromColumns (A * B₁) (A * B₂) := by
178
+ A * fromColumns B₁ B₂ = fromColumns (A * B₁) (A * B₂) := by
155
179
ext _ (_ | _) <;> simp [mul_apply]
156
180
157
181
@[simp]
0 commit comments