Journal of Formalized Mathematics
Volume 4, 1992
University of Bialystok
Copyright (c) 1992
Association of Mizar Users
The abstract of the Mizar article:
-
- by
- Katarzyna Jankowska
- Received May 20, 1992
- MML identifier: MATRIX_2
- [
Mizar article,
MML identifier index
]
environ
vocabulary VECTSP_1, FINSEQ_1, RELAT_1, FUNCT_1, FUNCOP_1, MATRIX_1, FINSEQ_2,
TREES_1, RLVECT_1, BOOLE, CARD_1, INCSP_1, QC_LANG1, FUNCT_2, BINOP_1,
GROUP_1, NAT_1, ARYTM_1, FINSET_1, FINSUB_1, MATRIX_2, CARD_3;
notation TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, XREAL_0, RELAT_1, FUNCT_1,
PARTFUN1, FUNCT_2, STRUCT_0, NAT_1, GROUP_1, GROUP_4, BINOP_1, RLVECT_1,
VECTSP_1, FINSEQ_1, CARD_1, MATRIX_1, FINSET_1, FINSUB_1, FINSEQ_2,
FINSEQ_4, FINSEQOP;
constructors NAT_1, GROUP_4, BINOP_1, MATRIX_1, FINSEQOP, FINSEQ_4, MEMBERED,
PARTFUN1, RELAT_2, XBOOLE_0;
clusters FUNCT_1, GROUP_1, MATRIX_1, FINSET_1, RELSET_1, STRUCT_0, FINSEQ_1,
FINSEQ_2, XREAL_0, ARYTM_3, FUNCT_2, ZFMISC_1, PARTFUN1, XBOOLE_0;
requirements NUMERALS, REAL, BOOLE, SUBSET, ARITHM;
begin :: Some Examples of Matrices
reserve x,y,x1,x2,y1,y2 for set,
i,j,k,l,n,m for Nat,
D for non empty set,
K for Field,
s,s2 for FinSequence,
a,b,c,d for Element of D,
q,r for FinSequence of D;
scheme SeqDEx{D()->non empty set,A()->Nat,P[set,set]}:
ex p being FinSequence of D() st dom p = Seg A() &
for k st k in Seg A() holds P[k,p.k]
provided
for k st k in Seg A() ex x being Element of D() st P[k,x];
definition let n,m; let a be set;
func (n,m) --> a -> tabular FinSequence equals
:: MATRIX_2:def 1
n |-> (m |-> a);
end;
definition
let D,n,m;let d;
redefine func (n,m) --> d ->Matrix of n,m,D;
end;
theorem :: MATRIX_2:1
[i,j] in Indices ((n,m)-->a) implies ((n,m)-->a) *(i,j)=a;
reserve a',b' for Element of K;
theorem :: MATRIX_2:2
((n,n)-->a') + ((n,n)-->b')= (n,n)-->(a'+b');
definition
let a,b,c,d be set;
func (a,b)][(c,d) ->tabular FinSequence equals
:: MATRIX_2:def 2
<*<*a,b*>,<*c,d*>*>;
end;
theorem :: MATRIX_2:3
len (x1,x2)][(y1,y2)=2 & width (x1,x2)][(y1,y2)=2 &
Indices (x1,x2)][(y1,y2)=[:Seg 2,Seg 2:];
theorem :: MATRIX_2:4
[1,1] in Indices (x1,x2)][(y1,y2) &
[1,2] in Indices (x1,x2)][(y1,y2) &
[2,1] in Indices (x1,x2)][(y1,y2) &
[2,2] in Indices (x1,x2)][(y1,y2);
definition let D;let a be Element of D;
redefine func <*a*> -> Element of 1-tuples_on D;
end;
definition let D;let n;let p be Element of n-tuples_on D;
redefine func <*p*> -> Matrix of 1,n,D;
end;
theorem :: MATRIX_2:5
[1,1] in Indices <*<*a*>*> & <*<*a*>*>*(1,1)=a;
definition let D;let a,b,c,d be Element of D;
redefine func (a,b)][(c,d) -> Matrix of 2,D;
end;
theorem :: MATRIX_2:6
(a,b)][(c,d)*(1,1)=a &
(a,b)][(c,d)*(1,2)=b &
(a,b)][(c,d)*(2,1)=c &
(a,b)][(c,d)*(2,2)=d;
definition let n;let K be Field;
mode Upper_Triangular_Matrix of n,K -> Matrix of n,K means
:: MATRIX_2:def 3
for i,j st [i,j] in Indices it holds
(i>j implies it*(i,j) = 0.K );
end;
definition let n;let K;
mode Lower_Triangular_Matrix of n,K -> Matrix of n,K means
:: MATRIX_2:def 4
for i,j st [i,j] in Indices it holds
(i<j implies it*(i,j) = 0.K );
end;
theorem :: MATRIX_2:7
for M being Matrix of D st len M=n holds M is Matrix of n,width M,D;
begin :: Deleting of Rows and Columns in a Matrix
definition let i; let p be FinSequence;
func Del(p,i) -> FinSequence equals
:: MATRIX_2:def 5
p * Sgm ((dom p) \ {i});
end;
theorem :: MATRIX_2:8
for p being FinSequence holds
(i in dom p implies ex m st len p = m + 1 & len Del(p,i) = m) &
(not i in dom p implies Del(p,i) = p);
theorem :: MATRIX_2:9
for p being FinSequence of D holds Del(p,i) is FinSequence of D;
theorem :: MATRIX_2:10
for M be Matrix of n,m,K holds
for k st k in Seg n holds M.k=Line(M,k);
definition let i;
let K;
let M be Matrix of K;
assume i in Seg (width M);
func DelCol(M,i) -> Matrix of K means
:: MATRIX_2:def 6
len it=len M & for k st k in dom M holds it.k=Del(Line(M,k),i);
end;
theorem :: MATRIX_2:11
for M1,M2 being Matrix of D st M1@=M2@ & len M1=len M2
holds M1 = M2;
theorem :: MATRIX_2:12
for M being Matrix of D st width M > 0
holds len (M@)=width M & width (M@)=len M;
theorem :: MATRIX_2:13
for M1,M2 being Matrix of D st width M1>0 & width M2>0 &
M1@=M2@ & width (M1@) =width (M2@)
holds M1=M2;
theorem :: MATRIX_2:14
for M1,M2 being Matrix of D st width M1>0 & width M2>0 holds
M1=M2 iff M1@=M2@ & width M1 = width M2;
theorem :: MATRIX_2:15
for M being Matrix of D st len M>0 & width M>0 holds (M@)@=M;
theorem :: MATRIX_2:16
for M being Matrix of D holds
for i st i in dom M holds Line(M,i)=Col(M@,i);
theorem :: MATRIX_2:17
for M being Matrix of D holds
for j st j in Seg(width M) holds Line(M@,j)=Col(M,j);
theorem :: MATRIX_2:18
for M being Matrix of D holds for i st i in dom M holds M.i=Line(M,i);
definition let i; let K;let M be Matrix of K;
assume i in dom M & width M>0;
func DelLine(M,i) -> Matrix of K means
:: MATRIX_2:def 7
it={} if len M=1 otherwise
width it=width M &
for k st k in Seg (width M) holds Col(it,k)=Del(Col(M,k),i);
end;
definition let i,j; let n;let K;let M be Matrix of n,K;
func Deleting(M,i,j) -> Matrix of K equals
:: MATRIX_2:def 8
{} if n=1 otherwise
DelCol((DelLine(M,i)),j);
end;
begin :: Sets of Permutations
definition let IT be set;
attr IT is permutational means
:: MATRIX_2:def 9
ex n st for x st x in IT holds x is Permutation of Seg n;
end;
definition
cluster permutational non empty set;
end;
definition let P be permutational non empty set;
func len P -> Nat means
:: MATRIX_2:def 10
ex s st s in P & it=len s;
end;
definition let P be permutational non empty set;
redefine mode Element of P -> Permutation of Seg len P;
end;
theorem :: MATRIX_2:19
ex P being permutational non empty set st len P =n;
definition let n;
func Permutations(n) -> set means
:: MATRIX_2:def 11
x in it iff x is Permutation of Seg n;
end;
definition let n;
cluster Permutations(n) -> permutational non empty;
end;
theorem :: MATRIX_2:20
len Permutations(n)=n;
theorem :: MATRIX_2:21
Permutations(1)={idseq 1};
definition let n;let p be Element of Permutations(n);
func len p -> Nat means
:: MATRIX_2:def 12
ex s being FinSequence st s=p & it=len s;
end;
theorem :: MATRIX_2:22
for p being Element of Permutations(n) holds len p= n;
begin :: Group of Permutations
reserve p,q for Element of Permutations(n);
definition let n;
func Group_of_Perm(n) -> strict HGrStr means
:: MATRIX_2:def 13
the carrier of it = Permutations(n) &
for q,p be Element of Permutations(n) holds (the mult of it).(q,p)=p*q;
end;
definition let n;
cluster Group_of_Perm(n) -> non empty;
end;
theorem :: MATRIX_2:23
idseq n is Element of Group_of_Perm(n);
theorem :: MATRIX_2:24
p *(idseq n)=p & (idseq n)*p=p;
theorem :: MATRIX_2:25
p *p"=idseq n & p"*p=idseq n;
theorem :: MATRIX_2:26
p" is Element of Group_of_Perm(n);
definition let n;
mode permutation of n is Element of Permutations(n);
cluster Group_of_Perm(n) -> associative Group-like;
end;
canceled;
theorem :: MATRIX_2:28
idseq n= 1.Group_of_Perm(n);
definition let n;let p be Permutation of Seg n;
attr p is being_transposition means
:: MATRIX_2:def 14
ex i,j st i in dom p & j in dom p & i<>j & p.i=j & p.j=i &
for k st k <>i & k<>j & k in dom p holds p.k=k;
synonym p is_transposition;
end;
definition let n;
let IT be Permutation of Seg n;
attr IT is even means
:: MATRIX_2:def 15
ex l be FinSequence of the carrier of Group_of_Perm(n)
st (len l)mod 2=0 & IT=Product l &
for i st i in dom l ex q st l.i=q & q is_transposition;
antonym IT is odd;
end;
theorem :: MATRIX_2:29
id Seg n is even;
definition
let K,n;let x be Element of K;
let p be Element of Permutations(n);
func -(x,p)-> Element of K equals
:: MATRIX_2:def 16
x if p is even otherwise -x;
end;
definition let X be set;
assume X is finite;
func FinOmega(X) -> Element of Fin X equals
:: MATRIX_2:def 17
X;
end;
theorem :: MATRIX_2:30
Permutations(n) is finite;
Back to top