Article MATRIX13, MML version 4.99.1005

:: MATRIX13:th 1
theorem
for b1 being non empty set
for b2, b3 being natural set
for b4 being Matrix of b2,b3,b1 holds
      (b2 = 0 implies b3 = 0)
   iff
      len b4 = b2 & width b4 = b3;

:: MATRIX13:th 2
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2 holds
      b3 is lower_triangular Matrix of b1,b1,the carrier of b2
   iff
      b3 @ is upper_triangular Matrix of b1,b1,the carrier of b2;

:: MATRIX13:th 3
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2 holds
   diagonal_of_Matrix b3 = diagonal_of_Matrix (b3 @);

:: MATRIX13:th 4
theorem
for b1 being natural set
for b2 being Element of Permutations b1
      st b2 <> idseq b1
   holds (ex b3 being natural set st
       b3 in Seg b1 & b3 < b2 . b3) &
    (ex b3 being natural set st
       b3 in Seg b1 & b2 . b3 < b3);

:: MATRIX13:th 5
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2
for b4 being Element of Permutations b1
      st b4 <> idseq b1 &
         (b3 is lower_triangular Matrix of b1,b1,the carrier of b2 or b3 is upper_triangular Matrix of b1,b1,the carrier of b2)
   holds (Path_product b3) . b4 = 0. b2;

:: MATRIX13:th 6
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2
for b4 being Element of Permutations b1
      st b4 = idseq b1
   holds diagonal_of_Matrix b3 = Path_matrix(b4,b3);

:: MATRIX13:th 7
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being upper_triangular Matrix of b1,b1,the carrier of b2 holds
   Det b3 = (the multF of b2) "**" diagonal_of_Matrix b3;

:: MATRIX13:th 8
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being lower_triangular Matrix of b1,b1,the carrier of b2 holds
   Det b3 = (the multF of b2) "**" diagonal_of_Matrix b3;

:: MATRIX13:th 9
theorem
for b1 being finite set
for b2 being natural set holds
   Card {b3 where b3 is Element of bool b1: card b3 = b2} = (card b1) choose b2;

:: MATRIX13:th 10
theorem
for b1 being natural set holds
   Card TWOELEMENTSETS Seg b1 = b1 choose 2;

:: MATRIX13:th 11
theorem
for b1 being natural set
for b2 being Element of Permutations b1
      st b2 = Rev idseq b1
   holds    b2 is even(len Permutations b1)
   iff
      (b1 choose 2) mod 2 = 0;

:: MATRIX13:th 12
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2
for b4 being Function-like quasi_total bijective Relation of Seg b1,Seg b1
      st b4 = Rev idseq b1 &
         (for b5, b6 being natural set
               st b5 in Seg b1 & b6 in Seg b1 & b5 + b6 <= b1
            holds b3 *(b5,b6) = 0. b2)
   holds b3 * b4 is upper_triangular Matrix of b1,b1,the carrier of b2;

:: MATRIX13:th 13
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2
for b4 being Function-like quasi_total bijective Relation of Seg b1,Seg b1
      st b4 = Rev idseq b1 &
         (for b5, b6 being natural set
               st b5 in Seg b1 & b6 in Seg b1 & b1 + 1 < b5 + b6
            holds b3 *(b5,b6) = 0. b2)
   holds b3 * b4 is lower_triangular Matrix of b1,b1,the carrier of b2;

:: MATRIX13:th 14
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2
for b4 being Element of Permutations b1
      st b4 = Rev idseq b1 &
         (for b5, b6 being natural set
               st b5 in Seg b1 & b6 in Seg b1 & b5 + b6 <= b1
            holds b3 *(b5,b6) = 0. b2 or for b5, b6 being natural set
               st b5 in Seg b1 & b6 in Seg b1 & b1 + 1 < b5 + b6
            holds b3 *(b5,b6) = 0. b2)
   holds Det b3 = -((the multF of b2) "**" Path_matrix(b4,b3),b4);

:: MATRIX13:th 15
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2
for b4, b5 being upper_triangular Matrix of b1,b1,the carrier of b2
      st b3 = b4 * b5
   holds b3 is upper_triangular Matrix of b1,b1,the carrier of b2 &
    diagonal_of_Matrix b3 = mlt(diagonal_of_Matrix b4,diagonal_of_Matrix b5);

:: MATRIX13:th 16
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2
for b4, b5 being lower_triangular Matrix of b1,b1,the carrier of b2
      st b3 = b4 * b5
   holds b3 is lower_triangular Matrix of b1,b1,the carrier of b2 &
    diagonal_of_Matrix b3 = mlt(diagonal_of_Matrix b4,diagonal_of_Matrix b5);

:: MATRIX13:funcnot 1 => MATRIX13:func 1
definition
  let a1 be non empty set;
  let a2 be tabular FinSequence of a1 *;
  let a3, a4 be natural set;
  let a5 be Element of a3 -tuples_on NAT;
  let a6 be Element of a4 -tuples_on NAT;
  func Segm(A2,A5,A6) -> Matrix of a3,a4,a1 means
    for b1, b2 being natural set
          st [b1,b2] in Indices it
       holds it *(b1,b2) = a2 *(a5 . b1,a6 . b2);
end;

:: MATRIX13:def 1
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3, b4 being natural set
for b5 being Element of b3 -tuples_on NAT
for b6 being Element of b4 -tuples_on NAT
for b7 being Matrix of b3,b4,b1 holds
      b7 = Segm(b2,b5,b6)
   iff
      for b8, b9 being natural set
            st [b8,b9] in Indices b7
         holds b7 *(b8,b9) = b2 *(b5 . b8,b6 . b9);

:: MATRIX13:th 17
theorem
for b1 being non empty set
for b2, b3, b4, b5 being natural set
for b6 being tabular FinSequence of b1 *
for b7 being Element of b2 -tuples_on NAT
for b8 being Element of b3 -tuples_on NAT
      st [:proj2 b7,proj2 b8:] c= Indices b6
   holds    [b4,b5] in Indices Segm(b6,b7,b8)
   iff
      [b7 . b4,b8 . b5] in Indices b6;

:: MATRIX13:th 18
theorem
for b1 being non empty set
for b2, b3 being natural set
for b4 being tabular FinSequence of b1 *
for b5 being Element of b2 -tuples_on NAT
for b6 being Element of b3 -tuples_on NAT
      st [:proj2 b5,proj2 b6:] c= Indices b4 &
         (b2 = 0 implies b3 = 0) &
         (b3 = 0 implies b2 = 0)
   holds (Segm(b4,b5,b6)) @ = Segm(b4 @,b6,b5);

:: MATRIX13:th 19
theorem
for b1 being non empty set
for b2, b3 being natural set
for b4 being tabular FinSequence of b1 *
for b5 being Element of b3 -tuples_on NAT
for b6 being Element of b2 -tuples_on NAT
      st [:proj2 b5,proj2 b6:] c= Indices b4 &
         (b2 = 0 implies b3 = 0)
   holds Segm(b4,b5,b6) = (Segm(b4 @,b6,b5)) @;

:: MATRIX13:th 20
theorem
for b1 being non empty set
for b2 being Matrix of 1,1,b1 holds
   b2 = <*<*b2 *(1,1)*>*>;

:: MATRIX13:th 21
theorem
for b1 being non empty set
for b2, b3 being natural set
for b4 being tabular FinSequence of b1 *
for b5 being Element of b2 -tuples_on NAT
for b6 being Element of b3 -tuples_on NAT
      st b2 = 1 & b3 = 1
   holds Segm(b4,b5,b6) = <*<*b4 *(b5 . 1,b6 . 1)*>*>;

:: MATRIX13:th 22
theorem
for b1 being non empty set
for b2 being Matrix of 2,2,b1 holds
   b2 = (b2 *(1,1),b2 *(1,2))][(b2 *(2,1),b2 *(2,2));

:: MATRIX13:th 23
theorem
for b1 being non empty set
for b2, b3 being natural set
for b4 being tabular FinSequence of b1 *
for b5 being Element of b2 -tuples_on NAT
for b6 being Element of b3 -tuples_on NAT
      st b2 = 2 & b3 = 2
   holds Segm(b4,b5,b6) = (b4 *(b5 . 1,b6 . 1),b4 *(b5 . 1,b6 . 2))][(b4 *(b5 . 2,b6 . 1),b4 *(b5 . 2,b6 . 2));

:: MATRIX13:th 24
theorem
for b1 being non empty set
for b2, b3, b4 being natural set
for b5 being tabular FinSequence of b1 *
for b6 being Element of b4 -tuples_on NAT
for b7 being Element of b2 -tuples_on NAT
      st b3 in Seg b4 & proj2 b7 c= Seg width b5
   holds Line(Segm(b5,b6,b7),b3) = (Line(b5,b6 . b3)) * b7;

:: MATRIX13:th 25
theorem
for b1 being non empty set
for b2, b3, b4, b5 being natural set
for b6 being tabular FinSequence of b1 *
for b7 being Element of b4 -tuples_on NAT
for b8 being Element of b2 -tuples_on NAT
      st b3 in Seg b4 & b5 in Seg b4 & b7 . b3 = b7 . b5
   holds Line(Segm(b6,b7,b8),b3) = Line(Segm(b6,b7,b8),b5);

:: MATRIX13:th 26
theorem
for b1, b2, b3 being natural set
for b4 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b5, b6 being Element of b2 -tuples_on NAT
for b7 being tabular FinSequence of (the carrier of b4) *
      st b1 in Seg b2 & b3 in Seg b2 & b5 . b1 = b5 . b3 & b1 <> b3
   holds Det Segm(b7,b5,b6) = 0. b4;

:: MATRIX13:th 27
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3, b4 being Element of b1 -tuples_on NAT
for b5 being tabular FinSequence of (the carrier of b2) *
      st b3 is not one-to-one
   holds Det Segm(b5,b3,b4) = 0. b2;

:: MATRIX13:th 28
theorem
for b1 being non empty set
for b2, b3, b4 being natural set
for b5 being tabular FinSequence of b1 *
for b6 being Element of b2 -tuples_on NAT
for b7 being Element of b4 -tuples_on NAT
      st b3 in Seg b4 & proj2 b6 c= Seg len b5
   holds Col(Segm(b5,b6,b7),b3) = (Col(b5,b7 . b3)) * b6;

:: MATRIX13:th 29
theorem
for b1 being non empty set
for b2, b3, b4, b5 being natural set
for b6 being tabular FinSequence of b1 *
for b7 being Element of b2 -tuples_on NAT
for b8 being Element of b4 -tuples_on NAT
      st b3 in Seg b4 & b5 in Seg b4 & b8 . b3 = b8 . b5
   holds Col(Segm(b6,b7,b8),b3) = Col(Segm(b6,b7,b8),b5);

:: MATRIX13:th 30
theorem
for b1, b2, b3 being natural set
for b4 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b5, b6 being Element of b2 -tuples_on NAT
for b7 being tabular FinSequence of (the carrier of b4) *
      st b1 in Seg b2 & b3 in Seg b2 & b5 . b1 = b5 . b3 & b1 <> b3
   holds Det Segm(b7,b6,b5) = 0. b4;

:: MATRIX13:th 31
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3, b4 being Element of b1 -tuples_on NAT
for b5 being tabular FinSequence of (the carrier of b2) *
      st b3 is not one-to-one
   holds Det Segm(b5,b4,b3) = 0. b2;

:: MATRIX13:th 32
theorem
for b1 being natural set
for b2, b3 being Element of b1 -tuples_on NAT
      st b2 is one-to-one & b3 is one-to-one & proj2 b2 = proj2 b3
   holds ex b4 being Function-like quasi_total bijective Relation of Seg b1,Seg b1 st
      b3 = b2 * b4;

:: MATRIX13:th 33
theorem
for b1 being non empty set
for b2, b3 being natural set
for b4 being tabular FinSequence of b1 *
for b5, b6 being Element of b3 -tuples_on NAT
for b7 being Element of b2 -tuples_on NAT
for b8 being Function-like quasi_total Relation of Seg b3,Seg b3
      st b5 = b6 * b8
   holds Segm(b4,b5,b7) = (Segm(b4,b6,b7)) * b8;

:: MATRIX13:th 34
theorem
for b1 being non empty set
for b2, b3 being natural set
for b4 being tabular FinSequence of b1 *
for b5 being Element of b2 -tuples_on NAT
for b6, b7 being Element of b3 -tuples_on NAT
for b8 being Function-like quasi_total Relation of Seg b3,Seg b3
      st b6 = b7 * b8
   holds (Segm(b4,b5,b6)) @ = (Segm(b4,b5,b7)) @ * b8;

:: MATRIX13:th 35
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3, b4, b5 being Element of b1 -tuples_on NAT
for b6 being tabular FinSequence of (the carrier of b2) *
for b7 being Element of Permutations b1
      st b3 = b4 * b7
   holds Det Segm(b6,b3,b5) = -(Det Segm(b6,b4,b5),b7) &
    Det Segm(b6,b5,b3) = -(Det Segm(b6,b5,b4),b7);

:: MATRIX13:th 36
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being tabular FinSequence of (the carrier of b2) *
for b4, b5, b6, b7 being Element of b1 -tuples_on NAT
      st proj2 b4 = proj2 b6 &
         proj2 b5 = proj2 b7 &
         Det Segm(b3,b4,b5) <> Det Segm(b3,b6,b7)
   holds Det Segm(b3,b4,b5) = - Det Segm(b3,b6,b7);

:: MATRIX13:th 37
theorem
for b1 being non empty set
for b2, b3, b4, b5 being natural set
for b6 being Matrix of b2,b3,b1
for b7, b8 being FinSequence of b1
for b9 being Element of b4 -tuples_on NAT
for b10 being Element of b5 -tuples_on NAT
   st len b7 = width b6 &
      b8 = b7 * b10 &
      [:proj2 b9,proj2 b10:] c= Indices b6
for b11, b12 being natural set
      st b9 " {b12} = {b11}
   holds ReplaceLine(Segm(b6,b9,b10),b11,b8) = Segm(ReplaceLine(b6,b12,b7),b9,b10);

:: MATRIX13:th 38
theorem
for b1 being non empty set
for b2, b3, b4, b5 being natural set
for b6 being Matrix of b2,b3,b1
for b7 being Element of b4 -tuples_on NAT
for b8 being FinSequence of b1
for b9 being natural set
for b10 being Element of b5 -tuples_on NAT
      st not b9 in proj2 b10 &
         [:proj2 b10,proj2 b7:] c= Indices b6
   holds Segm(b6,b10,b7) = Segm(ReplaceLine(b6,b9,b8),b10,b7);

:: MATRIX13:th 39
theorem
for b1 being non empty set
for b2, b3, b4, b5, b6, b7 being natural set
for b8 being Matrix of b5,b2,b1
for b9 being Element of b6 -tuples_on NAT
for b10 being Element of b3 -tuples_on NAT
      st b4 in Seg b5 &
         b4 in proj2 b9 &
         [:proj2 b9,proj2 b10:] c= Indices b8
   holds ex b11 being Element of b6 -tuples_on NAT st
      proj2 b11 = ((proj2 b9) \ {b4}) \/ {b7} &
       Segm(ReplaceLine(b8,b4,Line(b8,b7)),b9,b10) = Segm(b8,b11,b10);

:: MATRIX13:th 40
theorem
for b1 being non empty set
for b2, b3, b4 being natural set
for b5 being Matrix of b2,b3,b1
for b6 being FinSequence of b1
      st not b4 in Seg len b5
   holds ReplaceLine(b5,b4,b6) = b5;

:: MATRIX13:funcnot 2 => MATRIX13:func 2
definition
  let a1, a2 be natural set;
  let a3 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  let a4 be Matrix of a1,a2,the carrier of a3;
  let a5 be Element of the carrier of a3;
  redefine func a5 * a4 -> Matrix of a1,a2,the carrier of a3;
end;

:: MATRIX13:th 41
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Element of the carrier of b3
for b5 being Element of b1 -tuples_on NAT
for b6 being Element of b2 -tuples_on NAT
for b7 being tabular FinSequence of (the carrier of b3) *
      st [:proj2 b5,proj2 b6:] c= Indices b7
   holds b4 * Segm(b7,b5,b6) = Segm(b4 * b7,b5,b6);

:: MATRIX13:th 42
theorem
for b1 being non empty set
for b2, b3 being natural set
for b4 being tabular FinSequence of b1 *
for b5 being Element of b2 -tuples_on NAT
for b6 being Element of b3 -tuples_on NAT
      st b5 = idseq len b4 & b6 = idseq width b4
   holds Segm(b4,b5,b6) = b4;

:: MATRIX13:exreg 1
registration
  cluster empty finite with_non-empty_elements Element of bool NAT;
end;

:: MATRIX13:exreg 2
registration
  cluster non empty finite with_non-empty_elements Element of bool NAT;
end;

:: MATRIX13:funcreg 1
registration
  let a1 be natural set;
  cluster Seg a1 -> with_non-empty_elements;
end;

:: MATRIX13:funcreg 2
registration
  let a1 be with_non-empty_elements set;
  let a2 be set;
  cluster a1 \ a2 -> with_non-empty_elements;
end;

:: MATRIX13:funcreg 3
registration
  let a1 be with_non-empty_elements set;
  let a2 be set;
  cluster a1 /\ a2 -> with_non-empty_elements;
end;

:: MATRIX13:funcnot 3 => MATRIX13:func 3
definition
  let a1 be natural set;
  redefine func {a1} -> Element of bool NAT;
end;

:: MATRIX13:funcnot 4 => MATRIX13:func 4
definition
  let a1, a2 be natural set;
  redefine func {a1, a2} -> Element of bool NAT;
  commutativity;
::  for a1, a2 being natural set holds
::  {a1,a2} = {a2,a1};
end;

:: MATRIX13:th 43
theorem
for b1 being finite with_non-empty_elements Element of bool NAT holds
   ex b2 being natural set st
      b1 c= Seg b2;

:: MATRIX13:funcnot 5 => MATRIX13:func 5
definition
  let a1 be finite with_non-empty_elements Element of bool NAT;
  redefine func Sgm a1 -> Element of (card a1) -tuples_on NAT;
end;

:: MATRIX13:funcnot 6 => MATRIX13:func 6
definition
  let a1 be non empty set;
  let a2 be tabular FinSequence of a1 *;
  let a3, a4 be finite with_non-empty_elements Element of bool NAT;
  func Segm(A2,A3,A4) -> Matrix of card a3,card a4,a1 equals
    Segm(a2,Sgm a3,Sgm a4);
end;

:: MATRIX13:def 2
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3, b4 being finite with_non-empty_elements Element of bool NAT holds
Segm(b2,b3,b4) = Segm(b2,Sgm b3,Sgm b4);

:: MATRIX13:th 44
theorem
for b1 being non empty set
for b2, b3 being non empty natural set
for b4 being tabular FinSequence of b1 * holds
   Segm(b4,{b2},{b3}) = <*<*b4 *(b2,b3)*>*>;

:: MATRIX13:th 45
theorem
for b1 being non empty set
for b2, b3, b4, b5 being non empty natural set
for b6 being tabular FinSequence of b1 *
      st b2 < b3 & b4 < b5
   holds Segm(b6,{b2,b3},{b4,b5}) = (b6 *(b2,b4),b6 *(b2,b5))][(b6 *(b3,b4),b6 *(b3,b5));

:: MATRIX13:th 46
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 * holds
   Segm(b2,Seg len b2,Seg width b2) = b2;

:: MATRIX13:th 47
theorem
for b1 being non empty set
for b2 being natural set
for b3 being tabular FinSequence of b1 *
for b4, b5 being finite with_non-empty_elements Element of bool NAT
      st b2 in Seg card b4 & b5 c= Seg width b3
   holds Line(Segm(b3,b4,b5),b2) = (Line(b3,(Sgm b4) . b2)) * Sgm b5;

:: MATRIX13:th 48
theorem
for b1 being non empty set
for b2 being natural set
for b3 being tabular FinSequence of b1 *
for b4 being finite with_non-empty_elements Element of bool NAT
      st b2 in Seg card b4
   holds Line(Segm(b3,b4,Seg width b3),b2) = Line(b3,(Sgm b4) . b2);

:: MATRIX13:th 49
theorem
for b1 being non empty set
for b2 being natural set
for b3 being tabular FinSequence of b1 *
for b4, b5 being finite with_non-empty_elements Element of bool NAT
      st b2 in Seg card b4 & b5 c= Seg len b3
   holds Col(Segm(b3,b5,b4),b2) = (Col(b3,(Sgm b4) . b2)) * Sgm b5;

:: MATRIX13:th 50
theorem
for b1 being non empty set
for b2 being natural set
for b3 being tabular FinSequence of b1 *
for b4 being finite with_non-empty_elements Element of bool NAT
      st b2 in Seg card b4
   holds Col(Segm(b3,Seg len b3,b4),b2) = Col(b3,(Sgm b4) . b2);

:: MATRIX13:th 51
theorem
for b1 being non empty set
for b2 being natural set
for b3 being tabular FinSequence of b1 * holds
   Segm(b3,(Seg len b3) \ {b2},Seg width b3) = Del(b3,b2);

:: MATRIX13:th 52
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being tabular FinSequence of (the carrier of b2) * holds
   Segm(b3,Seg len b3,(Seg width b3) \ {b1}) = DelCol(b3,b1);

:: MATRIX13:th 53
theorem
for b1 being set
for b2 being finite with_non-empty_elements Element of bool NAT holds
   (Sgm b2) " b1 is finite with_non-empty_elements Element of bool NAT;

:: MATRIX13:th 54
theorem
for b1 being set
for b2 being finite with_non-empty_elements Element of bool NAT
      st b1 c= b2
   holds Sgm b1 = (Sgm b2) * Sgm ((Sgm b2) " b1);

:: MATRIX13:th 55
theorem
for b1, b2 being set
for b3 being non empty set
for b4 being tabular FinSequence of b3 *
for b5, b6 being finite with_non-empty_elements Element of bool NAT holds
[:(Sgm b5) " b1,(Sgm b6) " b2:] c= Indices Segm(b4,b5,b6);

:: MATRIX13:th 56
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3, b4, b5, b6, b7, b8 being finite with_non-empty_elements Element of bool NAT
      st b3 c= b4 & b5 c= b6 & b7 = (Sgm b4) " b3 & b8 = (Sgm b6) " b5
   holds [:proj2 Sgm b7,proj2 Sgm b8:] c= Indices Segm(b2,b4,b6) &
    Segm(Segm(b2,b4,b6),b7,b8) = Segm(b2,b3,b5);

:: MATRIX13:th 57
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3, b4, b5, b6 being finite with_non-empty_elements Element of bool NAT
      st (b3 = {} implies b4 = {}) &
         (b4 = {} implies b3 = {}) &
         [:b3,b4:] c= Indices Segm(b2,b5,b6)
   holds ex b7, b8 being finite with_non-empty_elements Element of bool NAT st
      b7 c= b5 &
       b8 c= b6 &
       b7 = (Sgm b5) .: b3 &
       b8 = (Sgm b6) .: b4 &
       card b7 = card b3 &
       card b8 = card b4 &
       Segm(Segm(b2,b5,b6),b3,b4) = Segm(b2,b7,b8);

:: MATRIX13:th 58
theorem
for b1, b2, b3 being natural set
for b4 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b5 being Matrix of b1,b1,the carrier of b4 holds
   Segm(b5,(Seg b1) \ {b2},(Seg b1) \ {b3}) = Deleting(b5,b2,b3);

:: MATRIX13:th 59
theorem
for b1 being non empty set
for b2, b3, b4 being natural set
for b5 being Matrix of b2,b3,b1
for b6, b7 being finite with_non-empty_elements Element of bool NAT
for b8, b9 being FinSequence of b1
      st len b8 = width b5 & b9 = b8 * Sgm b6 & [:b7,b6:] c= Indices b5
   holds ReplaceLine(Segm(b5,b7,b6),b4,b9) = Segm(ReplaceLine(b5,(Sgm b7) . b4,b8),b7,b6);

:: MATRIX13:th 60
theorem
for b1 being non empty set
for b2, b3 being natural set
for b4 being Matrix of b2,b3,b1
for b5 being finite with_non-empty_elements Element of bool NAT
for b6 being FinSequence of b1
for b7 being natural set
for b8 being finite with_non-empty_elements Element of bool NAT
      st not b7 in b8 & [:b8,b5:] c= Indices b4
   holds Segm(b4,b8,b5) = Segm(ReplaceLine(b4,b7,b6),b8,b5);

:: MATRIX13:th 61
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3, b4 being finite with_non-empty_elements Element of bool NAT
      st [:b3,b4:] c= Indices b2 &
         (card b3 = 0 implies card b4 = 0) &
         (card b4 = 0 implies card b3 = 0)
   holds (Segm(b2,b3,b4)) @ = Segm(b2 @,b4,b3);

:: MATRIX13:th 62
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3, b4 being finite with_non-empty_elements Element of bool NAT
      st [:b3,b4:] c= Indices b2 &
         (card b4 = 0 implies card b3 = 0)
   holds Segm(b2,b3,b4) = (Segm(b2 @,b4,b3)) @;

:: MATRIX13:th 63
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being Element of the carrier of b1
for b3 being tabular FinSequence of (the carrier of b1) *
for b4, b5 being finite with_non-empty_elements Element of bool NAT
      st [:b4,b5:] c= Indices b3
   holds b2 * Segm(b3,b4,b5) = Segm(b2 * b3,b4,b5);

:: MATRIX13:funcnot 7 => MATRIX13:func 7
definition
  let a1 be non empty set;
  let a2 be tabular FinSequence of a1 *;
  let a3, a4 be finite with_non-empty_elements Element of bool NAT;
  assume card a3 = card a4;
  func EqSegm(A2,A3,A4) -> Matrix of card a3,card a3,a1 equals
    Segm(a2,a3,a4);
end;

:: MATRIX13:def 3
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3, b4 being finite with_non-empty_elements Element of bool NAT
      st card b3 = card b4
   holds EqSegm(b2,b3,b4) = Segm(b2,b3,b4);

:: MATRIX13:th 64
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) *
for b3, b4 being finite with_non-empty_elements Element of bool NAT
for b5, b6 being natural set
      st b5 in Seg card b3 & b6 in Seg card b3 & card b3 = card b4
   holds Delete(EqSegm(b2,b3,b4),b5,b6) = EqSegm(b2,b3 \ {(Sgm b3) . b5},b4 \ {(Sgm b4) . b6}) &
    card (b3 \ {(Sgm b3) . b5}) = card (b4 \ {(Sgm b4) . b6});

:: MATRIX13:th 65
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) *
for b3, b4, b5 being finite with_non-empty_elements Element of bool NAT
      st card b4 = card b5 & b3 c= b4 & Det EqSegm(b2,b4,b5) <> 0. b1
   holds ex b6 being finite with_non-empty_elements Element of bool NAT st
      b6 c= b5 & card b3 = card b6 & Det EqSegm(b2,b3,b6) <> 0. b1;

:: MATRIX13:th 66
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) *
for b3, b4, b5 being finite with_non-empty_elements Element of bool NAT
      st card b3 = card b5 & b4 c= b5 & Det EqSegm(b2,b3,b5) <> 0. b1
   holds ex b6 being finite with_non-empty_elements Element of bool NAT st
      b6 c= b3 & card b6 = card b4 & Det EqSegm(b2,b6,b4) <> 0. b1;

:: MATRIX13:th 67
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3, b4 being finite with_non-empty_elements Element of bool NAT
      st card b3 = card b4
   holds    [:b3,b4:] c= Indices b2
   iff
      b3 c= Seg len b2 & b4 c= Seg width b2;

:: MATRIX13:th 68
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Matrix of b2,b1,the carrier of b3
for b5, b6 being finite with_non-empty_elements Element of bool NAT
for b7 being natural set
for b8 being non empty natural set
      st b7 in Seg b2 & b8 in Seg b2 & b7 in b5 & not b8 in b5 & card b5 = card b6 & [:b5,b6:] c= Indices b4
   holds card b5 = card ((b5 \ {b7}) \/ {b8}) &
    [:(b5 \ {b7}) \/ {b8},b6:] c= Indices b4 &
    (Det EqSegm(ReplaceLine(b4,b7,Line(b4,b8)),b5,b6) = Det EqSegm(b4,(b5 \ {b7}) \/ {b8},b6) or Det EqSegm(ReplaceLine(b4,b7,Line(b4,b8)),b5,b6) = - Det EqSegm(b4,(b5 \ {b7}) \/ {b8},b6));

:: MATRIX13:th 69
theorem
for b1 being non empty set
for b2 being tabular FinSequence of b1 *
for b3, b4 being finite with_non-empty_elements Element of bool NAT
      st card b3 = card b4
   holds    [:b3,b4:] c= Indices b2
   iff
      [:b4,b3:] c= Indices (b2 @);

:: MATRIX13:th 70
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) *
for b3, b4 being finite with_non-empty_elements Element of bool NAT
      st [:b3,b4:] c= Indices b2 & card b3 = card b4
   holds Det EqSegm(b2,b3,b4) = Det EqSegm(b2 @,b4,b3);

:: MATRIX13:th 71
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Element of the carrier of b2
for b4 being Matrix of b1,b1,the carrier of b2 holds
   Det (b3 * b4) = ((power b2) .(b3,b1)) * Det b4;

:: MATRIX13:th 72
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being Element of the carrier of b1
for b3 being tabular FinSequence of (the carrier of b1) *
for b4, b5 being finite with_non-empty_elements Element of bool NAT
      st [:b4,b5:] c= Indices b3 & card b4 = card b5
   holds Det EqSegm(b2 * b3,b4,b5) = ((power b1) .(b2,card b4)) * Det EqSegm(b3,b4,b5);

:: MATRIX13:funcnot 8 => MATRIX13:func 8
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  let a2 be tabular FinSequence of (the carrier of a1) *;
  func the_rank_of A2 -> Element of NAT means
    (ex b1, b2 being finite with_non-empty_elements Element of bool NAT st
        [:b1,b2:] c= Indices a2 & card b1 = card b2 & card b1 = it & Det EqSegm(a2,b1,b2) <> 0. a1) &
     (for b1, b2 being finite with_non-empty_elements Element of bool NAT
           st [:b1,b2:] c= Indices a2 & card b1 = card b2 & Det EqSegm(a2,b1,b2) <> 0. a1
        holds card b1 <= it);
end;

:: MATRIX13:def 4
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) *
for b3 being Element of NAT holds
      b3 = the_rank_of b2
   iff
      (ex b4, b5 being finite with_non-empty_elements Element of bool NAT st
          [:b4,b5:] c= Indices b2 & card b4 = card b5 & card b4 = b3 & Det EqSegm(b2,b4,b5) <> 0. b1) &
       (for b4, b5 being finite with_non-empty_elements Element of bool NAT
             st [:b4,b5:] c= Indices b2 & card b4 = card b5 & Det EqSegm(b2,b4,b5) <> 0. b1
          holds card b4 <= b3);

:: MATRIX13:th 73
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) *
for b3, b4 being finite with_non-empty_elements Element of bool NAT
      st [:b3,b4:] c= Indices b2 & card b3 = card b4
   holds card b3 <= len b2 & card b4 <= width b2;

:: MATRIX13:th 74
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) * holds
   the_rank_of b2 <= len b2 & the_rank_of b2 <= width b2;

:: MATRIX13:th 75
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3, b4 being Element of b1 -tuples_on NAT
for b5 being tabular FinSequence of (the carrier of b2) *
      st [:proj2 b3,proj2 b4:] c= Indices b5 &
         Det Segm(b5,b3,b4) <> 0. b2
   holds ex b6, b7 being finite with_non-empty_elements Element of bool NAT st
      b6 = proj2 b3 & b7 = proj2 b4 & card b6 = card b7 & card b6 = b1 & Det EqSegm(b5,b6,b7) <> 0. b2;

:: MATRIX13:th 76
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) *
for b3 being Element of NAT holds
      the_rank_of b2 = b3
   iff
      (ex b4, b5 being Element of b3 -tuples_on NAT st
          [:proj2 b4,proj2 b5:] c= Indices b2 &
           Det Segm(b2,b4,b5) <> 0. b1) &
       (for b4 being natural set
       for b5, b6 being Element of b4 -tuples_on NAT
             st [:proj2 b5,proj2 b6:] c= Indices b2 &
                Det Segm(b2,b5,b6) <> 0. b1
          holds b4 <= b3);

:: MATRIX13:th 77
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Element of b1 -tuples_on NAT
for b5 being Element of b2 -tuples_on NAT
for b6 being tabular FinSequence of (the carrier of b3) *
      st (b1 = 0 or b2 = 0)
   holds the_rank_of Segm(b6,b4,b5) = 0;

:: MATRIX13:th 78
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Element of b1 -tuples_on NAT
for b5 being Element of b2 -tuples_on NAT
for b6 being tabular FinSequence of (the carrier of b3) *
      st [:proj2 b4,proj2 b5:] c= Indices b6
   holds the_rank_of Segm(b6,b4,b5) <= the_rank_of b6;

:: MATRIX13:th 79
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) *
for b3, b4 being finite with_non-empty_elements Element of bool NAT
      st [:b3,b4:] c= Indices b2
   holds the_rank_of Segm(b2,b3,b4) <= the_rank_of b2;

:: MATRIX13:th 80
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) *
for b3, b4, b5, b6 being finite with_non-empty_elements Element of bool NAT
      st b3 c= b4 & b5 c= b6
   holds the_rank_of Segm(b2,b3,b5) <= the_rank_of Segm(b2,b4,b6);

:: MATRIX13:th 81
theorem
for b1, b2 being Relation-like Function-like set
      st proj2 b1 c= proj2 b2
   holds ex b3 being Relation-like Function-like set st
      proj1 b3 = proj1 b1 & proj2 b3 c= proj1 b2 & b1 = b3 * b2;

:: MATRIX13:th 82
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Element of b1 -tuples_on NAT
for b5 being Element of b2 -tuples_on NAT
for b6 being tabular FinSequence of (the carrier of b3) *
      st [:proj2 b4,proj2 b5:] = Indices b6
   holds the_rank_of b6 = the_rank_of Segm(b6,b4,b5);

:: MATRIX13:th 83
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Matrix of b1,b1,the carrier of b2 holds
      the_rank_of b3 = b1
   iff
      Det b3 <> 0. b2;

:: MATRIX13:th 84
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) * holds
   the_rank_of b2 = the_rank_of (b2 @);

:: MATRIX13:th 85
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Matrix of b1,b2,the carrier of b3
for b5 being Function-like quasi_total bijective Relation of Seg b1,Seg b1 holds
   the_rank_of b4 = the_rank_of (b4 * b5);

:: MATRIX13:th 86
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being Element of the carrier of b1
for b3 being tabular FinSequence of (the carrier of b1) *
      st b2 <> 0. b1
   holds the_rank_of b3 = the_rank_of (b2 * b3);

:: MATRIX13:th 87
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being Element of the carrier of b1
for b3, b4 being FinSequence of the carrier of b1
for b5 being Relation-like Function-like set
      st b4 = b5 * b3 & proj2 b5 c= dom b3
   holds b5 * (b2 * b3) = b2 * b4;

:: MATRIX13:th 88
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2, b3, b4, b5 being FinSequence of the carrier of b1
for b6 being Relation-like Function-like set
      st b3 = b6 * b2 & proj2 b6 c= dom b2 & b5 = b6 * b4 & proj2 b6 c= dom b4
   holds b6 * (b2 + b4) = b3 + b5;

:: MATRIX13:th 89
theorem
for b1, b2, b3 being natural set
for b4 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b5 being Element of the carrier of b4
for b6 being Matrix of b1,b2,the carrier of b4
      st b5 <> 0. b4
   holds the_rank_of b6 = the_rank_of ReplaceLine(b6,b3,b5 * Line(b6,b3));

:: MATRIX13:th 90
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being tabular FinSequence of (the carrier of b2) *
      st Line(b3,b1) = (width b3) |-> 0. b2
   holds the_rank_of DelLine(b3,b1) = the_rank_of b3;

:: MATRIX13:th 91
theorem
for b1, b2, b3 being natural set
for b4 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b5 being Matrix of b1,b2,the carrier of b4
for b6 being FinSequence of the carrier of b4
      st len b6 = width b5
   holds the_rank_of DelLine(b5,b3) = the_rank_of ReplaceLine(b5,b3,(0. b4) * b6);

:: MATRIX13:th 92
theorem
for b1, b2, b3, b4 being natural set
for b5 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b6 being Element of the carrier of b5
for b7 being Matrix of b1,b2,the carrier of b5
      st b3 in Seg len b7 & (b4 = b3 implies b6 <> - 1_ b5)
   holds the_rank_of b7 = the_rank_of ReplaceLine(b7,b4,(Line(b7,b4)) + (b6 * Line(b7,b3)));

:: MATRIX13:th 93
theorem
for b1, b2, b3, b4 being natural set
for b5 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b6 being Element of the carrier of b5
for b7 being Matrix of b1,b2,the carrier of b5
      st b3 in Seg len b7 & b3 <> b4
   holds the_rank_of DelLine(b7,b4) = the_rank_of ReplaceLine(b7,b4,b6 * Line(b7,b3));

:: MATRIX13:th 94
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) * holds
      0 < the_rank_of b2
   iff
      ex b3, b4 being natural set st
         [b3,b4] in Indices b2 & b2 *(b3,b4) <> 0. b1;

:: MATRIX13:th 95
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) * holds
      the_rank_of b2 = 0
   iff
      b2 = 0.(b1,len b2,width b2);

:: MATRIX13:th 96
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) * holds
      the_rank_of b2 = 1
   iff
      (ex b3, b4 being natural set st
          [b3,b4] in Indices b2 & b2 *(b3,b4) <> 0. b1) &
       (for b3, b4, b5, b6 being non empty natural set
             st b3 <> b4 &
                b5 <> b6 &
                [:{b3,b4},{b5,b6}:] c= Indices b2
          holds Det EqSegm(b2,{b3,b4},{b5,b6}) = 0. b1);

:: MATRIX13:th 97
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) * holds
      the_rank_of b2 = 1
   iff
      (ex b3, b4 being natural set st
          [b3,b4] in Indices b2 & b2 *(b3,b4) <> 0. b1) &
       (for b3, b4, b5, b6 being natural set
             st [:{b3,b4},{b5,b6}:] c= Indices b2
          holds (b2 *(b3,b5)) * (b2 *(b4,b6)) = (b2 *(b3,b6)) * (b2 *(b4,b5)));

:: MATRIX13:th 98
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular FinSequence of (the carrier of b1) * holds
      the_rank_of b2 = 1
   iff
      ex b3 being natural set st
         b3 in Seg len b2 &
          (ex b4 being natural set st
             b4 in Seg width b2 & b2 *(b3,b4) <> 0. b1) &
          (for b4 being natural set
                st b4 in Seg len b2
             holds ex b5 being Element of the carrier of b1 st
                Line(b2,b4) = b5 * Line(b2,b3));

:: MATRIX13:exreg 3
registration
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  cluster Relation-like Function-like finite FinSequence-like tabular diagonal FinSequence-yielding FinSequence of (the carrier of a1) *;
end;

:: MATRIX13:th 99
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular diagonal FinSequence of (the carrier of b1) *
for b3 being set
   st b3 = {b4 where b4 is Element of NAT: [b4,b4] in Indices b2 & b2 *(b4,b4) <> 0. b1}
for b4, b5 being finite with_non-empty_elements Element of bool NAT
      st [:b4,b5:] c= Indices b2 & card b4 = card b5 & Det EqSegm(b2,b4,b5) <> 0. b1
   holds b4 c= b3 & b5 c= b3;

:: MATRIX13:th 100
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular diagonal FinSequence of (the carrier of b1) *
for b3 being finite with_non-empty_elements Element of bool NAT
      st [:b3,b3:] c= Indices b2
   holds Segm(b2,b3,b3) is diagonal(b1);

:: MATRIX13:th 101
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being tabular diagonal FinSequence of (the carrier of b1) *
for b3 being set
      st b3 = {b4 where b4 is Element of NAT: [b4,b4] in Indices b2 & b2 *(b4,b4) <> 0. b1}
   holds the_rank_of b2 = Card b3;

:: MATRIX13:th 102
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being Element of the carrier of b2
for b4, b5, b6 being Element of the carrier of b1 -VectSp_over b2
for b7, b8, b9 being Element of b1 -tuples_on the carrier of b2 holds
the carrier of b1 -VectSp_over b2 = b1 -tuples_on the carrier of b2 &
 0. (b1 -VectSp_over b2) = b1 |-> 0. b2 &
 (b7 = b4 & b8 = b5 implies b7 + b8 = b4 + b5) &
 (b9 = b6 implies b3 * b9 = b3 * b6);

:: MATRIX13:funcnot 9 => MATRIX13:func 9
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  let a2 be natural set;
  redefine func a2 -VectSp_over a1 -> non empty right_complementable Abelian add-associative right_zeroed strict VectSp-like VectSpStr over a1;
end;

:: MATRIX13:condreg 1
registration
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  let a2 be natural set;
  cluster -> Relation-like Function-like (Element of the carrier of a2 -VectSp_over a1);
end;

:: MATRIX13:funcnot 10 => RELAT_1:func 2
notation
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  let a2, a3 be natural set;
  let a4 be Matrix of a2,a3,the carrier of a1;
  synonym lines a4 for proj2 a1;
end;

:: MATRIX13:attrnot 1 => FUNCT_1:attr 2
notation
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  let a2, a3 be natural set;
  let a4 be Matrix of a2,a3,the carrier of a1;
  synonym without_repeated_line for one-to-one;
end;

:: MATRIX13:funcnot 11 => MATRIX13:func 10
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  let a2, a3 be natural set;
  let a4 be Matrix of a2,a3,the carrier of a1;
  redefine func lines a4 -> Element of bool the carrier of a3 -VectSp_over a1;
end;

:: MATRIX13:th 103
theorem
for b1 being set
for b2, b3 being natural set
for b4 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b5 being Matrix of b3,b2,the carrier of b4 holds
      b1 in lines b5
   iff
      ex b6 being natural set st
         b6 in Seg b3 & b1 = Line(b5,b6);

:: MATRIX13:th 104
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being finite Element of bool the carrier of b1 -VectSp_over b2 holds
   ex b4 being Matrix of card b3,b1,the carrier of b2 st
      b4 is one-to-one & lines b4 = b3;

:: MATRIX13:funcnot 12 => MATRIX13:func 11
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  let a2 be natural set;
  let a3 be FinSequence of the carrier of a2 -VectSp_over a1;
  func FinS2MX A3 -> Matrix of len a3,a2,the carrier of a1 equals
    a3;
end;

:: MATRIX13:def 5
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being natural set
for b3 being FinSequence of the carrier of b2 -VectSp_over b1 holds
   FinS2MX b3 = b3;

:: MATRIX13:funcnot 13 => MATRIX13:func 12
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  let a2, a3 be natural set;
  let a4 be Matrix of a2,a3,the carrier of a1;
  func MX2FinS A4 -> FinSequence of the carrier of a3 -VectSp_over a1 equals
    a4;
end;

:: MATRIX13:def 6
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2, b3 being natural set
for b4 being Matrix of b2,b3,the carrier of b1 holds
   MX2FinS b4 = b4;

:: MATRIX13:th 105
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Matrix of b2,b1,the carrier of b3
      st the_rank_of b4 = b2
   holds b4 is one-to-one;

:: MATRIX13:th 106
theorem
for b1, b2, b3 being natural set
for b4 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b5 being Element of the carrier of b4
for b6 being Linear_Combination of b2 -VectSp_over b4
for b7 being Matrix of b1,b2,the carrier of b4
      st b3 in Seg len b7 & b5 = b6 . (b7 . b3)
   holds Line(FinS2MX (b6 (#) MX2FinS b7),b3) = b5 * Line(b7,b3);

:: MATRIX13:th 107
theorem
for b1, b2, b3 being natural set
for b4 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b5 being Linear_Combination of b3 -VectSp_over b4
for b6 being Matrix of b1,b3,the carrier of b4
      st b6 is one-to-one & Carrier b5 c= lines b6 & b2 in Seg b3
   holds (Sum b5) . b2 = Sum Col(FinS2MX (b5 (#) MX2FinS b6),b2);

:: MATRIX13:th 108
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4, b5 being Matrix of b2,b1,the carrier of b3
      st b4 is one-to-one &
         (for b6 being natural set
               st b6 in Seg b2
            holds ex b7 being Element of the carrier of b3 st
               Line(b5,b6) = b7 * Line(b4,b6))
   holds ex b6 being Linear_Combination of lines b4 st
      b6 (#) MX2FinS b4 = b5;

:: MATRIX13:th 109
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Matrix of b2,b1,the carrier of b3
      st b4 is one-to-one
   holds    (for b5 being natural set
             st b5 in Seg b2
          holds Line(b4,b5) <> b1 |-> 0. b3) &
       (for b5 being Matrix of b2,b1,the carrier of b3
             st (for b6 being natural set
                      st b6 in Seg b2
                   holds ex b7 being Element of the carrier of b3 st
                      Line(b5,b6) = b7 * Line(b4,b6)) &
                (for b6 being natural set
                      st b6 in Seg b1
                   holds Sum Col(b5,b6) = 0. b3)
          holds b5 = 0.(b3,b2,b1))
   iff
      lines b4 is linearly-independent(b3, b1 -VectSp_over b3);

:: MATRIX13:th 110
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Matrix of b2,b1,the carrier of b3
      st the_rank_of b4 = b2
   holds lines b4 is linearly-independent(b3, b1 -VectSp_over b3);

:: MATRIX13:th 111
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being diagonal Matrix of b1,b1,the carrier of b2
      st the_rank_of b3 = b1
   holds lines b3 is Basis of b1 -VectSp_over b2;

:: MATRIX13:funcnot 14 => MATRIX13:func 13
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr;
  let a2 be natural set;
  redefine func a2 -VectSp_over a1 -> non empty right_complementable Abelian add-associative right_zeroed strict VectSp-like finite-dimensional VectSpStr over a1;
end;

:: MATRIX13:th 112
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr holds
   dim (b1 -VectSp_over b2) = b1;

:: MATRIX13:th 113
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Matrix of b2,b1,the carrier of b3
for b5 being natural set
for b6 being Element of the carrier of b3
      st for b7 being natural set
              st b7 in Seg b2
           holds b4 *(b7,b5) = b6
   holds    b4 is one-to-one
   iff
      Segm(b4,Seg len b4,(Seg width b4) \ {b5}) is one-to-one;

:: MATRIX13:th 114
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Matrix of b2,b1,the carrier of b3
for b5 being natural set
      st b4 is one-to-one &
         lines b4 is linearly-independent(b3, b1 -VectSp_over b3) &
         (for b6 being natural set
               st b6 in Seg b2
            holds b4 *(b6,b5) = 0. b3)
   holds lines Segm(b4,Seg len b4,(Seg width b4) \ {b5}) is linearly-independent(b3, (card ((Seg width b4) \ {b5})) -VectSp_over b3);

:: MATRIX13:th 115
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b2 being Element of the carrier of b1
for b3 being non empty right_complementable Abelian add-associative right_zeroed VectSp-like VectSpStr over b1
for b4 being finite Element of bool the carrier of b3
   st b4 is linearly-independent(b1, b3)
for b5, b6 being Element of the carrier of b3
      st b5 in b4 & b6 in b4 & b5 <> b6
   holds (b4 \ {b5}) \/ {b5 + (b2 * b6)} is linearly-independent(b1, b3);

:: MATRIX13:th 116
theorem
for b1 being set
for b2 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b3 being non empty right_complementable Abelian add-associative right_zeroed VectSp-like VectSpStr over b2
for b4, b5 being Element of the carrier of b3 holds
   b1 in Lin {b4,b5}
iff
   ex b6, b7 being Element of the carrier of b2 st
      b1 = (b6 * b4) + (b7 * b5);

:: MATRIX13:th 117
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Element of the carrier of b3
for b5 being Matrix of b2,b1,the carrier of b3
   st lines b5 is linearly-independent(b3, b1 -VectSp_over b3) & b5 is one-to-one
for b6, b7 being natural set
      st b7 in Seg len b5 & b6 <> b7
   holds ReplaceLine(b5,b6,(Line(b5,b6)) + (b4 * Line(b5,b7))) is one-to-one &
    lines ReplaceLine(b5,b6,(Line(b5,b6)) + (b4 * Line(b5,b7))) is linearly-independent(b3, b1 -VectSp_over b3);

:: MATRIX13:th 118
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being finite with_non-empty_elements Element of bool NAT
for b5 being Matrix of b1,b2,the carrier of b3
      st b4 c= Seg b1
   holds lines Segm(b5,b4,Seg b2) c= lines b5;

:: MATRIX13:th 119
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being finite with_non-empty_elements Element of bool NAT
for b5 being Matrix of b1,b2,the carrier of b3
      st b4 c= Seg b1 & lines b5 is linearly-independent(b3, b2 -VectSp_over b3)
   holds lines Segm(b5,b4,Seg b2) is linearly-independent(b3, (card Seg b2) -VectSp_over b3);

:: MATRIX13:th 120
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being finite with_non-empty_elements Element of bool NAT
for b5 being Matrix of b1,b2,the carrier of b3
      st b4 c= Seg b1 & b5 is one-to-one
   holds Segm(b5,b4,Seg b2) is one-to-one;

:: MATRIX13:th 121
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Matrix of b1,b2,the carrier of b3 holds
      lines b4 is linearly-independent(b3, b2 -VectSp_over b3) & b4 is one-to-one
   iff
      the_rank_of b4 = b1;

:: MATRIX13:th 122
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Matrix of b2,b1,the carrier of b3
for b5 being Element of bool the carrier of b1 -VectSp_over b3
      st b5 c= lines b4
   holds ex b6 being finite with_non-empty_elements Element of bool NAT st
      b6 c= Seg b2 & lines Segm(b4,b6,Seg b1) = b5 & Segm(b4,b6,Seg b1) is one-to-one;

:: MATRIX13:th 123
theorem
for b1, b2 being natural set
for b3 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b4 being Matrix of b1,b2,the carrier of b3
for b5 being Element of NAT holds
      the_rank_of b4 = b5
   iff
      (ex b6 being finite Element of bool the carrier of b2 -VectSp_over b3 st
          b6 is linearly-independent(b3, b2 -VectSp_over b3) & b6 c= lines b4 & card b6 = b5) &
       (for b6 being finite Element of bool the carrier of b2 -VectSp_over b3
             st b6 is linearly-independent(b3, b2 -VectSp_over b3) & b6 c= lines b4
          holds card b6 <= b5);