Lm1:
for R being Ring holds
( center R is commutative & center R is Subring of R )
theorem Th21:
for
R being
Ring for
i,
k,
m,
n being
Nat for
A being
Matrix of
m,
n,
R st
i in dom (1. (R,m)) &
i in dom A holds
(Line ((1. (R,m)),i)) "*" (Col (A,k)) = A * (
i,
k)
theorem Th23:
for
R being
Ring for
i,
k,
m,
n being
Nat for
A being
Matrix of
m,
n,
R st
k in dom A &
k in dom (1. (R,n)) holds
(Line (A,i)) "*" (Col ((1. (R,n)),k)) = A * (
i,
k)
theorem Th24:
for
R being
Ring for
n,
k,
m being
Nat st (
k = 0 implies
m = 0 ) holds
for
r being
Element of
R for
A being
Matrix of
k,
m,
R for
B being
Matrix of
m,
n,
R holds
A * (r * B) = (A * r) * B
theorem Th29:
for
R being
Ring for
n,
k,
m being
Nat st (
k = 0 implies
m = 0 ) holds
for
r being
Element of
R for
A being
Matrix of
k,
m,
R for
B being
Matrix of
m,
n,
R holds
(r * A) * B = r * (A * B)
theorem Th38:
for
R being
Ring for
Y being
Matrix of 1,
R holds
Y = (Y * (1,1)) * (1. (R,1))
definition
let R be non
empty ZeroOneStr ;
let I,
K,
i,
k be
Nat;
func canMat (
i,
k,
I,
K,
R)
-> Matrix of
I,
K,
R means :
Def1:
for
i2,
k2 being
Nat st
[i2,k2] in Indices it holds
( (
[i,k] = [i2,k2] implies
it * (
i2,
k2)
= 1. R ) & (
[i,k] <> [i2,k2] implies
it * (
i2,
k2)
= 0. R ) );
existence
ex b1 being Matrix of I,K,R st
for i2, k2 being Nat st [i2,k2] in Indices b1 holds
( ( [i,k] = [i2,k2] implies b1 * (i2,k2) = 1. R ) & ( [i,k] <> [i2,k2] implies b1 * (i2,k2) = 0. R ) )
uniqueness
for b1, b2 being Matrix of I,K,R st ( for i2, k2 being Nat st [i2,k2] in Indices b1 holds
( ( [i,k] = [i2,k2] implies b1 * (i2,k2) = 1. R ) & ( [i,k] <> [i2,k2] implies b1 * (i2,k2) = 0. R ) ) ) & ( for i2, k2 being Nat st [i2,k2] in Indices b2 holds
( ( [i,k] = [i2,k2] implies b2 * (i2,k2) = 1. R ) & ( [i,k] <> [i2,k2] implies b2 * (i2,k2) = 0. R ) ) ) holds
b1 = b2
end;
::
deftheorem Def1 defines
canMat MATGRP_0:def 1 :
for R being non empty ZeroOneStr
for I, K, i, k being Nat
for b6 being Matrix of I,K,R holds
( b6 = canMat (i,k,I,K,R) iff for i2, k2 being Nat st [i2,k2] in Indices b6 holds
( ( [i,k] = [i2,k2] implies b6 * (i2,k2) = 1. R ) & ( [i,k] <> [i2,k2] implies b6 * (i2,k2) = 0. R ) ) );
theorem Th40:
for
R being
Ring for
I,
K,
i,
k,
i2,
k2 being
Nat st
[i2,k2] in Indices (canMat (i,k,I,K,R)) holds
( (
i <> i2 implies
(canMat (i,k,I,K,R)) * (
i2,
k2)
= 0. R ) & (
k <> k2 implies
(canMat (i,k,I,K,R)) * (
i2,
k2)
= 0. R ) & (
i = i2 &
k = k2 implies
(canMat (i,k,I,K,R)) * (
i2,
k2)
= 1. R ) )
theorem Th41:
for
R being
Ring for
I,
K,
i,
k being
Nat st not
[i,k] in Indices (canMat (i,k,I,K,R)) holds
canMat (
i,
k,
I,
K,
R)
= 0. (
R,
I,
K)
theorem
for
R being non
empty ZeroOneStr for
I,
K being
Nat holds
not ( (
I = 0 implies
K = 0 ) & (
K = 0 implies
I = 0 ) & not for
i,
k being
Nat holds
(canMat (i,k,I,K,R)) @ = canMat (
k,
i,
K,
I,
R) )
theorem Th43:
for
R being
Ring for
i,
k,
I,
K being
Nat holds
(
len (canMat (i,k,I,K,R)) = I & (
I = 0 implies
width (canMat (i,k,I,K,R)) = 0 ) & (
I <> 0 implies
width (canMat (i,k,I,K,R)) = K ) )
by MATRIX_0:22, MATRIX_0:23, MATRIX_0:25;
theorem Th44:
for
R being
Ring for
I,
K,
i,
k,
i2 being
Nat st
[i2,k] in Indices (canMat (i,k,I,K,R)) holds
( (
i2 = i implies
Line (
(canMat (i,k,I,K,R)),
i2)
= Line (
(1. (R,K)),
k) ) & (
i2 <> i implies
Line (
(canMat (i,k,I,K,R)),
i2)
= Line (
(0. (R,K)),
k) ) )
theorem Th45:
for
R being
Ring for
I,
K,
i,
k,
k2 being
Nat st
[i,k2] in Indices (canMat (i,k,I,K,R)) holds
( (
k2 = k implies
Col (
(canMat (i,k,I,K,R)),
k2)
= Col (
(1. (R,I)),
i) ) & (
k2 <> k implies
Col (
(canMat (i,k,I,K,R)),
k2)
= Col (
(0. (R,I)),
i) ) )
theorem Th46:
for
R being
Ring for
I,
K,
L being
Nat st
I <> 0 &
K <> 0 holds
for
i,
k1,
k2,
l being
Nat st
k1 <> k2 holds
(canMat (i,k1,I,K,R)) * (canMat (k2,l,K,L,R)) = 0. (
R,
I,
L)
theorem Th47:
for
R being
Ring for
I,
K,
L,
i,
k,
l being
Nat st
i in Seg I &
k in Seg K &
l in Seg L holds
(canMat (i,k,I,K,R)) * (canMat (k,l,K,L,R)) = canMat (
i,
l,
I,
L,
R)
theorem Th48:
for
R being
Ring for
I,
K,
L being
Nat st (
I = 0 implies
K = 0 ) holds
for
i,
k,
l being
Nat st
k in Seg K holds
(canMat (i,k,I,K,R)) * (canMat (k,l,K,L,R)) = canMat (
i,
l,
I,
L,
R)
theorem
for
R being
Ring for
n,
i,
k,
i2,
k2 being
Nat st
[i2,k2] in Indices (canMat (i,k,n,R)) holds
( (
i <> i2 implies
(canMat (i,k,n,R)) * (
i2,
k2)
= 0. R ) & (
k <> k2 implies
(canMat (i,k,n,R)) * (
i2,
k2)
= 0. R ) & (
i = i2 &
k = k2 implies
(canMat (i,k,n,R)) * (
i2,
k2)
= 1. R ) )
by Th40;
theorem Th50:
for
R being
Ring for
I,
i,
j1,
j2,
k being
Nat st
j1 <> j2 holds
(canMat (i,j1,I,R)) * (canMat (j2,k,I,R)) = 0. (
R,
I)
theorem
for
R being
Ring for
n,
i,
j being
Nat st not
[i,j] in Indices (canMat (i,j,n,R)) holds
canMat (
i,
j,
n,
R)
= 0. (
R,
n)
theorem
for
R being
Ring for
n,
i,
k,
l being
Nat st
k in Seg n holds
(canMat (i,k,n,R)) * (canMat (k,l,n,R)) = canMat (
i,
l,
n,
R)
by Th48;
theorem Th54:
for
R being
Ring for
n,
i,
j being
Nat st
[i,j] in Indices (canMat (i,j,n,R)) holds
for
A being
Matrix of
n,
R for
i2,
j2 being
Nat st
[i2,j2] in Indices A holds
( (
i = i2 implies
((canMat (i,j,n,R)) * A) * (
i2,
j2)
= A * (
j,
j2) ) & (
i <> i2 implies
((canMat (i,j,n,R)) * A) * (
i2,
j2)
= 0. R ) )
theorem Th55:
for
R being
Ring for
n,
i,
j being
Nat st
[i,j] in Indices (canMat (i,j,n,R)) holds
for
A being
Matrix of
n,
R for
i2,
j2 being
Nat st
[i2,j2] in Indices A holds
( (
j = j2 implies
(A * (canMat (i,j,n,R))) * (
i2,
j2)
= A * (
i2,
i) ) & (
j <> j2 implies
(A * (canMat (i,j,n,R))) * (
i2,
j2)
= 0. R ) )
theorem Th58:
for
R being
Ring for
n,
i,
j being
Nat for
r being
Element of
R for
A being
Matrix of
n,
R holds
(
A * ((1. (R,n)) + (r * (canMat (i,j,n,R)))) = ((1. (R,n)) + (r * (canMat (i,j,n,R)))) * A iff
A * (r * (canMat (i,j,n,R))) = (r * (canMat (i,j,n,R))) * A )
theorem Th59:
for
R being
Ring for
n,
i,
j being
Nat for
A being
Matrix of
n,
R holds
(
A * ((1. (R,n)) + (canMat (i,j,n,R))) = ((1. (R,n)) + (canMat (i,j,n,R))) * A iff
A * (canMat (i,j,n,R)) = (canMat (i,j,n,R)) * A )
theorem
for
R being
Ring for
n being
Nat for
A,
B,
C being
Matrix of
n,
R holds
(A * B) * C = A * (B * C)
Th108:
for M being non empty right_unital associative multLoopStr
for u, v being unital Element of M holds u * v is unital
Th112:
for R being commutative Ring holds UnitGroup R is commutative
Th122:
for R being Ring
for n being Nat
for A being invertible Matrix of n,R st ( for B being invertible Matrix of n,R holds A * B = B * A ) holds
ex z being Element of R st A = z * (1. (R,n))
Lm3:
for R being Ring
for n being Nat
for A being invertible Matrix of n,R st n = 0 holds
ex z being Element of R st
( z in center R & z in UnitGroup R & z in center (UnitGroup R) & A = z * (1. (R,n)) )
Th123:
for R being Ring
for n being Nat
for A being invertible Matrix of n,R st ( for B being invertible Matrix of n,R holds A * B = B * A ) holds
( ( n = 1 implies ex z being Element of R st
( z in center (UnitGroup R) & A = z * (1. (R,n)) ) ) & ( n <> 1 implies ex z being Element of R st
( z in center R & z in UnitGroup R & A = z * (1. (R,n)) ) ) )
theorem Th127:
for
R being
Ring for
n being
Nat for
x,
y being
Element of
(GL (n,R)) for
X,
Y being
Matrix of
n,
R st
X = x &
Y = y holds
X * Y = x * y
Th152:
for R being Ring
for n being Nat
for F being BinOp of (n -invertible_Matrices_over R) st F = (matrix_mult (n,R)) || (n -invertible_Matrices_over R) holds
ex e1 being Element of n -invertible_Matrices_over R st e1 is_a_unity_wrt F
Th155:
for R being Ring
for n being Nat
for F being BinOp of (n -invertible_Matrices_over R) st F = (matrix_mult (n,R)) || (n -invertible_Matrices_over R) holds
F is having_an_inverseOp
Lm4:
for R being Ring
for a, b being Element of R st a * b = 1. R & ( for b9 being Element of R st a * b9 = 1. R holds
b9 = b ) holds
for x being Element of R holds
( a * x <> 0. R or x = 0. R )
Lm5:
for R being Ring
for a, b being Element of R st a * b = 1. R & ( for x being Element of R holds
( a * x <> 0. R or x = 0. R ) ) holds
a is invertible
Lm6:
for R being Ring
for a, b being Element of R st a * b = 1. R & a is invertible holds
for b9 being Element of R st a * b9 = 1. R holds
b9 = b