:: Some Properties Of Some Special Matrices :: by Xiaopeng Yue , Xiquan Liang and Zhongpin Sun :: :: Received December 7, 2005 :: Copyright (c) 2005-2019 Association of Mizar Users :: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland). :: This code can be distributed under the GNU General Public Licence :: version 3.0 or later, or the Creative Commons Attribution-ShareAlike :: License version 3.0 or later, subject to the binding interpretation :: detailed in file COPYING.interpretation. :: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these :: licenses, or see http://www.gnu.org/licenses/gpl.html and :: http://creativecommons.org/licenses/by-sa/3.0/. environ vocabularies NAT_1, VECTSP_1, SUBSET_1, MATRIX_1, REWRITE1, RELAT_1, MESFUNC1, ALGSTR_0, ARYTM_1, FINSEQ_1, TREES_1, ARYTM_3, SUPINF_2, XXREAL_0, CARD_1, QC_LANG1, ZFMISC_1, RELAT_2, FUNCOP_1, GROUP_1, MATRIX_6, FUNCSDOM, MATRIX_0; notations TARSKI, ZFMISC_1, ORDINAL1, NUMBERS, FINSEQ_1, RLVECT_1, GROUP_1, VECTSP_1, MATRIX_0, STRUCT_0, MATRIX_1, MATRIX_3, MATRIX_4, XXREAL_0; constructors XXREAL_0, FVSUM_1, MATRIX_3, MATRIX_4, MATRIX_1; registrations RELSET_1, XREAL_0, STRUCT_0, VECTSP_1, ORDINAL1, MATRIX_0, MATRIX_1; begin reserve i,j,n for Nat, K for Field, a for Element of K, M,M1,M2,M3,M4 for Matrix of n,K; reserve A for Matrix of K; definition let n be Nat, K be Field, M1,M2 be Matrix of n,K; pred M1 commutes_with M2 means :: MATRIX_6:def 1 M1 * M2 = M2 * M1; reflexivity; symmetry; end; definition let n be Nat,K be Field,M1,M2 be Matrix of n,K; pred M1 is_reverse_of M2 means :: MATRIX_6:def 2 M1*M2 = M2*M1 & M1*M2 = 1.(K,n); symmetry; end; definition let n be Nat, K be Field; let M1 be Matrix of n,K; attr M1 is invertible means :: MATRIX_6:def 3 ex M2 be Matrix of n,K st M1 is_reverse_of M2; end; registration let n; let K be Ring; let M1 be Matrix of n,K; cluster -M1 -> (n,n)-size; end; registration let n; let K be Ring; let M1,M2 be Matrix of n,K; cluster M1+M2 -> (n,n)-size; end; registration let n; let K be Field; let M1,M2 be Matrix of n,K; cluster M1-M2 -> (n,n)-size; end; registration let n; let K be Ring; let M1,M2 be Matrix of n,K; cluster M1*M2 -> (n,n)-size; end; theorem :: MATRIX_6:1 for K being Field, A being Matrix of K holds (0.(K,len A,len A))*A = 0.(K,len A,width A); theorem :: MATRIX_6:2 for K being Field,A being Matrix of K st width A>0 holds A*(0.(K,width A,width A))=0.(K,len A,width A); theorem :: MATRIX_6:3 M1 commutes_with 0.(K,n,n); theorem :: MATRIX_6:4 M1 commutes_with M2 & M2 commutes_with M3 & M1 commutes_with M3 implies M1 commutes_with M2*M3; theorem :: MATRIX_6:5 M1 commutes_with M2 & M1 commutes_with M3 & n>0 implies M1 commutes_with M2+M3; theorem :: MATRIX_6:6 M1 commutes_with 1.(K,n); theorem :: MATRIX_6:7 M2 is_reverse_of M3 & M1 is_reverse_of M3 implies M1=M2; definition let n be Nat, K be Field, M1 be Matrix of n,K; assume M1 is invertible; func M1~ -> Matrix of n,K means :: MATRIX_6:def 4 it is_reverse_of M1; end; theorem :: MATRIX_6:8 (1.(K,n))~ = 1.(K,n) & 1.(K,n) is invertible; registration let K be Field, n be Nat; cluster 1.(K,n) -> invertible; end; registration let K be Field, n be Nat; cluster invertible for Matrix of n, K; end; theorem :: MATRIX_6:9 ((1.(K,n))~)~ = 1.(K,n); theorem :: MATRIX_6:10 (1.(K,n))@ = 1.(K,n); theorem :: MATRIX_6:11 for K being Field, n being Nat holds ((1.(K,n))@)~ = 1.(K,n); theorem :: MATRIX_6:12 M3 is_reverse_of M1 & n>0 implies M1@ is_reverse_of M3@; theorem :: MATRIX_6:13 M is invertible implies M@ is invertible & M@~= M~@; registration let K, n; let M be invertible Matrix of n, K; cluster M@ -> invertible; end; theorem :: MATRIX_6:14 for K being Field, n being Nat, M1,M2,M3,M4 being Matrix of n,K st M3 is_reverse_of M1 & M4 is_reverse_of M2 holds M3*M4 is_reverse_of M2*M1; theorem :: MATRIX_6:15 for K being Field, n being Nat, M1,M2 being Matrix of n,K st M2 is_reverse_of M1 holds M1 commutes_with M2; theorem :: MATRIX_6:16 M is invertible implies M~ is invertible & (M~)~= M; registration let K, n; let M be invertible Matrix of n, K; cluster M~ -> invertible; end; theorem :: MATRIX_6:17 n > 0 & M1*M2=0.(K,n,n) & M1 is invertible implies M1 commutes_with M2; theorem :: MATRIX_6:18 M1=M1*M2 & M1 is invertible implies M1 commutes_with M2; theorem :: MATRIX_6:19 M1=M2*M1 & M1 is invertible implies M1 commutes_with M2; definition let n be Nat, K be Field; let M1 be Matrix of n,K; attr M1 is symmetric means :: MATRIX_6:def 5 M1@=M1; end; registration let n be Nat, K be Field; cluster 1.(K,n) -> symmetric; end; theorem :: MATRIX_6:20 ((n,n)-->a)@ = (n,n)-->a; theorem :: MATRIX_6:21 (n,n)-->a is symmetric; theorem :: MATRIX_6:22 n > 0 & M1 is symmetric & M2 is symmetric implies (M1 commutes_with M2 iff M1*M2 is symmetric); theorem :: MATRIX_6:23 (M1+M2)@=M1@+M2@; theorem :: MATRIX_6:24 M1 is symmetric & M2 is symmetric implies M1+M2 is symmetric; theorem :: MATRIX_6:25 ::: should be a cluster M1 is upper_triangular Matrix of n,K & M1 is lower_triangular Matrix of n,K implies M1 is symmetric; theorem :: MATRIX_6:26 for K being Field,n being Nat,M1 being Matrix of n,K holds (-M1) @=-(M1@); theorem :: MATRIX_6:27 for K being Field, n being Nat, M1 being Matrix of n,K st M1 is symmetric holds -M1 is symmetric; theorem :: MATRIX_6:28 for K being Field,n being Nat,M1,M2 being Matrix of n,K st M1 is symmetric & M2 is symmetric holds M1-M2 is symmetric; definition let n be Nat,K be Field; let M1 be Matrix of n,K; attr M1 is antisymmetric means :: MATRIX_6:def 6 M1@=-M1; end; theorem :: MATRIX_6:29 for K being Fanoian Field,n being Nat,M1 being Matrix of n,K st M1 is symmetric antisymmetric holds M1=0.(K,n,n); theorem :: MATRIX_6:30 for K being Fanoian Field,n,i being Nat,M1 being Matrix of n,K st M1 is antisymmetric & i in Seg n holds M1*(i,i) =0.K; theorem :: MATRIX_6:31 for K being Field,n being Nat,M1,M2 being Matrix of n,K st M1 is antisymmetric & M2 is antisymmetric holds M1+M2 is antisymmetric; theorem :: MATRIX_6:32 for K being Field,n being Nat,M1 being Matrix of n,K st M1 is antisymmetric holds -M1 is antisymmetric; theorem :: MATRIX_6:33 for K being Field,n being Nat,M1,M2 being Matrix of n,K st M1 is antisymmetric & M2 is antisymmetric holds M1-M2 is antisymmetric; theorem :: MATRIX_6:34 n>0 implies M1-M1@ is antisymmetric; theorem :: MATRIX_6:35 n>0 implies (M1 commutes_with M2 iff (M1+M2)*(M1+M2)=M1*M1+M1*M2+M1*M2 +M2*M2); theorem :: MATRIX_6:36 M1 is invertible & M2 is invertible implies M1*M2 is invertible & (M1*M2)~=(M2~)*(M1~); theorem :: MATRIX_6:37 M1 is invertible & M2 is invertible & M1 commutes_with M2 implies M1* M2 is invertible & (M1*M2)~ = (M1~)*(M2~); theorem :: MATRIX_6:38 M1 is invertible & M1*M2=1.(K,n) implies M1 is_reverse_of M2; theorem :: MATRIX_6:39 M2 is invertible & M2*M1=1.(K,n) implies M1 is_reverse_of M2; theorem :: MATRIX_6:40 M1 is invertible & M1 commutes_with M2 implies M1~ commutes_with M2; definition let n be Nat, K be Field; let M1 be Matrix of n,K; attr M1 is Orthogonal means :: MATRIX_6:def 7 M1 is invertible & M1@ = M1~; end; theorem :: MATRIX_6:41 M1*(M1@)=1.(K,n) & M1 is invertible iff M1 is Orthogonal; theorem :: MATRIX_6:42 M1 is invertible & (M1@)*M1=1.(K,n) iff M1 is Orthogonal; theorem :: MATRIX_6:43 M1 is Orthogonal implies (M1@)*M1=M1*(M1@); theorem :: MATRIX_6:44 M1 is Orthogonal & M1 commutes_with M2 implies M1@ commutes_with M2; theorem :: MATRIX_6:45 M1 is invertible & M2 is invertible implies M1*M2 is invertible & (M1*M2)~=M2~*M1~; theorem :: MATRIX_6:46 n > 0 & M1 is Orthogonal & M2 is Orthogonal implies M1*M2 is Orthogonal; theorem :: MATRIX_6:47 M1 is Orthogonal & M1 commutes_with M2 implies M1@ commutes_with M2; theorem :: MATRIX_6:48 n > 0 & M1 commutes_with M2 implies M1+M1 commutes_with M2; theorem :: MATRIX_6:49 n >0 & M1 commutes_with M2 implies M1+M2 commutes_with M2; theorem :: MATRIX_6:50 n >0 & M1 commutes_with M2 implies M1+M1 commutes_with M2+M2; theorem :: MATRIX_6:51 n >0 & M1 commutes_with M2 implies M1+M2 commutes_with M2+M2; theorem :: MATRIX_6:52 M1 commutes_with M2 implies M1*M2 commutes_with M2; theorem :: MATRIX_6:53 M1 commutes_with M2 implies M1*M1 commutes_with M2; theorem :: MATRIX_6:54 M1 commutes_with M2 implies M1*M1 commutes_with M2*M2; theorem :: MATRIX_6:55 n>0 & M1 commutes_with M2 implies M1@ commutes_with M2@; theorem :: MATRIX_6:56 M1 is invertible & M2 is invertible & M3 is invertible implies M1*M2*M3 is invertible & (M1*M2*M3)~=M3~*M2~*M1~; theorem :: MATRIX_6:57 n > 0 & M1 is Orthogonal & M2 is Orthogonal & M3 is Orthogonal implies M1*M2*M3 is Orthogonal; theorem :: MATRIX_6:58 1.(K,n) is Orthogonal; theorem :: MATRIX_6:59 n > 0 & M1 is Orthogonal & M2 is Orthogonal implies M1~*M2 is Orthogonal;