[Merged by Bors] - feat: column and row partitioned matrices#6052
[Merged by Bors] - feat: column and row partitioned matrices#6052MohanadAhmed wants to merge 14 commits intomasterfrom
Conversation
Vierkantor
left a comment
There was a problem hiding this comment.
Sorry for taking a while to get around to your review. Overall I like the structure of your work, there are just a few things that we need to fill in and clean up.
I propose some extra lemmas that will noticeably change your proofs, so I will look at the style of proofs next time.
| exact ⟨(fun h => ⟨fun i j => (h i).1 j, fun _ _ => (h _).2 _⟩), | ||
| (fun h => (fun _ => ⟨(h.1 _), (h.2 _)⟩))⟩ | ||
|
|
||
| lemma fromRows_toRows (A : Matrix (M₁ ⊕ M₂) N R) : A = fromRows A.toRows₁ A.toRows₂ := by |
There was a problem hiding this comment.
I would move this to be right after fromColumns_toColumns, so that each column result is followed by the corresponding result on rows.
| /-- Concatenate together two matrices A₁[M₁ × N] and A₂[M₂ × N] with the same columns (N) to get a | ||
| bigger matrix indexed by [(M₁ ⊕ M₂) × N] -/ |
There was a problem hiding this comment.
I'm not familiar with the A₁[M₁ × N] notation, maybe you have a reference for it?
There was a problem hiding this comment.
I just meant the matrix is of rows
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
Vierkantor
left a comment
There was a problem hiding this comment.
I went through and cleaned up the proofs. If you're happy with the changes, then this looks ready to me.
Thanks!
bors d+
|
✌️ MohanadAhmed can now approve this pull request. To approve and merge a pull request, simply reply with |
- Rfl proofs of simp lemmas. - ext combined with simp for partitioned matrix equalities - pass arguments into simp when they are not simp lemmas i.e. mul_apply Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
bors r+ |
This file provides the basic definitions of matrices composed from columns and rows. The concatenation of two matrices with the same row indices can be expressed as `A = fromColumns A₁ A₂` the concatenation of two matrices with the same column indices can be expressed as `B = fromRows B₁ B₂`. We then provide a few lemmas that deal with the products of these with each other and with block matrices. Two particular lemmas `fromColumns_mul_fromRows_eq_one_comm` and `equiv_compl_fromColumns_mul_fromRows_eq_one_comm` deal with the case of matrix multiplication that gives one as a result. This gives a crude (but usable) replacement for the `Invertible` type which can only be applied to square matrices (with the same index type for rows and columns).
|
Pull request successfully merged into master. Build succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
This file provides the basic definitions of matrices composed from columns and rows. The concatenation of two matrices with the same row indices can be expressed as `A = fromColumns A₁ A₂` the concatenation of two matrices with the same column indices can be expressed as `B = fromRows B₁ B₂`. We then provide a few lemmas that deal with the products of these with each other and with block matrices. Two particular lemmas `fromColumns_mul_fromRows_eq_one_comm` and `equiv_compl_fromColumns_mul_fromRows_eq_one_comm` deal with the case of matrix multiplication that gives one as a result. This gives a crude (but usable) replacement for the `Invertible` type which can only be applied to square matrices (with the same index type for rows and columns).
This file provides the basic definitions of matrices composed from columns and rows. The concatenation of two matrices with the same row indices can be expressed as `A = fromColumns A₁ A₂` the concatenation of two matrices with the same column indices can be expressed as `B = fromRows B₁ B₂`. We then provide a few lemmas that deal with the products of these with each other and with block matrices. Two particular lemmas `fromColumns_mul_fromRows_eq_one_comm` and `equiv_compl_fromColumns_mul_fromRows_eq_one_comm` deal with the case of matrix multiplication that gives one as a result. This gives a crude (but usable) replacement for the `Invertible` type which can only be applied to square matrices (with the same index type for rows and columns).
This file provides the basic definitions of matrices composed from columns and rows. The concatenation of two matrices with the same row indices can be expressed as `A = fromColumns A₁ A₂` the concatenation of two matrices with the same column indices can be expressed as `B = fromRows B₁ B₂`. We then provide a few lemmas that deal with the products of these with each other and with block matrices. Two particular lemmas `fromColumns_mul_fromRows_eq_one_comm` and `equiv_compl_fromColumns_mul_fromRows_eq_one_comm` deal with the case of matrix multiplication that gives one as a result. This gives a crude (but usable) replacement for the `Invertible` type which can only be applied to square matrices (with the same index type for rows and columns).
This file provides the basic definitions of matrices composed from columns and rows. The concatenation of two matrices with the same row indices can be expressed as
A = fromColumns A₁ A₂the concatenation of two matrices with the same column indices can be expressed asB = fromRows B₁ B₂.We then provide a few lemmas that deal with the products of these with each other and with block matrices. Two particular lemmas
fromColumns_mul_fromRows_eq_one_commandequiv_compl_fromColumns_mul_fromRows_eq_one_commdeal with the case of matrix multiplication that gives one as a result. This gives a crude (but usable) replacement for theInvertibletype which can only be applied to square matrices (with the same index type for rows and columns).