Article MATRIXR1, MML version 4.99.1005

:: MATRIXR1:th 1
theorem
for b1, b2 being Element of REAL
for b3, b4 being Element of the carrier of F_Real
      st b1 = b3 & b2 = b4
   holds b1 + b2 = b3 + b4;

:: MATRIXR1:th 2
theorem
for b1, b2 being Element of REAL
for b3, b4 being Element of the carrier of F_Real
      st b1 = b3 & b2 = b4
   holds b1 * b2 = b3 * b4;

:: MATRIXR1:th 3
theorem
for b1 being FinSequence of REAL holds
   b1 + - b1 = 0* len b1 & b1 - b1 = 0* len b1;

:: MATRIXR1:th 4
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2
   holds b1 - b2 = b1 + - b2;

:: MATRIXR1:th 5
theorem
for b1 being FinSequence of REAL holds
   b1 - 0* len b1 = b1;

:: MATRIXR1:th 6
theorem
for b1 being FinSequence of REAL holds
   (0* len b1) - b1 = - b1;

:: MATRIXR1:th 7
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2
   holds b1 - - b2 = b1 + b2;

:: MATRIXR1:th 8
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2
   holds - (b1 - b2) = b2 - b1;

:: MATRIXR1:th 9
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2
   holds - (b1 - b2) = (- b1) + b2;

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

:: MATRIXR1:th 11
theorem
for b1, b2, b3 being FinSequence of REAL
      st len b1 = len b2 & len b2 = len b3
   holds (b1 - b2) - b3 = b1 - (b2 + b3);

:: MATRIXR1:th 12
theorem
for b1, b2, b3 being FinSequence of REAL
      st len b1 = len b2 & len b2 = len b3
   holds b1 + (b2 - b3) = (b1 + b2) - b3;

:: MATRIXR1:th 13
theorem
for b1, b2, b3 being FinSequence of REAL
      st len b1 = len b2 & len b2 = len b3
   holds b1 - (b2 - b3) = (b1 - b2) + b3;

:: MATRIXR1:th 14
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2
   holds b1 = (b1 + b2) - b2;

:: MATRIXR1:th 15
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2
   holds b1 = (b1 - b2) + b2;

:: MATRIXR1:th 16
theorem
for b1 being non empty multMagma
for b2 being FinSequence of the carrier of b1
for b3 being Element of the carrier of b1 holds
   len (b3 * b2) = len b2;

:: MATRIXR1:th 17
theorem
for b1 being Element of REAL
for b2 being Element of the carrier of F_Real
for b3 being FinSequence of REAL
for b4 being FinSequence of the carrier of F_Real
      st b1 = b2 & b3 = b4
   holds b1 * b3 = b2 * b4;

:: MATRIXR1:th 18
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
for b2 being Element of the carrier of b1
for b3 being tabular FinSequence of (the carrier of b1) * holds
   Indices (b2 * b3) = Indices b3;

:: MATRIXR1:th 19
theorem
for b1 being natural set
for b2 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
for b3 being Element of the carrier of b2
for b4 being tabular FinSequence of (the carrier of b2) *
      st 1 <= b1 & b1 <= width b4
   holds Col(b3 * b4,b1) = b3 * Col(b4,b1);

:: MATRIXR1:th 20
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative 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 being natural set
      st 1 <= b4 & b4 <= len b3
   holds Line(b2 * b3,b4) = b2 * Line(b3,b4);

:: MATRIXR1:th 21
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
for b2, b3 being tabular FinSequence of (the carrier of b1) *
      st width b2 = len b3
   holds ex b4 being tabular FinSequence of (the carrier of b1) * st
      len b4 = len b2 &
       width b4 = width b3 &
       (for b5, b6 being natural set
             st [b5,b6] in Indices b4
          holds b4 *(b5,b6) = (Line(b2,b5)) "*" Col(b3,b6));

:: MATRIXR1:th 22
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
for b2 being Element of the carrier of b1
for b3, b4 being tabular FinSequence of (the carrier of b1) *
      st width b3 = len b4
   holds b3 * (b2 * b4) = b2 * (b3 * b4);

:: MATRIXR1:funcnot 1 => MATRIXR1:func 1
definition
  let a1 be tabular FinSequence of REAL *;
  func MXR2MXF A1 -> tabular FinSequence of (the carrier of F_Real) * equals
    a1;
end;

:: MATRIXR1:def 1
theorem
for b1 being tabular FinSequence of REAL * holds
   MXR2MXF b1 = b1;

:: MATRIXR1:funcnot 2 => MATRIXR1:func 2
definition
  let a1 be tabular FinSequence of (the carrier of F_Real) *;
  func MXF2MXR A1 -> tabular FinSequence of REAL * equals
    a1;
end;

:: MATRIXR1:def 2
theorem
for b1 being tabular FinSequence of (the carrier of F_Real) * holds
   MXF2MXR b1 = b1;

:: MATRIXR1:th 23
theorem
for b1, b2 being set
for b3 being tabular FinSequence of b1 *
for b4 being tabular FinSequence of b2 *
   st b3 = b4
for b5, b6 being natural set
      st [b5,b6] in Indices b3
   holds b3 *(b5,b6) = b4 *(b5,b6);

:: MATRIXR1:th 24
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
for b2, b3 being tabular FinSequence of (the carrier of b1) * holds
Indices (b2 + b3) = Indices b2;

:: MATRIXR1:funcnot 3 => MATRIXR1:func 3
definition
  let a1, a2 be tabular FinSequence of REAL *;
  func A1 + A2 -> tabular FinSequence of REAL * equals
    MXF2MXR ((MXR2MXF a1) + MXR2MXF a2);
end;

:: MATRIXR1:def 3
theorem
for b1, b2 being tabular FinSequence of REAL * holds
b1 + b2 = MXF2MXR ((MXR2MXF b1) + MXR2MXF b2);

:: MATRIXR1:th 25
theorem
for b1, b2 being tabular FinSequence of REAL * holds
len (b1 + b2) = len b1 &
 width (b1 + b2) = width b1 &
 (for b3, b4 being natural set
       st [b3,b4] in Indices b1
    holds (b1 + b2) *(b3,b4) = (b1 *(b3,b4)) + (b2 *(b3,b4)));

:: MATRIXR1:th 26
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 natural set
               st [b4,b5] in Indices b1
            holds b3 *(b4,b5) = (b1 *(b4,b5)) + (b2 *(b4,b5)))
   holds b3 = b1 + b2;

:: MATRIXR1:funcnot 4 => MATRIXR1:func 4
definition
  let a1 be tabular FinSequence of REAL *;
  func - A1 -> tabular FinSequence of REAL * equals
    MXF2MXR - MXR2MXF a1;
end;

:: MATRIXR1:def 4
theorem
for b1 being tabular FinSequence of REAL * holds
   - b1 = MXF2MXR - MXR2MXF b1;

:: MATRIXR1:funcnot 5 => MATRIXR1:func 5
definition
  let a1, a2 be tabular FinSequence of REAL *;
  func A1 - A2 -> tabular FinSequence of REAL * equals
    MXF2MXR ((MXR2MXF a1) - MXR2MXF a2);
end;

:: MATRIXR1:def 5
theorem
for b1, b2 being tabular FinSequence of REAL * holds
b1 - b2 = MXF2MXR ((MXR2MXF b1) - MXR2MXF b2);

:: MATRIXR1:funcnot 6 => MATRIXR1:func 6
definition
  let a1, a2 be tabular FinSequence of REAL *;
  func A1 * A2 -> tabular FinSequence of REAL * equals
    MXF2MXR ((MXR2MXF a1) * MXR2MXF a2);
end;

:: MATRIXR1:def 6
theorem
for b1, b2 being tabular FinSequence of REAL * holds
b1 * b2 = MXF2MXR ((MXR2MXF b1) * MXR2MXF b2);

:: MATRIXR1:funcnot 7 => MATRIXR1:func 7
definition
  let a1 be real set;
  let a2 be tabular FinSequence of REAL *;
  func A1 * A2 -> tabular FinSequence of REAL * means
    for b1 being Element of the carrier of F_Real
          st b1 = a1
       holds it = MXF2MXR (b1 * MXR2MXF a2);
end;

:: MATRIXR1:def 7
theorem
for b1 being real set
for b2, b3 being tabular FinSequence of REAL * holds
   b3 = b1 * b2
iff
   for b4 being Element of the carrier of F_Real
         st b4 = b1
      holds b3 = MXF2MXR (b4 * MXR2MXF b2);

:: MATRIXR1:th 27
theorem
for b1 being Element of REAL
for b2 being tabular FinSequence of REAL * holds
   len (b1 * b2) = len b2 & width (b1 * b2) = width b2;

:: MATRIXR1:th 28
theorem
for b1 being Element of REAL
for b2 being tabular FinSequence of REAL * holds
   Indices (b1 * b2) = Indices b2;

:: MATRIXR1:th 29
theorem
for b1 being Element of REAL
for b2 being tabular FinSequence of REAL *
for b3, b4 being natural set
      st [b3,b4] in Indices b2
   holds (b1 * b2) *(b3,b4) = b1 * (b2 *(b3,b4));

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

:: MATRIXR1:th 31
theorem
for b1 being Element of REAL
for b2 being natural set
for b3 being tabular FinSequence of REAL *
      st 0 < len b3 & b2 in dom b3
   holds (ex b4 being FinSequence of REAL st
       b4 = b3 . b2) &
    (for b4 being FinSequence of REAL
          st b4 = b3 . b2
       holds (b1 * b3) . b2 = b1 * b4);

:: MATRIXR1:th 32
theorem
for b1 being tabular FinSequence of REAL * holds
   1 * b1 = b1;

:: MATRIXR1:th 33
theorem
for b1 being tabular FinSequence of REAL * holds
   b1 + b1 = 2 * b1;

:: MATRIXR1:th 34
theorem
for b1 being tabular FinSequence of REAL * holds
   (b1 + b1) + b1 = 3 * b1;

:: MATRIXR1:funcnot 8 => MATRIXR1:func 8
definition
  let a1, a2 be natural set;
  func 0_Rmatrix(A1,A2) -> tabular FinSequence of REAL * equals
    MXF2MXR 0.(F_Real,a1,a2);
end;

:: MATRIXR1:def 8
theorem
for b1, b2 being natural set holds
0_Rmatrix(b1,b2) = MXF2MXR 0.(F_Real,b1,b2);

:: MATRIXR1:th 35
theorem
for b1, b2 being tabular FinSequence of REAL * holds
b1 - - b2 = b1 + b2;

:: MATRIXR1:th 36
theorem
for b1, b2 being natural set
for b3 being tabular FinSequence of REAL *
      st len b3 = b1 & width b3 = b2 & 0 < b1
   holds b3 + 0_Rmatrix(b1,b2) = b3 & (0_Rmatrix(b1,b2)) + b3 = b3;

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

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

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

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

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

:: MATRIXR1:th 42
theorem
for b1 being tabular FinSequence of REAL * holds
   b1 + 0_Rmatrix(len b1,width b1) = b1;

:: MATRIXR1:th 43
theorem
for b1 being real set
for b2, b3 being tabular FinSequence of REAL *
      st len b2 = len b3 & width b2 = width b3 & 0 < len b2
   holds b1 * (b2 + b3) = (b1 * b2) + (b1 * b3);

:: MATRIXR1:th 44
theorem
for b1 being tabular FinSequence of REAL *
      st 0 < len b1
   holds 0 * b1 = 0_Rmatrix(len b1,width b1);

:: MATRIXR1:funcnot 9 => MATRIXR1:func 9
definition
  let a1 be FinSequence of REAL;
  assume 0 < len a1;
  func ColVec2Mx A1 -> tabular FinSequence of REAL * means
    len it = len a1 &
     width it = 1 &
     (for b1 being natural set
           st b1 in dom a1
        holds it . b1 = <*a1 . b1*>);
end;

:: MATRIXR1:def 9
theorem
for b1 being FinSequence of REAL
   st 0 < len b1
for b2 being tabular FinSequence of REAL * holds
      b2 = ColVec2Mx b1
   iff
      len b2 = len b1 &
       width b2 = 1 &
       (for b3 being natural set
             st b3 in dom b1
          holds b2 . b3 = <*b1 . b3*>);

:: MATRIXR1:th 45
theorem
for b1 being FinSequence of REAL
for b2 being tabular FinSequence of REAL *
      st 0 < len b1
   holds    b2 = ColVec2Mx b1
   iff
      Col(b2,1) = b1 & width b2 = 1;

:: MATRIXR1:th 46
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2 & 0 < len b1
   holds ColVec2Mx (b1 + b2) = (ColVec2Mx b1) + ColVec2Mx b2;

:: MATRIXR1:th 47
theorem
for b1 being Element of REAL
for b2 being FinSequence of REAL
      st 0 < len b2
   holds ColVec2Mx (b1 * b2) = b1 * ColVec2Mx b2;

:: MATRIXR1:funcnot 10 => MATRIXR1:func 10
definition
  let a1 be FinSequence of REAL;
  func LineVec2Mx A1 -> tabular FinSequence of REAL * means
    width it = len a1 &
     len it = 1 &
     (for b1 being natural set
           st b1 in dom a1
        holds it *(1,b1) = a1 . b1);
end;

:: MATRIXR1:def 10
theorem
for b1 being FinSequence of REAL
for b2 being tabular FinSequence of REAL * holds
      b2 = LineVec2Mx b1
   iff
      width b2 = len b1 &
       len b2 = 1 &
       (for b3 being natural set
             st b3 in dom b1
          holds b2 *(1,b3) = b1 . b3);

:: MATRIXR1:th 48
theorem
for b1 being FinSequence of REAL
for b2 being tabular FinSequence of REAL * holds
      b2 = LineVec2Mx b1
   iff
      Line(b2,1) = b1 & len b2 = 1;

:: MATRIXR1:th 49
theorem
for b1 being FinSequence of REAL
      st 0 < len b1
   holds (LineVec2Mx b1) @ = ColVec2Mx b1 & (ColVec2Mx b1) @ = LineVec2Mx b1;

:: MATRIXR1:th 50
theorem
for b1, b2 being FinSequence of REAL
      st len b1 = len b2 & 0 < len b1
   holds LineVec2Mx (b1 + b2) = (LineVec2Mx b1) + LineVec2Mx b2;

:: MATRIXR1:th 51
theorem
for b1 being Element of REAL
for b2 being FinSequence of REAL holds
   LineVec2Mx (b1 * b2) = b1 * LineVec2Mx b2;

:: MATRIXR1:funcnot 11 => MATRIXR1:func 11
definition
  let a1 be tabular FinSequence of REAL *;
  let a2 be FinSequence of REAL;
  func A1 * A2 -> FinSequence of REAL equals
    Col(a1 * ColVec2Mx a2,1);
end;

:: MATRIXR1:def 11
theorem
for b1 being tabular FinSequence of REAL *
for b2 being FinSequence of REAL holds
   b1 * b2 = Col(b1 * ColVec2Mx b2,1);

:: MATRIXR1:funcnot 12 => MATRIXR1:func 12
definition
  let a1 be tabular FinSequence of REAL *;
  let a2 be FinSequence of REAL;
  func A2 * A1 -> FinSequence of REAL equals
    Line((LineVec2Mx a2) * a1,1);
end;

:: MATRIXR1:def 12
theorem
for b1 being tabular FinSequence of REAL *
for b2 being FinSequence of REAL holds
   b2 * b1 = Line((LineVec2Mx b2) * b1,1);

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

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

:: MATRIXR1:th 54
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);

:: MATRIXR1:th 55
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);

:: MATRIXR1:th 56
theorem
for b1 being Element of REAL
for b2 being tabular FinSequence of REAL *
for b3 being natural set
      st 1 <= b3 & b3 <= width b2
   holds Col(b1 * b2,b3) = b1 * Col(b2,b3);

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

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

:: MATRIXR1:th 59
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);

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

:: MATRIXR1:th 61
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 len (b2 * b1) = len b2;

:: MATRIXR1:th 62
theorem
for b1 being FinSequence of REAL
for b2 being tabular FinSequence of REAL *
      st len b2 = len b1
   holds len (b1 * b2) = width b2;

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

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

:: MATRIXR1:th 65
theorem
for b1, b2 being Element of NAT
for b3 being FinSequence of REAL
      st len b3 = b2 & 0 < b1 & 0 < b2
   holds (0_Rmatrix(b1,b2)) * b3 = 0* b1;

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