Article MATRIX12, MML version 4.99.1005

:: MATRIX12:funcnot 1 => MATRIX12:func 1
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, a6 be natural set;
  func InterchangeLine(A4,A5,A6) -> Matrix of a1,a2,the carrier of a3 means
    len it = len a4 &
     (for b1, b2 being natural set
           st b1 in dom a4 & b2 in Seg width a4
        holds (b1 = a5 implies it *(b1,b2) = a4 *(a6,b2)) &
         (b1 = a6 implies it *(b1,b2) = a4 *(a5,b2)) &
         (b1 <> a5 & b1 <> a6 implies it *(b1,b2) = a4 *(b1,b2)));
end;

:: MATRIX12:def 1
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, b6 being natural set
for b7 being Matrix of b1,b2,the carrier of b3 holds
      b7 = InterchangeLine(b4,b5,b6)
   iff
      len b7 = len b4 &
       (for b8, b9 being natural set
             st b8 in dom b4 & b9 in Seg width b4
          holds (b8 = b5 implies b7 *(b8,b9) = b4 *(b6,b9)) &
           (b8 = b6 implies b7 *(b8,b9) = b4 *(b5,b9)) &
           (b8 <> b5 & b8 <> b6 implies b7 *(b8,b9) = b4 *(b8,b9)));

:: MATRIX12:th 1
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 b1,b2,the carrier of b3 holds
width b4 = width b5;

:: MATRIX12:th 2
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, b7 being Matrix of b2,b1,the carrier of b5
for b8 being natural set
      st b3 in dom b6 & b4 in dom b6 & b8 in dom b6 & b7 = InterchangeLine(b6,b3,b4)
   holds (b8 = b3 implies Line(b7,b8) = Line(b6,b4)) &
    (b8 = b4 implies Line(b7,b8) = Line(b6,b3)) &
    (b8 <> b3 & b8 <> b4 implies Line(b7,b8) = Line(b6,b8));

:: MATRIX12:th 3
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, b6 being natural set
for b7 being Matrix of b2,b1,the carrier of b3
      st b5 in dom b7 & b6 in Seg width b7
   holds (b4 * Line(b7,b5)) . b6 = b4 * (b7 *(b5,b6));

:: MATRIX12:funcnot 2 => MATRIX12: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 natural set;
  let a6 be Element of the carrier of a3;
  func ScalarXLine(A4,A5,A6) -> Matrix of a1,a2,the carrier of a3 means
    len it = len a4 &
     (for b1, b2 being natural set
           st b1 in dom a4 & b2 in Seg width a4
        holds (b1 = a5 implies it *(b1,b2) = a6 * (a4 *(a5,b2))) &
         (b1 = a5 or it *(b1,b2) = a4 *(b1,b2)));
end;

:: MATRIX12:def 2
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 natural set
for b6 being Element of the carrier of b3
for b7 being Matrix of b1,b2,the carrier of b3 holds
      b7 = ScalarXLine(b4,b5,b6)
   iff
      len b7 = len b4 &
       (for b8, b9 being natural set
             st b8 in dom b4 & b9 in Seg width b4
          holds (b8 = b5 implies b7 *(b8,b9) = b6 * (b4 *(b5,b9))) &
           (b8 = b5 or b7 *(b8,b9) = b4 *(b8,b9)));

:: MATRIX12:th 4
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, b8 being Matrix of b1,b2,the carrier of b5
      st b3 in dom b7 & b4 in dom b7 & b6 <> 0. b5 & b8 = ScalarXLine(b7,b3,b6)
   holds (b4 = b3 implies Line(b8,b4) = b6 * Line(b7,b3)) &
    (b4 = b3 or Line(b8,b4) = Line(b7,b4));

:: MATRIX12:funcnot 3 => MATRIX12:func 3
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, a6 be natural set;
  let a7 be Element of the carrier of a3;
  assume a5 in dom a4 & a6 in dom a4;
  func RlineXScalar(A4,A5,A6,A7) -> Matrix of a1,a2,the carrier of a3 means
    len it = len a4 &
     (for b1, b2 being natural set
           st b1 in dom a4 & b2 in Seg width a4
        holds (b1 = a5 implies it *(b1,b2) = (a7 * (a4 *(a6,b2))) + (a4 *(a5,b2))) &
         (b1 = a5 or it *(b1,b2) = a4 *(b1,b2)));
end;

:: MATRIX12:def 3
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, b6 being natural set
for b7 being Element of the carrier of b3
   st b5 in dom b4 & b6 in dom b4
for b8 being Matrix of b1,b2,the carrier of b3 holds
      b8 = RlineXScalar(b4,b5,b6,b7)
   iff
      len b8 = len b4 &
       (for b9, b10 being natural set
             st b9 in dom b4 & b10 in Seg width b4
          holds (b9 = b5 implies b8 *(b9,b10) = (b7 * (b4 *(b6,b10))) + (b4 *(b5,b10))) &
           (b9 = b5 or b8 *(b9,b10) = b4 *(b9,b10)));

:: MATRIX12:th 5
theorem
for b1, b2, b3, b4, b5 being natural set
for b6 being non empty non degenerated right_complementable almost_left_invertible associative commutative Abelian add-associative right_zeroed well-unital distributive doubleLoopStr
for b7 being Element of the carrier of b6
for b8, b9 being Matrix of b1,b2,the carrier of b6
      st b3 in dom b8 & b4 in dom b8 & b5 in dom b8 & b9 = RlineXScalar(b8,b3,b4,b7)
   holds (b5 = b3 implies Line(b9,b5) = (b7 * Line(b8,b4)) + Line(b8,b3)) &
    (b5 = b3 or Line(b9,b5) = Line(b8,b5));

:: MATRIX12:funcnot 4 => MATRIX12:func 1
notation
  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, a6 be natural set;
  synonym ILine(a4,a5,a6) for InterchangeLine(a4,a5,a6);
end;

:: MATRIX12:funcnot 5 => MATRIX12:func 2
notation
  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 natural set;
  let a6 be Element of the carrier of a3;
  synonym SXLine(a4,a5,a6) for ScalarXLine(a4,a5,a6);
end;

:: MATRIX12:funcnot 6 => MATRIX12:func 3
notation
  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, a6 be natural set;
  let a7 be Element of the carrier of a3;
  synonym RLineXS(a4,a5,a6,a7) for RlineXScalar(a4,a5,a6,a7);
end;

:: MATRIX12:th 6
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 b2,b2,the carrier of b4
      st b1 in dom 1.(b4,b2) & b3 in dom 1.(b4,b2)
   holds (InterchangeLine(1.(b4,b2),b1,b3)) * b5 = InterchangeLine(b5,b1,b3);

:: MATRIX12: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 natural set
for b4 being Element of the carrier of b2
for b5 being Matrix of b1,b1,the carrier of b2
      st b3 in dom 1.(b2,b1) & b4 <> 0. b2
   holds (ScalarXLine(1.(b2,b1),b3,b4)) * b5 = ScalarXLine(b5,b3,b4);

:: MATRIX12:th 8
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 b2,b2,the carrier of b4
      st b1 in dom 1.(b4,b2) & b3 in dom 1.(b4,b2)
   holds (RlineXScalar(1.(b4,b2),b1,b3,b5)) * b6 = RlineXScalar(b6,b1,b3,b5);

:: MATRIX12:th 9
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 holds
   InterchangeLine(b5,b3,b3) = b5;

:: MATRIX12:th 10
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 Matrix of b1,b2,the carrier of b5 holds
   InterchangeLine(b6,b3,b4) = InterchangeLine(b6,b4,b3);

:: MATRIX12:th 11
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 Matrix of b1,b2,the carrier of b5
      st b3 in dom b6 & b4 in dom b6
   holds InterchangeLine(InterchangeLine(b6,b3,b4),b3,b4) = b6;

:: MATRIX12:th 12
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
      st b1 in dom 1.(b4,b2) & b3 in dom 1.(b4,b2)
   holds InterchangeLine(1.(b4,b2),b1,b3) is invertible(b2, b4) &
    (InterchangeLine(1.(b4,b2),b1,b3)) ~ = InterchangeLine(1.(b4,b2),b1,b3);

:: MATRIX12:th 13
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
      st b1 in dom 1.(b4,b2) & b3 in dom 1.(b4,b2) & b3 <> b1
   holds RlineXScalar(1.(b4,b2),b1,b3,b5) is invertible(b2, b4) &
    (RlineXScalar(1.(b4,b2),b1,b3,b5)) ~ = RlineXScalar(1.(b4,b2),b1,b3,- b5);

:: MATRIX12:th 14
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
      st b1 in dom 1.(b3,b2) & b4 <> 0. b3
   holds ScalarXLine(1.(b3,b2),b1,b4) is invertible(b2, b3) &
    (ScalarXLine(1.(b3,b2),b1,b4)) ~ = ScalarXLine(1.(b3,b2),b1,b4 ");

:: MATRIX12:funcnot 7 => MATRIX12:func 4
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, a6 be natural set;
  assume a5 in Seg width a4 & a6 in Seg width a4 & 0 < a1 & 0 < a2;
  func InterchangeCol(A4,A5,A6) -> Matrix of a1,a2,the carrier of a3 means
    len it = len a4 &
     (for b1, b2 being natural set
           st b1 in dom a4 & b2 in Seg width a4
        holds (b2 = a5 implies it *(b1,b2) = a4 *(b1,a6)) &
         (b2 = a6 implies it *(b1,b2) = a4 *(b1,a5)) &
         (b2 <> a5 & b2 <> a6 implies it *(b1,b2) = a4 *(b1,b2)));
end;

:: MATRIX12:def 4
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, b6 being natural set
   st b5 in Seg width b4 & b6 in Seg width b4 & 0 < b1 & 0 < b2
for b7 being Matrix of b1,b2,the carrier of b3 holds
      b7 = InterchangeCol(b4,b5,b6)
   iff
      len b7 = len b4 &
       (for b8, b9 being natural set
             st b8 in dom b4 & b9 in Seg width b4
          holds (b9 = b5 implies b7 *(b8,b9) = b4 *(b8,b6)) &
           (b9 = b6 implies b7 *(b8,b9) = b4 *(b8,b5)) &
           (b9 <> b5 & b9 <> b6 implies b7 *(b8,b9) = b4 *(b8,b9)));

:: MATRIX12:funcnot 8 => MATRIX12:func 5
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 natural set;
  let a6 be Element of the carrier of a3;
  assume a5 in Seg width a4 & 0 < a1 & 0 < a2;
  func ScalarXCol(A4,A5,A6) -> Matrix of a1,a2,the carrier of a3 means
    len it = len a4 &
     (for b1, b2 being natural set
           st b1 in dom a4 & b2 in Seg width a4
        holds (b2 = a5 implies it *(b1,b2) = a6 * (a4 *(b1,a5))) &
         (b2 = a5 or it *(b1,b2) = a4 *(b1,b2)));
end;

:: MATRIX12:def 5
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 natural set
for b6 being Element of the carrier of b3
   st b5 in Seg width b4 & 0 < b1 & 0 < b2
for b7 being Matrix of b1,b2,the carrier of b3 holds
      b7 = ScalarXCol(b4,b5,b6)
   iff
      len b7 = len b4 &
       (for b8, b9 being natural set
             st b8 in dom b4 & b9 in Seg width b4
          holds (b9 = b5 implies b7 *(b8,b9) = b6 * (b4 *(b8,b5))) &
           (b9 = b5 or b7 *(b8,b9) = b4 *(b8,b9)));

:: MATRIX12:funcnot 9 => MATRIX12:func 6
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, a6 be natural set;
  let a7 be Element of the carrier of a3;
  assume a5 in Seg width a4 & a6 in Seg width a4 & 0 < a1 & 0 < a2;
  func RcolXScalar(A4,A5,A6,A7) -> Matrix of a1,a2,the carrier of a3 means
    len it = len a4 &
     (for b1, b2 being natural set
           st b1 in dom a4 & b2 in Seg width a4
        holds (b2 = a5 implies it *(b1,b2) = (a7 * (a4 *(b1,a6))) + (a4 *(b1,a5))) &
         (b2 = a5 or it *(b1,b2) = a4 *(b1,b2)));
end;

:: MATRIX12:def 6
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, b6 being natural set
for b7 being Element of the carrier of b3
   st b5 in Seg width b4 & b6 in Seg width b4 & 0 < b1 & 0 < b2
for b8 being Matrix of b1,b2,the carrier of b3 holds
      b8 = RcolXScalar(b4,b5,b6,b7)
   iff
      len b8 = len b4 &
       (for b9, b10 being natural set
             st b9 in dom b4 & b10 in Seg width b4
          holds (b10 = b5 implies b8 *(b9,b10) = (b7 * (b4 *(b9,b6))) + (b4 *(b9,b5))) &
           (b10 = b5 or b8 *(b9,b10) = b4 *(b9,b10)));

:: MATRIX12:funcnot 10 => MATRIX12:func 4
notation
  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, a6 be natural set;
  synonym ICol(a4,a5,a6) for InterchangeCol(a4,a5,a6);
end;

:: MATRIX12:funcnot 11 => MATRIX12:func 5
notation
  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 natural set;
  let a6 be Element of the carrier of a3;
  synonym SXCol(a4,a5,a6) for ScalarXCol(a4,a5,a6);
end;

:: MATRIX12:funcnot 12 => MATRIX12:func 6
notation
  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, a6 be natural set;
  let a7 be Element of the carrier of a3;
  synonym RColXS(a4,a5,a6,a7) for RcolXScalar(a4,a5,a6,a7);
end;

:: MATRIX12:th 15
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, b7 being Matrix of b3,b4,the carrier of b5
      st b1 in Seg width b6 & b2 in Seg width b6 & 0 < b3 & 0 < b4 & b7 = b6 @
   holds (InterchangeLine(b7,b1,b2)) @ = InterchangeCol(b6,b1,b2);

:: MATRIX12:th 16
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, b7 being Matrix of b2,b3,the carrier of b4
      st b1 in Seg width b6 & b5 <> 0. b4 & 0 < b2 & 0 < b3 & b7 = b6 @
   holds (ScalarXLine(b7,b1,b5)) @ = ScalarXCol(b6,b1,b5);

:: MATRIX12:th 17
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, b8 being Matrix of b3,b4,the carrier of b5
      st b1 in Seg width b7 & b2 in Seg width b7 & 0 < b3 & 0 < b4 & b8 = b7 @
   holds (RlineXScalar(b8,b1,b2,b6)) @ = RcolXScalar(b7,b1,b2,b6);

:: MATRIX12:th 18
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 b2,b2,the carrier of b4
      st b1 in dom 1.(b4,b2) & b3 in dom 1.(b4,b2) & 0 < b2
   holds b5 * InterchangeCol(1.(b4,b2),b1,b3) = InterchangeCol(b5,b1,b3);

:: MATRIX12:th 19
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,b2,the carrier of b3
      st b1 in dom 1.(b3,b2) & b4 <> 0. b3 & 0 < b2
   holds b5 * ScalarXCol(1.(b3,b2),b1,b4) = ScalarXCol(b5,b1,b4);

:: MATRIX12:th 20
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 b2,b2,the carrier of b4
      st b1 in dom 1.(b4,b2) & b3 in dom 1.(b4,b2) & 0 < b2
   holds b6 * RcolXScalar(1.(b4,b2),b1,b3,b5) = RcolXScalar(b6,b1,b3,b5);

:: MATRIX12:th 21
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
      st b1 in dom 1.(b4,b2) & b3 in dom 1.(b4,b2) & 0 < b2
   holds (InterchangeCol(1.(b4,b2),b1,b3)) ~ = InterchangeCol(1.(b4,b2),b1,b3);

:: MATRIX12:th 22
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
      st b1 in dom 1.(b4,b2) & b3 in dom 1.(b4,b2) & b3 <> b1 & 0 < b2
   holds (RcolXScalar(1.(b4,b2),b1,b3,b5)) ~ = RcolXScalar(1.(b4,b2),b1,b3,- b5);

:: MATRIX12:th 23
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
      st b1 in dom 1.(b3,b2) & b4 <> 0. b3 & 0 < b2
   holds (ScalarXCol(1.(b3,b2),b1,b4)) ~ = ScalarXCol(1.(b3,b2),b1,b4 ");