Article MATRIXR2, MML version 4.99.1005

:: MATRIXR2:th 1
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2 & b1 + b2 = 0* len b1
   holds b1 = - b2 & b2 = - b1;

:: MATRIXR2:th 2
theorem
for b1 being non empty set
for b2, b3 being Element of NAT
for b4 being tabular FinSequence of b1 *
for b5 being FinSequence of b1
      st b5 = b4 . b2 & 1 <= b2 & b2 <= len b4 & 1 <= b3 & b3 <= width b4 & len b5 = width b4
   holds b4 *(b2,b3) = b5 . b3;

:: MATRIXR2:th 3
theorem
for b1, b2 being Element of NAT
for b3 being real set
for b4 being tabular FinSequence of REAL *
      st len (b3 * b4) = len b4 & width (b3 * b4) = width b4 & [b1,b2] in Indices b4
   holds (b3 * b4) *(b1,b2) = b3 * (b4 *(b1,b2));

:: MATRIXR2:th 4
theorem
for b1 being Element of NAT
for b2, b3 being Matrix of b1,b1,REAL holds
len (b2 * b3) = len b2 & width (b2 * b3) = width b3 & len (b2 * b3) = b1 & width (b2 * b3) = b1;

:: MATRIXR2:th 5
theorem
for b1 being real set
for b2 being tabular FinSequence of REAL * holds
   len (b1 * b2) = len b2 & width (b1 * b2) = width b2;

:: MATRIXR2:th 6
theorem
for b1, b2 being tabular FinSequence of REAL *
      st len b1 = len b2 & width b1 = width b2
   holds len (b1 - b2) = len b1 &
    width (b1 - b2) = width b1 &
    (for b3, b4 being Element of NAT
          st [b3,b4] in Indices b1
       holds (b1 - b2) *(b3,b4) = (b1 *(b3,b4)) - (b2 *(b3,b4)));

:: MATRIXR2:funcnot 1 => MATRIXR2:func 1
definition
  let a1 be Element of NAT;
  let a2, a3 be Matrix of a1,a1,REAL;
  redefine func a2 * a3 -> Matrix of a1,a1,REAL;
end;

:: MATRIXR2:th 7
theorem
for b1, b2 being tabular FinSequence of REAL *
      st len b1 = len b2 & width b1 = width b2 & 0 < len b1
   holds b1 + (b2 - b2) = b1;

:: MATRIXR2:th 8
theorem
for b1, b2 being tabular FinSequence of REAL *
      st len b1 = len b2 & width b1 = width b2 & 0 < len b1
   holds (b1 + b2) - b2 = b1;

:: MATRIXR2:th 9
theorem
for b1 being tabular FinSequence of REAL * holds
   (- 1) * b1 = - b1;

:: MATRIXR2:th 10
theorem
for b1 being tabular FinSequence of REAL *
for b2, b3 being Element of NAT
      st [b2,b3] in Indices b1
   holds (- b1) *(b2,b3) = - (b1 *(b2,b3));

:: MATRIXR2:th 11
theorem
for b1, b2 being Element of REAL
for b3 being tabular FinSequence of REAL * holds
   (b1 * b2) * b3 = b1 * (b2 * b3);

:: MATRIXR2:th 12
theorem
for b1, b2 being Element of REAL
for b3 being tabular FinSequence of REAL * holds
   (b1 + b2) * b3 = (b1 * b3) + (b2 * b3);

:: MATRIXR2:th 13
theorem
for b1, b2 being Element of REAL
for b3 being tabular FinSequence of REAL * holds
   (b1 - b2) * b3 = (b1 * b3) - (b2 * b3);

:: MATRIXR2:th 14
theorem
for b1 being Element of NAT
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 0 < b1 & 0 < len b3
   holds (0.(b2,b1,len b3)) * b3 = 0.(b2,b1,width b3);

:: MATRIXR2:th 15
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 tabular FinSequence of (the carrier of b1) *
      st len b2 = width b3 & 0 < len b3 & 0 < len b2
   holds (- b3) * b2 = - (b3 * b2);

:: MATRIXR2:th 16
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 being tabular FinSequence of (the carrier of b1) *
      st len b3 = len b4 & width b3 = width b4 & len b2 = width b3 & 0 < len b3 & 0 < len b2
   holds (b3 - b4) * b2 = (b3 * b2) - (b4 * b2);

:: MATRIXR2:th 17
theorem
for b1, b2, b3 being tabular FinSequence of REAL *
      st len b1 = len b2 & width b1 = width b2 & len b3 = width b1 & 0 < len b1 & 0 < len b3
   holds (b1 - b2) * b3 = (b1 * b3) - (b2 * b3);

:: MATRIXR2:th 18
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 NAT
for b3, b4 being tabular FinSequence of (the carrier of b1) *
      st 0 < width b3 & 0 < len b3
   holds b3 * 0.(b1,width b3,b2) = 0.(b1,len b3,b2);

:: MATRIXR2:th 19
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 tabular FinSequence of (the carrier of b1) *
      st width b2 = len b3 & 0 < len b2 & 0 < len b3
   holds b2 * - b3 = - (b2 * b3);

:: MATRIXR2:th 20
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 being tabular FinSequence of (the carrier of b1) *
      st len b3 = len b4 & width b3 = width b4 & len b3 = width b2 & 0 < len b3 & 0 < len b2
   holds b2 * (b3 - b4) = (b2 * b3) - (b2 * b4);

:: MATRIXR2:th 21
theorem
for b1, b2, b3 being tabular FinSequence of REAL *
      st len b1 = len b2 & width b1 = width b2 & width b3 = len b1 & 0 < len b3 & 0 < len b1
   holds b3 * (b1 - b2) = (b3 * b1) - (b3 * b2);

:: MATRIXR2:th 22
theorem
for b1, b2, b3 being tabular FinSequence of REAL *
      st len b1 = len b2 &
         width b1 = width b2 &
         len b3 = len b1 &
         width b3 = width b1 &
         (for b4, b5 being Element of NAT
               st [b4,b5] in Indices b1
            holds b3 *(b4,b5) = (b1 *(b4,b5)) - (b2 *(b4,b5)))
   holds b3 = b1 - b2;

:: MATRIXR2:th 23
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2 & 0 < len b1
   holds LineVec2Mx (b1 - b2) = (LineVec2Mx b1) - LineVec2Mx b2;

:: MATRIXR2:th 24
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2 & 0 < len b1
   holds ColVec2Mx (b1 - b2) = (ColVec2Mx b1) - ColVec2Mx b2;

:: MATRIXR2:th 25
theorem
for b1, b2 being tabular FinSequence of REAL *
   st len b1 = len b2 & width b1 = width b2
for b3 being natural set
      st 1 <= b3 & b3 <= len b1
   holds Line(b1 - b2,b3) = (Line(b1,b3)) - Line(b2,b3);

:: MATRIXR2:th 26
theorem
for b1, b2 being tabular FinSequence of REAL *
   st len b1 = len b2 & width b1 = width b2
for b3 being natural set
      st 1 <= b3 & b3 <= width b1
   holds Col(b1 - b2,b3) = (Col(b1,b3)) - Col(b2,b3);

:: MATRIXR2:th 27
theorem
for b1, b2, b3, b4 being Element of NAT
for b5 being Matrix of b1,b2,REAL
for b6 being Matrix of b2,b3,REAL
for b7 being Matrix of b3,b4,REAL
      st 0 < b1 & 0 < b2 & 0 < b3
   holds (b5 * b6) * b7 = b5 * (b6 * b7);

:: MATRIXR2:th 28
theorem
for b1 being Element of NAT
for b2, b3, b4 being Matrix of b1,b1,REAL holds
(b2 * b3) * b4 = b2 * (b3 * b4);

:: MATRIXR2:th 29
theorem
for b1 being non empty set
for b2 being Element of NAT
for b3 being Matrix of b2,b2,b1 holds
   b3 @ @ = b3;

:: MATRIXR2:th 30
theorem
for b1 being Element of NAT
for b2, b3 being Matrix of b1,b1,REAL holds
(b2 * b3) @ = b3 @ * (b2 @);

:: MATRIXR2:th 31
theorem
for b1, b2 being Element of NAT
for b3 being tabular FinSequence of REAL *
      st 0 < b1 & len b3 = b1 & width b3 = b2
   holds (- b3) + b3 = 0_Rmatrix(b1,b2);

:: MATRIXR2:funcnot 2 => MATRIXR2:func 2
definition
  let a1 be Element of NAT;
  let a2 be Matrix of a1,a1,REAL;
  redefine func MXR2MXF a2 -> Matrix of a1,a1,the carrier of F_Real;
end;

:: MATRIXR2:funcnot 3 => MATRIXR2:func 3
definition
  let a1 be Element of NAT;
  let a2 be Matrix of a1,a1,REAL;
  func Det A2 -> Element of REAL equals
    Det MXR2MXF a2;
end;

:: MATRIXR2:def 1
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL holds
   Det b2 = Det MXR2MXF b2;

:: MATRIXR2:th 32
theorem
for b1 being Matrix of 2,2,REAL holds
   Det b1 = ((b1 *(1,1)) * (b1 *(2,2))) - ((b1 *(1,2)) * (b1 *(2,1)));

:: MATRIXR2:th 33
theorem
for b1 being Element of NAT
for b2, b3, b4 being Relation-like Function-like FinSequence-like set
      st len b2 = b1 & len b3 = b1 & len b4 = b1
   holds <*b2,b3,b4*> is tabular;

:: MATRIXR2:th 34
theorem
for b1 being non empty set
for b2 being Element of NAT
for b3, b4, b5 being FinSequence of b1
      st len b3 = b2 & len b4 = b2 & len b5 = b2
   holds <*b3,b4,b5*> is Matrix of 3,b2,b1;

:: MATRIXR2:th 35
theorem
for b1 being non empty set
for b2, b3, b4, b5, b6, b7, b8, b9, b10 being Element of b1 holds
<*<*b2,b3,b4*>,<*b5,b6,b7*>,<*b8,b9,b10*>*> is Matrix of 3,3,b1;

:: MATRIXR2:th 36
theorem
for b1 being non empty set
for b2 being Element of NAT
for b3 being Matrix of b2,b2,b1
for b4 being FinSequence of b1
for b5 being natural set
      st b4 = b3 . b5 & b5 in Seg b2
   holds len b4 = b2;

:: MATRIXR2:th 37
theorem
for b1 being non empty set
for b2 being Matrix of 3,3,b1 holds
   b2 = <*<*b2 *(1,1),b2 *(1,2),b2 *(1,3)*>,<*b2 *(2,1),b2 *(2,2),b2 *(2,3)*>,<*b2 *(3,1),b2 *(3,2),b2 *(3,3)*>*>;

:: MATRIXR2:th 38
theorem
for b1 being Matrix of 3,3,REAL holds
   Det b1 = (((((((b1 *(1,1)) * (b1 *(2,2))) * (b1 *(3,3))) - (((b1 *(1,3)) * (b1 *(2,2))) * (b1 *(3,1)))) - (((b1 *(1,1)) * (b1 *(2,3))) * (b1 *(3,2)))) + (((b1 *(1,2)) * (b1 *(2,3))) * (b1 *(3,1)))) - (((b1 *(1,2)) * (b1 *(2,1))) * (b1 *(3,3)))) + (((b1 *(1,3)) * (b1 *(2,1))) * (b1 *(3,2)));

:: MATRIXR2:th 39
theorem
for b1 being Function-like quasi_total bijective Relation of Seg 0,Seg 0 holds
   b1 = <*> NAT;

:: MATRIXR2:th 40
theorem
Permutations 0 = {<*> NAT};

:: MATRIXR2:th 41
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 Matrix of 0,0,the carrier of b1 holds
   Det b2 = 1. b1;

:: MATRIXR2:th 42
theorem
for b1 being Matrix of 0,0,REAL holds
   Det b1 = 1;

:: MATRIXR2:th 43
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 Matrix of b2,b2,the carrier of b1 holds
   Det b3 = Det (b3 @);

:: MATRIXR2:th 44
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL holds
   Det b2 = Det (b2 @);

:: MATRIXR2:th 45
theorem
for b1 being Element of NAT
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 Matrix of b1,b1,the carrier of b2 holds
Det (b3 * b4) = (Det b3) * Det b4;

:: MATRIXR2:th 46
theorem
for b1 being Element of NAT
for b2, b3 being Matrix of b1,b1,REAL holds
Det (b2 * b3) = (Det b2) * Det b3;

:: MATRIXR2:th 47
theorem
for b1, b2 being FinSequence of REAL
for b3 being tabular FinSequence of REAL *
      st len b1 = len b3 & len b2 = len b1 & 0 < len b1 & 0 < len b3
   holds (b1 - b2) * b3 = (b1 * b3) - (b2 * b3);

:: MATRIXR2:th 48
theorem
for b1, b2 being FinSequence of REAL
for b3 being tabular FinSequence of REAL *
      st len b1 = width b3 & len b2 = len b1 & 0 < len b1 & 0 < len b3
   holds b3 * (b1 - b2) = (b3 * b1) - (b3 * b2);

:: MATRIXR2:th 49
theorem
for b1 being FinSequence of REAL
for b2 being tabular FinSequence of REAL *
      st len b2 = len b1 & 0 < len b1 & 0 < width b2
   holds (- b1) * b2 = - (b1 * b2);

:: MATRIXR2:th 50
theorem
for b1 being FinSequence of REAL
for b2 being tabular FinSequence of REAL *
      st len b1 = width b2 & 0 < len b2 & 0 < len b1
   holds b2 * - b1 = - (b2 * b1);

:: MATRIXR2:th 51
theorem
for b1 being FinSequence of REAL
for b2 being tabular FinSequence of REAL *
      st len b1 = len b2 & 0 < len b1 & 0 < width b2
   holds b1 * - b2 = - (b1 * b2);

:: MATRIXR2:th 52
theorem
for b1 being FinSequence of REAL
for b2 being tabular FinSequence of REAL *
      st len b1 = width b2 & 0 < len b2 & 0 < len b1
   holds (- b2) * b1 = - (b2 * b1);

:: MATRIXR2:th 53
theorem
for b1 being Element of REAL
for b2 being FinSequence of REAL
for b3 being tabular FinSequence of REAL *
      st width b3 = len b2 & 0 < len b2 & 0 < len b3
   holds b3 * (b1 * b2) = b1 * (b3 * b2);

:: MATRIXR2:th 54
theorem
for b1 being FinSequence of REAL
for b2, b3 being tabular FinSequence of REAL *
      st len b1 = len b2 & len b2 = len b3 & width b2 = width b3 & 0 < len b2
   holds b1 * (b2 - b3) = (b1 * b2) - (b1 * b3);

:: MATRIXR2:th 55
theorem
for b1 being FinSequence of REAL
for b2, b3 being tabular FinSequence of REAL *
      st len b1 = width b2 & len b2 = len b3 & width b2 = width b3 & 0 < len b1 & 0 < len b2
   holds (b2 - b3) * b1 = (b2 * b1) - (b3 * b1);

:: MATRIXR2:th 56
theorem
for b1 being FinSequence of REAL
for b2 being tabular FinSequence of REAL *
      st len b2 = len b1
   holds (LineVec2Mx b1) * b2 = LineVec2Mx (b1 * b2);

:: MATRIXR2:th 57
theorem
for b1 being FinSequence of REAL
for b2, b3 being tabular FinSequence of REAL *
      st len b1 = len b2 & width b2 = len b3
   holds b1 * (b2 * b3) = (b1 * b2) * b3;

:: MATRIXR2:th 58
theorem
for b1 being FinSequence of REAL
for b2 being tabular FinSequence of REAL *
      st width b2 = len b1 & 0 < len b1 & 0 < len b2
   holds b2 * ColVec2Mx b1 = ColVec2Mx (b2 * b1);

:: MATRIXR2:th 59
theorem
for b1 being FinSequence of REAL
for b2, b3 being tabular FinSequence of REAL *
      st len b1 = width b3 & width b2 = len b3 & 0 < len b1 & 0 < len b3
   holds (b2 * b3) * b1 = b2 * (b3 * b1);

:: MATRIXR2:th 60
theorem
for b1, b2, b3 being Element of NAT
for b4 being Matrix of b1,b2,REAL
for b5 being Matrix of b2,b3,REAL
   st 0 < b1
for b6, b7 being Element of NAT
      st [b6,b7] in Indices (b4 * b5)
   holds (b4 * b5) *(b6,b7) = ((Line(b4,b6)) * b5) . b7;

:: MATRIXR2:th 61
theorem
for b1 being Element of NAT
for b2, b3 being Matrix of b1,b1,REAL
for b4, b5 being Element of NAT
      st [b4,b5] in Indices (b3 * b2)
   holds (b3 * b2) *(b4,b5) = ((Line(b3,b4)) * b2) . b5;

:: MATRIXR2:th 62
theorem
for b1 being Element of NAT
for b2, b3 being Matrix of b1,b1,REAL
   st 0 < b1
for b4, b5 being Element of NAT
      st [b4,b5] in Indices (b2 * b3)
   holds (b2 * b3) *(b4,b5) = (b2 * Col(b3,b5)) . b4;

:: MATRIXR2:funcnot 4 => MATRIXR2:func 4
definition
  let a1 be Element of NAT;
  func 1_Rmatrix A1 -> Matrix of a1,a1,REAL equals
    MXF2MXR 1.(F_Real,a1);
end;

:: MATRIXR2:def 2
theorem
for b1 being Element of NAT holds
   1_Rmatrix b1 = MXF2MXR 1.(F_Real,b1);

:: MATRIXR2:th 63
theorem
for b1 being Element of NAT holds
   (for b2 being Element of NAT
          st [b2,b2] in Indices 1_Rmatrix b1
       holds (1_Rmatrix b1) *(b2,b2) = 1) &
    (for b2, b3 being Element of NAT
          st [b2,b3] in Indices 1_Rmatrix b1 & b2 <> b3
       holds (1_Rmatrix b1) *(b2,b3) = 0);

:: MATRIXR2:th 64
theorem
for b1 being Element of NAT holds
   (1_Rmatrix b1) @ = 1_Rmatrix b1;

:: MATRIXR2:th 65
theorem
for b1, b2 being Element of NAT
      st 0 < b1
   holds (0_Rmatrix(b1,b2)) + 0_Rmatrix(b1,b2) = 0_Rmatrix(b1,b2);

:: MATRIXR2:th 66
theorem
for b1, b2 being Element of NAT
for b3 being Element of REAL
      st 0 < b1
   holds b3 * 0_Rmatrix(b1,b2) = 0_Rmatrix(b1,b2);

:: MATRIXR2:th 67
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
   b2 * 1.(b1,width b2) = b2;

:: MATRIXR2:th 68
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
   (1.(b1,len b2)) * b2 = b2;

:: MATRIXR2:th 69
theorem
for b1, b2 being Element of NAT
for b3 being tabular FinSequence of REAL * holds
   (b1 = width b3 implies b3 * 1_Rmatrix b1 = b3) &
    (b2 = len b3 implies (1_Rmatrix b2) * b3 = b3);

:: MATRIXR2:th 70
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL holds
   (1_Rmatrix b1) * b2 = b2;

:: MATRIXR2:th 71
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL holds
   b2 * 1_Rmatrix b1 = b2;

:: MATRIXR2:th 72
theorem
for b1 being Element of NAT holds
   Det 1_Rmatrix b1 = 1;

:: MATRIXR2:funcnot 5 => MATRIXR2:func 5
definition
  let a1 be Element of NAT;
  func 0_Rmatrix A1 -> Matrix of a1,a1,REAL equals
    0_Rmatrix(a1,a1);
end;

:: MATRIXR2:def 3
theorem
for b1 being Element of NAT holds
   0_Rmatrix b1 = 0_Rmatrix(b1,b1);

:: MATRIXR2:th 73
theorem
for b1 being Element of NAT
      st 0 < b1
   holds Det 0_Rmatrix b1 = 0;

:: MATRIXR2:funcnot 6 => MATRIXR2:func 6
definition
  let a1, a2 be Element of NAT;
  func Base_FinSeq(A1,A2) -> FinSequence of REAL equals
    Replace(a1 |-> 0,a2,1);
end;

:: MATRIXR2:def 4
theorem
for b1, b2 being Element of NAT holds
Base_FinSeq(b1,b2) = Replace(b1 |-> 0,b2,1);

:: MATRIXR2:th 74
theorem
for b1, b2 being Element of NAT holds
len Base_FinSeq(b1,b2) = b1;

:: MATRIXR2:th 75
theorem
for b1, b2 being Element of NAT
      st 1 <= b1 & b1 <= b2
   holds (Base_FinSeq(b2,b1)) . b1 = 1;

:: MATRIXR2:th 76
theorem
for b1, b2, b3 being Element of NAT
      st 1 <= b1 & b1 <= b2 & 1 <= b3 & b3 <= b2 & b1 <> b3
   holds (Base_FinSeq(b2,b1)) . b3 = 0;

:: MATRIXR2:th 77
theorem
Base_FinSeq(1,1) = <*1*> &
 Base_FinSeq(2,1) = <*1,0*> &
 Base_FinSeq(2,2) = <*0,1*> &
 Base_FinSeq(3,1) = <*1,0,0*> &
 Base_FinSeq(3,2) = <*0,1,0*> &
 Base_FinSeq(3,3) = <*0,0,1*>;

:: MATRIXR2:th 78
theorem
for b1, b2 being Element of NAT
      st 1 <= b1 & b1 <= b2
   holds (1_Rmatrix b2) . b1 = Base_FinSeq(b2,b1);

:: MATRIXR2:attrnot 1 => MATRIXR2:attr 1
definition
  let a1 be Element of NAT;
  let a2 be Matrix of a1,a1,REAL;
  attr a2 is invertible means
    ex b1 being Matrix of a1,a1,REAL st
       b1 * a2 = 1_Rmatrix a1 & a2 * b1 = 1_Rmatrix a1;
end;

:: MATRIXR2:dfs 5
definiens
  let a1 be Element of NAT;
  let a2 be Matrix of a1,a1,REAL;
To prove
     a2 is invertible
it is sufficient to prove
  thus ex b1 being Matrix of a1,a1,REAL st
       b1 * a2 = 1_Rmatrix a1 & a2 * b1 = 1_Rmatrix a1;

:: MATRIXR2:def 5
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL holds
      b2 is invertible(b1)
   iff
      ex b3 being Matrix of b1,b1,REAL st
         b3 * b2 = 1_Rmatrix b1 & b2 * b3 = 1_Rmatrix b1;

:: MATRIXR2:funcnot 7 => MATRIXR2:func 7
definition
  let a1 be Element of NAT;
  let a2 be Matrix of a1,a1,REAL;
  assume a2 is invertible(a1);
  func Inv A2 -> Matrix of a1,a1,REAL means
    it * a2 = 1_Rmatrix a1 & a2 * it = 1_Rmatrix a1;
end;

:: MATRIXR2:def 6
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL
   st b2 is invertible(b1)
for b3 being Matrix of b1,b1,REAL holds
      b3 = Inv b2
   iff
      b3 * b2 = 1_Rmatrix b1 & b2 * b3 = 1_Rmatrix b1;

:: MATRIXR2:funcreg 1
registration
  let a1 be Element of NAT;
  cluster 1_Rmatrix a1 -> invertible;
end;

:: MATRIXR2:th 79
theorem
for b1 being Element of NAT holds
   Inv 1_Rmatrix b1 = 1_Rmatrix b1;

:: MATRIXR2:th 80
theorem
for b1 being Element of NAT
for b2, b3, b4 being Matrix of b1,b1,REAL
      st b3 * b2 = 1_Rmatrix b1 & b2 * b4 = 1_Rmatrix b1
   holds b3 = b4 & b2 is invertible(b1);

:: MATRIXR2:th 81
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL
      st b2 is invertible(b1)
   holds Det Inv b2 = (Det b2) ";

:: MATRIXR2:th 82
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL
      st b2 is invertible(b1)
   holds Det b2 <> 0;

:: MATRIXR2:th 83
theorem
for b1 being Element of NAT
for b2, b3 being Matrix of b1,b1,REAL
      st b2 is invertible(b1) & b3 is invertible(b1)
   holds b2 * b3 is invertible(b1) &
    Inv (b2 * b3) = (Inv b3) * Inv b2;

:: MATRIXR2:th 84
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL
      st b2 is invertible(b1)
   holds Inv Inv b2 = b2;

:: MATRIXR2:th 85
theorem
1_Rmatrix 0 = 0_Rmatrix 0 & 1_Rmatrix 0 = {};

:: MATRIXR2:th 86
theorem
for b1 being Element of NAT
for b2 being FinSequence of REAL
      st len b2 = b1 & 0 < b1
   holds (1_Rmatrix b1) * b2 = b2;

:: MATRIXR2:th 87
theorem
for b1 being Element of NAT
for b2, b3 being FinSequence of REAL
for b4 being Matrix of b1,b1,REAL
      st b4 is invertible(b1) & len b2 = b1 & len b3 = b1 & 0 < b1
   holds    b4 * b2 = b3
   iff
      b2 = (Inv b4) * b3;

:: MATRIXR2:th 88
theorem
for b1 being Element of NAT
for b2 being FinSequence of REAL
      st len b2 = b1
   holds b2 * 1_Rmatrix b1 = b2;

:: MATRIXR2:th 89
theorem
for b1 being Element of NAT
for b2, b3 being FinSequence of REAL
for b4 being Matrix of b1,b1,REAL
      st b4 is invertible(b1) & len b2 = b1 & len b3 = b1
   holds    b2 * b4 = b3
   iff
      b2 = b3 * Inv b4;

:: MATRIXR2:th 90
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL
   st 0 < b1 & b2 is invertible(b1)
for b3 being FinSequence of REAL
      st len b3 = b1
   holds ex b4 being FinSequence of REAL st
      len b4 = b1 & b2 * b4 = b3;

:: MATRIXR2:th 91
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL
   st b2 is invertible(b1)
for b3 being FinSequence of REAL
      st len b3 = b1
   holds ex b4 being FinSequence of REAL st
      len b4 = b1 & b4 * b2 = b3;

:: MATRIXR2:th 92
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL
for b3, b4 being FinSequence of REAL
   st len b3 = b1 & len b4 = b1 & b3 * b2 = b4
for b5 being Element of NAT
      st 1 <= b5 & b5 <= b1
   holds b4 . b5 = |(b3,Col(b2,b5))|;

:: MATRIXR2:th 93
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL
      st for b3 being FinSequence of REAL
              st len b3 = b1
           holds ex b4 being FinSequence of REAL st
              len b4 = b1 & b4 * b2 = b3
   holds ex b3 being Matrix of b1,b1,REAL st
      b3 * b2 = 1_Rmatrix b1;

:: MATRIXR2:th 94
theorem
for b1 being Element of NAT
for b2 being FinSequence of REAL
for b3 being Matrix of b1,b1,REAL
      st 0 < b1 & len b2 = b1
   holds b3 @ * b2 = b2 * b3;

:: MATRIXR2:th 95
theorem
for b1 being Element of NAT
for b2 being FinSequence of REAL
for b3 being Matrix of b1,b1,REAL
      st 0 < b1 & len b2 = b1
   holds b2 * (b3 @) = b3 * b2;

:: MATRIXR2:th 96
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL
      st 0 < b1 &
         (for b3 being FinSequence of REAL
               st len b3 = b1
            holds ex b4 being FinSequence of REAL st
               len b4 = b1 & b2 * b4 = b3)
   holds ex b3 being Matrix of b1,b1,REAL st
      b2 * b3 = 1_Rmatrix b1;

:: MATRIXR2:th 97
theorem
for b1 being Element of NAT
for b2 being Matrix of b1,b1,REAL
      st 0 < b1 &
         (for b3 being FinSequence of REAL
               st len b3 = b1
            holds ex b4, b5 being FinSequence of REAL st
               len b4 = b1 & len b5 = b1 & b2 * b4 = b3 & b5 * b2 = b3)
   holds b2 is invertible(b1);