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 ");