aboutsummaryrefslogtreecommitdiff
path: root/mathcomp/algebra/mxalgebra.v
diff options
context:
space:
mode:
authorCyril Cohen2020-09-08 03:46:31 +0200
committerCyril Cohen2020-10-26 17:19:25 +0100
commit50ae8e1141ee46aa24f6d4ed61def8d34b1ebcd6 (patch)
tree04b6f62984c2dce25759905e645687e7e57c73eb /mathcomp/algebra/mxalgebra.v
parent03003d87b98a836e692ffe46cba9fe6041336b91 (diff)
stability by commutation
Diffstat (limited to 'mathcomp/algebra/mxalgebra.v')
-rw-r--r--mathcomp/algebra/mxalgebra.v24
1 files changed, 24 insertions, 0 deletions
diff --git a/mathcomp/algebra/mxalgebra.v b/mathcomp/algebra/mxalgebra.v
index adad2fc..7e213b8 100644
--- a/mathcomp/algebra/mxalgebra.v
+++ b/mathcomp/algebra/mxalgebra.v
@@ -2272,6 +2272,30 @@ Qed.
Lemma stablemx_unit (n : nat) (V f : 'M[F]_n) : V \in unitmx -> stablemx V f.
Proof. by move=> Vunit; rewrite submx_full ?row_full_unit. Qed.
+Section Commutation.
+
+Variable (n : nat).
+Implicit Types (f g : 'M[F]_n).
+
+Lemma comm_mx_stable (f g : 'M[F]_n) : comm_mx f g -> stablemx f g.
+Proof. by move=> comm_fg; rewrite [_ *m _]comm_fg mulmx_sub. Qed.
+
+Lemma comm_mx_stable_ker (f g : 'M[F]_n) :
+ comm_mx f g -> stablemx (kermx f) g.
+Proof.
+move=> comm_fg; apply/sub_kermxP.
+by rewrite -mulmxA -[g *m _]comm_fg mulmxA mulmx_ker mul0mx.
+Qed.
+
+Lemma comm_mx_stable_eigenspace (f g : 'M[F]_n) a :
+ comm_mx f g -> stablemx (eigenspace f a) g.
+Proof.
+move=> cfg; rewrite comm_mx_stable_ker//.
+by apply/comm_mx_sym/comm_mxB => //; apply:comm_mxC.
+Qed.
+
+End Commutation.
+
End Stability.
Section DirectSums.