Article MATRIX_1, MML version 4.99.1005
:: MATRIX_1:attrnot 1 => MATRIX_1:attr 1
definition
let a1 be Relation-like Function-like FinSequence-like set;
attr a1 is tabular means
ex b1 being natural set st
for b2 being set
st b2 in proj2 a1
holds ex b3 being Relation-like Function-like FinSequence-like set st
b3 = b2 & len b3 = b1;
end;
:: MATRIX_1:dfs 1
definiens
let a1 be Relation-like Function-like FinSequence-like set;
To prove
a1 is tabular
it is sufficient to prove
thus ex b1 being natural set st
for b2 being set
st b2 in proj2 a1
holds ex b3 being Relation-like Function-like FinSequence-like set st
b3 = b2 & len b3 = b1;
:: MATRIX_1:def 1
theorem
for b1 being Relation-like Function-like FinSequence-like set holds
b1 is tabular
iff
ex b2 being natural set st
for b3 being set
st b3 in proj2 b1
holds ex b4 being Relation-like Function-like FinSequence-like set st
b4 = b3 & len b4 = b2;
:: MATRIX_1:exreg 1
registration
cluster Relation-like Function-like finite FinSequence-like tabular set;
end;
:: MATRIX_1:th 1
theorem
for b1 being non empty set
for b2 being Element of b1 holds
<*<*b2*>*> is tabular;
:: MATRIX_1:th 2
theorem
for b1 being set
for b2, b3 being natural set holds
b2 |-> (b3 |-> b1) is tabular;
:: MATRIX_1:th 3
theorem
for b1 being Relation-like Function-like FinSequence-like set holds
<*b1*> is tabular;
:: MATRIX_1:th 4
theorem
for b1 being natural set
for b2, b3 being Relation-like Function-like FinSequence-like set
st len b2 = b1 & len b3 = b1
holds <*b2,b3*> is tabular;
:: MATRIX_1:th 5
theorem
{} is tabular;
:: MATRIX_1:th 6
theorem
<*{},{}*> is tabular;
:: MATRIX_1:th 7
theorem
for b1 being non empty set
for b2, b3 being Element of b1 holds
<*<*b2*>,<*b3*>*> is tabular;
:: MATRIX_1:th 8
theorem
for b1 being non empty set
for b2, b3, b4, b5 being Element of b1 holds
<*<*b2,b3*>,<*b4,b5*>*> is tabular;
:: MATRIX_1:exreg 2
registration
let a1 be set;
cluster Relation-like Function-like finite FinSequence-like tabular FinSequence of a1 *;
end;
:: MATRIX_1:modenot 1
definition
let a1 be set;
mode Matrix of a1 is tabular FinSequence of a1 *;
end;
:: MATRIX_1:exreg 3
registration
let a1 be non empty set;
cluster Relation-like non empty-yielding Function-like finite FinSequence-like tabular FinSequence of a1 *;
end;
:: MATRIX_1:th 9
theorem
for b1 being non empty set
for b2 being Relation-like Function-like FinSequence-like set holds
b2 is tabular FinSequence of b1 *
iff
ex b3 being natural set st
for b4 being set
st b4 in proj2 b2
holds ex b5 being FinSequence of b1 st
b4 = b5 & len b5 = b3;
:: MATRIX_1:modenot 2 => MATRIX_1:mode 1
definition
let a1 be non empty set;
let a2, a3 be natural set;
mode Matrix of A2,A3,A1 -> tabular FinSequence of a1 * means
len it = a2 &
(for b1 being FinSequence of a1
st b1 in proj2 it
holds len b1 = a3);
end;
:: MATRIX_1:dfs 2
definiens
let a1 be non empty set;
let a2, a3 be natural set;
let a4 be tabular FinSequence of a1 *;
To prove
a4 is Matrix of a2,a3,a1
it is sufficient to prove
thus len a4 = a2 &
(for b1 being FinSequence of a1
st b1 in proj2 a4
holds len b1 = a3);
:: MATRIX_1:def 3
theorem
for b1 being non empty set
for b2, b3 being natural set
for b4 being tabular FinSequence of b1 * holds
b4 is Matrix of b2,b3,b1
iff
len b4 = b2 &
(for b5 being FinSequence of b1
st b5 in proj2 b4
holds len b5 = b3);
:: MATRIX_1:modenot 3
definition
let a1 be non empty set;
let a2 be natural set;
mode Matrix of a2,a1 is Matrix of a2,a2,a1;
end;
:: MATRIX_1:modenot 4
definition
let a1 be non empty 1-sorted;
mode Matrix of a1 is tabular FinSequence of (the carrier of a1) *;
end;
:: MATRIX_1:modenot 5
definition
let a1 be non empty 1-sorted;
let a2 be natural set;
mode Matrix of a2,a1 is Matrix of a2,a2,the carrier of a1;
end;
:: MATRIX_1:modenot 6
definition
let a1 be non empty 1-sorted;
let a2, a3 be natural set;
mode Matrix of a2,a3,a1 is Matrix of a2,a3,the carrier of a1;
end;
:: MATRIX_1:th 10
theorem
for b1, b2 being natural set
for b3 being non empty set
for b4 being Element of b3 holds
b1 |-> (b2 |-> b4) is Matrix of b1,b2,b3;
:: MATRIX_1:th 11
theorem
for b1 being non empty set
for b2 being FinSequence of b1 holds
<*b2*> is Matrix of 1,len b2,b1;
:: MATRIX_1:th 12
theorem
for b1 being natural set
for b2 being non empty set
for b3, b4 being FinSequence of b2
st len b3 = b1 & len b4 = b1
holds <*b3,b4*> is Matrix of 2,b1,b2;
:: MATRIX_1:th 13
theorem
for b1 being natural set
for b2 being non empty set holds
{} is Matrix of 0,b1,b2;
:: MATRIX_1:th 14
theorem
for b1 being non empty set holds
<*{}*> is Matrix of 1,0,b1;
:: MATRIX_1:th 15
theorem
for b1 being non empty set
for b2 being Element of b1 holds
<*<*b2*>*> is Matrix of 1,1,b1;
:: MATRIX_1:th 16
theorem
for b1 being non empty set holds
<*{},{}*> is Matrix of 2,0,b1;
:: MATRIX_1:th 17
theorem
for b1 being non empty set
for b2, b3 being Element of b1 holds
<*<*b2,b3*>*> is Matrix of 1,2,b1;
:: MATRIX_1:th 18
theorem
for b1 being non empty set
for b2, b3 being Element of b1 holds
<*<*b2*>,<*b3*>*> is Matrix of 2,1,b1;
:: MATRIX_1:th 19
theorem
for b1 being non empty set
for b2, b3, b4, b5 being Element of b1 holds
<*<*b2,b3*>,<*b4,b5*>*> is Matrix of 2,2,b1;
:: MATRIX_1:funcnot 1 => MATRIX_1:func 1
definition
let a1 be Relation-like Function-like FinSequence-like tabular set;
func width A1 -> Element of NAT means
ex b1 being Relation-like Function-like FinSequence-like set st
b1 in proj2 a1 & len b1 = it
if 0 < len a1
otherwise it = 0;
end;
:: MATRIX_1:def 4
theorem
for b1 being Relation-like Function-like FinSequence-like tabular set
for b2 being Element of NAT holds
(len b1 <= 0 or (b2 = width b1
iff
ex b3 being Relation-like Function-like FinSequence-like set st
b3 in proj2 b1 & len b3 = b2)) &
(len b1 <= 0 implies (b2 = width b1
iff
b2 = 0));
:: MATRIX_1:th 20
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
st 0 < len b2
for b3 being natural set holds
b2 is Matrix of len b2,b3,b1
iff
b3 = width b2;
:: MATRIX_1:funcnot 2 => MATRIX_1:func 2
definition
let a1 be Relation-like Function-like FinSequence-like tabular set;
func Indices A1 -> set equals
[:dom a1,Seg width a1:];
end;
:: MATRIX_1:def 5
theorem
for b1 being Relation-like Function-like FinSequence-like tabular set holds
Indices b1 = [:dom b1,Seg width b1:];
:: MATRIX_1:funcnot 3 => MATRIX_1:func 3
definition
let a1 be set;
let a2 be tabular FinSequence of a1 *;
let a3, a4 be natural set;
assume [a3,a4] in Indices a2;
func A2 *(A3,A4) -> Element of a1 means
ex b1 being FinSequence of a1 st
b1 = a2 . a3 & it = b1 . a4;
end;
:: MATRIX_1:def 6
theorem
for b1 being set
for b2 being tabular FinSequence of b1 *
for b3, b4 being natural set
st [b3,b4] in Indices b2
for b5 being Element of b1 holds
b5 = b2 *(b3,b4)
iff
ex b6 being FinSequence of b1 st
b6 = b2 . b3 & b5 = b6 . b4;
:: MATRIX_1:th 21
theorem
for b1 being non empty set
for b2, b3 being tabular FinSequence of b1 *
st len b2 = len b3 &
width b2 = width b3 &
(for b4, b5 being natural set
st [b4,b5] in Indices b2
holds b2 *(b4,b5) = b3 *(b4,b5))
holds b2 = b3;
:: MATRIX_1:sch 1
scheme MATRIX_1:sch 1
{F1 -> non empty set,
F2 -> Element of NAT,
F3 -> Element of NAT,
F4 -> Element of F1()}:
ex b1 being Matrix of F2(),F3(),F1() st
for b2, b3 being natural set
st [b2,b3] in Indices b1
holds b1 *(b2,b3) = F4(b2, b3)
:: MATRIX_1:sch 2
scheme MATRIX_1:sch 2
{F1 -> non empty set,
F2 -> Element of NAT,
F3 -> Element of NAT}:
ex b1 being Matrix of F2(),F3(),F1() st
for b2, b3 being natural set
st [b2,b3] in Indices b1
holds P1[b2, b3, b1 *(b2,b3)]
provided
for b1, b2 being natural set
st [b1,b2] in [:Seg F2(),Seg F3():]
for b3, b4 being Element of F1()
st P1[b1, b2, b3] & P1[b1, b2, b4]
holds b3 = b4
and
for b1, b2 being natural set
st [b1,b2] in [:Seg F2(),Seg F3():]
holds ex b3 being Element of F1() st
P1[b1, b2, b3];
:: MATRIX_1:th 23
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Matrix of 0,b1,b2 holds
len b3 = 0 & width b3 = 0 & Indices b3 = {};
:: MATRIX_1:th 24
theorem
for b1, b2 being natural set
for b3 being non empty set
st 0 < b1
for b4 being Matrix of b1,b2,b3 holds
len b4 = b1 &
width b4 = b2 &
Indices b4 = [:Seg b1,Seg b2:];
:: MATRIX_1:th 25
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Matrix of b1,b1,b2 holds
len b3 = b1 &
width b3 = b1 &
Indices b3 = [:Seg b1,Seg b1:];
:: MATRIX_1:th 26
theorem
for b1, b2 being natural set
for b3 being non empty set
for b4 being Matrix of b1,b2,b3 holds
len b4 = b1 &
Indices b4 = [:Seg b1,Seg width b4:];
:: MATRIX_1:th 27
theorem
for b1, b2 being natural set
for b3 being non empty set
for b4, b5 being Matrix of b1,b2,b3 holds
Indices b4 = Indices b5;
:: MATRIX_1:th 28
theorem
for b1, b2 being natural set
for b3 being non empty set
for b4, b5 being Matrix of b1,b2,b3
st for b6, b7 being natural set
st [b6,b7] in Indices b4
holds b4 *(b6,b7) = b5 *(b6,b7)
holds b4 = b5;
:: MATRIX_1:th 29
theorem
for b1 being natural set
for b2 being non empty set
for b3 being Matrix of b1,b1,b2
for b4, b5 being natural set
st [b4,b5] in Indices b3
holds [b5,b4] in Indices b3;
:: MATRIX_1:funcnot 4 => MATRIX_1:func 4
definition
let a1 be non empty set;
let a2 be tabular FinSequence of a1 *;
func A2 @ -> tabular FinSequence of a1 * means
len it = width a2 &
(for b1, b2 being natural set holds
[b1,b2] in Indices it
iff
[b2,b1] in Indices a2) &
(for b1, b2 being natural set
st [b2,b1] in Indices a2
holds it *(b1,b2) = a2 *(b2,b1));
end;
:: MATRIX_1:def 7
theorem
for b1 being non empty set
for b2, b3 being tabular FinSequence of b1 * holds
b3 = b2 @
iff
len b3 = width b2 &
(for b4, b5 being natural set holds
[b4,b5] in Indices b3
iff
[b5,b4] in Indices b2) &
(for b4, b5 being natural set
st [b5,b4] in Indices b2
holds b3 *(b4,b5) = b2 *(b5,b4));
:: MATRIX_1:funcnot 5 => MATRIX_1:func 5
definition
let a1 be natural set;
let a2 be non empty set;
let a3 be Matrix of a1,a1,a2;
redefine func a3 @ -> Matrix of a1,a1,a2;
end;
:: MATRIX_1:funcnot 6 => MATRIX_1:func 6
definition
let a1 be non empty set;
let a2 be tabular FinSequence of a1 *;
let a3 be natural set;
func Line(A2,A3) -> FinSequence of a1 means
len it = width a2 &
(for b1 being natural set
st b1 in Seg width a2
holds it . b1 = a2 *(a3,b1));
end;
:: MATRIX_1:def 8
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3 being natural set
for b4 being FinSequence of b1 holds
b4 = Line(b2,b3)
iff
len b4 = width b2 &
(for b5 being natural set
st b5 in Seg width b2
holds b4 . b5 = b2 *(b3,b5));
:: MATRIX_1:funcnot 7 => MATRIX_1:func 7
definition
let a1 be non empty set;
let a2 be tabular FinSequence of a1 *;
let a3 be natural set;
func Col(A2,A3) -> FinSequence of a1 means
len it = len a2 &
(for b1 being natural set
st b1 in dom a2
holds it . b1 = a2 *(b1,a3));
end;
:: MATRIX_1:def 9
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3 being natural set
for b4 being FinSequence of b1 holds
b4 = Col(b2,b3)
iff
len b4 = len b2 &
(for b5 being natural set
st b5 in dom b2
holds b4 . b5 = b2 *(b5,b3));
:: MATRIX_1:funcnot 8 => MATRIX_1:func 8
definition
let a1 be non empty set;
let a2 be tabular FinSequence of a1 *;
let a3 be natural set;
redefine func Line(a2,a3) -> Element of (width a2) -tuples_on a1;
end;
:: MATRIX_1:funcnot 9 => MATRIX_1:func 9
definition
let a1 be non empty set;
let a2 be tabular FinSequence of a1 *;
let a3 be natural set;
redefine func Col(a2,a3) -> Element of (len a2) -tuples_on a1;
end;
:: MATRIX_1:funcnot 10 => MATRIX_1:func 10
definition
let a1 be non empty doubleLoopStr;
let a2 be natural set;
func A2 -Matrices_over A1 -> set equals
a2 -tuples_on (a2 -tuples_on the carrier of a1);
end;
:: MATRIX_1:def 10
theorem
for b1 being non empty doubleLoopStr
for b2 being natural set holds
b2 -Matrices_over b1 = b2 -tuples_on (b2 -tuples_on the carrier of b1);
:: MATRIX_1:funcnot 11 => MATRIX_1:func 11
definition
let a1 be non empty doubleLoopStr;
let a2 be natural set;
func 0.(A1,A2) -> Matrix of a2,a2,the carrier of a1 equals
a2 |-> (a2 |-> 0. a1);
end;
:: MATRIX_1:def 11
theorem
for b1 being non empty doubleLoopStr
for b2 being natural set holds
0.(b1,b2) = b2 |-> (b2 |-> 0. b1);
:: MATRIX_1:funcnot 12 => MATRIX_1:func 12
definition
let a1 be non empty doubleLoopStr;
let a2 be natural set;
func 1.(A1,A2) -> Matrix of a2,a2,the carrier of a1 means
(for b1 being natural set
st [b1,b1] in Indices it
holds it *(b1,b1) = 1. a1) &
(for b1, b2 being natural set
st [b1,b2] in Indices it & b1 <> b2
holds it *(b1,b2) = 0. a1);
end;
:: MATRIX_1:def 12
theorem
for b1 being non empty doubleLoopStr
for b2 being natural set
for b3 being Matrix of b2,b2,the carrier of b1 holds
b3 = 1.(b1,b2)
iff
(for b4 being natural set
st [b4,b4] in Indices b3
holds b3 *(b4,b4) = 1. b1) &
(for b4, b5 being natural set
st [b4,b5] in Indices b3 & b4 <> b5
holds b3 *(b4,b5) = 0. b1);
:: MATRIX_1:funcnot 13 => MATRIX_1:func 13
definition
let a1 be non empty doubleLoopStr;
let a2 be natural set;
let a3 be Matrix of a2,a2,the carrier of a1;
func - A3 -> Matrix of a2,a2,the carrier of a1 means
for b1, b2 being natural set
st [b1,b2] in Indices a3
holds it *(b1,b2) = - (a3 *(b1,b2));
end;
:: MATRIX_1:def 13
theorem
for b1 being non empty doubleLoopStr
for b2 being natural set
for b3, b4 being Matrix of b2,b2,the carrier of b1 holds
b4 = - b3
iff
for b5, b6 being natural set
st [b5,b6] in Indices b3
holds b4 *(b5,b6) = - (b3 *(b5,b6));
:: MATRIX_1:funcnot 14 => MATRIX_1:func 14
definition
let a1 be non empty doubleLoopStr;
let a2 be natural set;
let a3, a4 be Matrix of a2,a2,the carrier of a1;
func A3 + A4 -> Matrix of a2,a2,the carrier of a1 means
for b1, b2 being natural set
st [b1,b2] in Indices a3
holds it *(b1,b2) = (a3 *(b1,b2)) + (a4 *(b1,b2));
end;
:: MATRIX_1:def 14
theorem
for b1 being non empty doubleLoopStr
for b2 being natural set
for b3, b4, b5 being Matrix of b2,b2,the carrier of b1 holds
b5 = b3 + b4
iff
for b6, b7 being natural set
st [b6,b7] in Indices b3
holds b5 *(b6,b7) = (b3 *(b6,b7)) + (b4 *(b6,b7));
:: MATRIX_1:funcreg 1
registration
let a1 be non empty doubleLoopStr;
let a2 be natural set;
cluster a2 -Matrices_over a1 -> non empty;
end;
:: MATRIX_1:th 30
theorem
for b1, b2, b3 being natural set
for b4 being non empty doubleLoopStr
st [b1,b2] in Indices 0.(b4,b3)
holds (0.(b4,b3)) *(b1,b2) = 0. b4;
:: MATRIX_1:th 31
theorem
for b1 being set
for b2 being natural set
for b3 being non empty doubleLoopStr holds
b1 is Element of b2 -Matrices_over b3
iff
b1 is Matrix of b2,b2,the carrier of b3;
:: MATRIX_1:attrnot 2 => MATRIX_1:attr 2
definition
let a1 be non empty ZeroStr;
let a2 be tabular FinSequence of (the carrier of a1) *;
attr a2 is diagonal means
for b1, b2 being natural set
st [b1,b2] in Indices a2 & a2 *(b1,b2) <> 0. a1
holds b1 = b2;
end;
:: MATRIX_1:dfs 14
definiens
let a1 be non empty ZeroStr;
let a2 be tabular FinSequence of (the carrier of a1) *;
To prove
a2 is diagonal
it is sufficient to prove
thus for b1, b2 being natural set
st [b1,b2] in Indices a2 & a2 *(b1,b2) <> 0. a1
holds b1 = b2;
:: MATRIX_1:def 15
theorem
for b1 being non empty ZeroStr
for b2 being tabular FinSequence of (the carrier of b1) * holds
b2 is diagonal(b1)
iff
for b3, b4 being natural set
st [b3,b4] in Indices b2 & b2 *(b3,b4) <> 0. b1
holds b3 = b4;
:: MATRIX_1:exreg 4
registration
let a1 be natural set;
let a2 be non empty doubleLoopStr;
cluster Relation-like Function-like finite FinSequence-like tabular diagonal Matrix of a1,a1,the carrier of a2;
end;
:: MATRIX_1:modenot 7
definition
let a1 be non empty doubleLoopStr;
let a2 be natural set;
mode Diagonal of a2,a1 is diagonal Matrix of a2,a2,the carrier of a1;
end;
:: MATRIX_1:th 32
theorem
for b1 being natural set
for b2 being non empty right_complementable Abelian add-associative right_zeroed doubleLoopStr
for b3, b4 being Matrix of b1,b1,the carrier of b2 holds
b3 + b4 = b4 + b3;
:: MATRIX_1:th 33
theorem
for b1 being natural set
for b2 being non empty right_complementable Abelian add-associative right_zeroed doubleLoopStr
for b3, b4, b5 being Matrix of b1,b1,the carrier of b2 holds
(b3 + b4) + b5 = b3 + (b4 + b5);
:: MATRIX_1:th 34
theorem
for b1 being natural set
for b2 being non empty right_complementable Abelian add-associative right_zeroed doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2 holds
b3 + 0.(b2,b1) = b3;
:: MATRIX_1:th 35
theorem
for b1 being natural set
for b2 being non empty right_complementable Abelian add-associative right_zeroed doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2 holds
b3 + - b3 = 0.(b2,b1);
:: MATRIX_1:funcnot 15 => MATRIX_1:func 15
definition
let a1 be non empty right_complementable Abelian add-associative right_zeroed doubleLoopStr;
let a2 be natural set;
func A2 -G_Matrix_over A1 -> non empty strict right_complementable Abelian add-associative right_zeroed addLoopStr means
the carrier of it = a2 -Matrices_over a1 &
(for b1, b2 being Matrix of a2,a2,the carrier of a1 holds
(the addF of it) .(b1,b2) = b1 + b2) &
0. it = 0.(a1,a2);
end;
:: MATRIX_1:def 16
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed doubleLoopStr
for b2 being natural set
for b3 being non empty strict right_complementable Abelian add-associative right_zeroed addLoopStr holds
b3 = b2 -G_Matrix_over b1
iff
the carrier of b3 = b2 -Matrices_over b1 &
(for b4, b5 being Matrix of b2,b2,the carrier of b1 holds
(the addF of b3) .(b4,b5) = b4 + b5) &
0. b3 = 0.(b1,b2);
:: MATRIX_1:th 36
theorem
for b1, b2 being natural set
for b3 being non empty doubleLoopStr
for b4 being Matrix of 0,b1,the carrier of b3
for b5 being Matrix of 0,b2,the carrier of b3 holds
b4 = b5;
:: MATRIX_1:th 37
theorem
for b1 being set
for b2, b3 being natural set
for b4 being tabular FinSequence of b1 *
st 1 <= b2 & b2 <= len b4 & 1 <= b3 & b3 <= width b4
holds [b2,b3] in Indices b4;
:: MATRIX_1:th 38
theorem
for b1, b2, b3, b4 being natural set
for b5 being non empty set
for b6 being Matrix of b1,b2,b5
st 1 <= b3 & b3 <= b1 & 1 <= b4 & b4 <= b2
holds [b3,b4] in Indices b6;