:: MATRIX_5 semantic presentation

theorem Th1: :: MATRIX_5:1
1 = 1. F_Complex by COMPLEX1:def 7, COMPLFLD:10;

theorem Th2: :: MATRIX_5:2
0. F_Complex = 0 by COMPLEX1:def 6, COMPLFLD:9;

definition
let c1 be Matrix of COMPLEX ;
func COMPLEX2Field c1 -> Matrix of F_Complex equals :: MATRIX_5:def 1
a1;
coherence
c1 is Matrix of F_Complex
by COMPLFLD:def 1;
end;

:: deftheorem Def1 defines COMPLEX2Field MATRIX_5:def 1 :
for b1 being Matrix of COMPLEX holds COMPLEX2Field b1 = b1;

definition
let c1 be Matrix of F_Complex ;
func Field2COMPLEX c1 -> Matrix of COMPLEX equals :: MATRIX_5:def 2
a1;
coherence
c1 is Matrix of COMPLEX
by COMPLFLD:def 1;
end;

:: deftheorem Def2 defines Field2COMPLEX MATRIX_5:def 2 :
for b1 being Matrix of F_Complex holds Field2COMPLEX b1 = b1;

theorem Th3: :: MATRIX_5:3
for b1, b2 being Matrix of COMPLEX st COMPLEX2Field b1 = COMPLEX2Field b2 holds
b1 = b2 ;

theorem Th4: :: MATRIX_5:4
for b1, b2 being Matrix of F_Complex st Field2COMPLEX b1 = Field2COMPLEX b2 holds
b1 = b2 ;

theorem Th5: :: MATRIX_5:5
for b1 being Matrix of COMPLEX holds b1 = Field2COMPLEX (COMPLEX2Field b1) ;

theorem Th6: :: MATRIX_5:6
for b1 being Matrix of F_Complex holds b1 = COMPLEX2Field (Field2COMPLEX b1) ;

definition
let c1, c2 be Matrix of COMPLEX ;
func c1 + c2 -> Matrix of COMPLEX equals :: MATRIX_5:def 3
Field2COMPLEX ((COMPLEX2Field a1) + (COMPLEX2Field a2));
coherence
Field2COMPLEX ((COMPLEX2Field c1) + (COMPLEX2Field c2)) is Matrix of COMPLEX
;
end;

:: deftheorem Def3 defines + MATRIX_5:def 3 :
for b1, b2 being Matrix of COMPLEX holds b1 + b2 = Field2COMPLEX ((COMPLEX2Field b1) + (COMPLEX2Field b2));

definition
let c1 be Matrix of COMPLEX ;
func - c1 -> Matrix of COMPLEX equals :: MATRIX_5:def 4
Field2COMPLEX (- (COMPLEX2Field a1));
coherence
Field2COMPLEX (- (COMPLEX2Field c1)) is Matrix of COMPLEX
;
end;

:: deftheorem Def4 defines - MATRIX_5:def 4 :
for b1 being Matrix of COMPLEX holds - b1 = Field2COMPLEX (- (COMPLEX2Field b1));

definition
let c1, c2 be Matrix of COMPLEX ;
func c1 - c2 -> Matrix of COMPLEX equals :: MATRIX_5:def 5
Field2COMPLEX ((COMPLEX2Field a1) - (COMPLEX2Field a2));
coherence
Field2COMPLEX ((COMPLEX2Field c1) - (COMPLEX2Field c2)) is Matrix of COMPLEX
;
func c1 * c2 -> Matrix of COMPLEX equals :: MATRIX_5:def 6
Field2COMPLEX ((COMPLEX2Field a1) * (COMPLEX2Field a2));
coherence
Field2COMPLEX ((COMPLEX2Field c1) * (COMPLEX2Field c2)) is Matrix of COMPLEX
;
end;

:: deftheorem Def5 defines - MATRIX_5:def 5 :
for b1, b2 being Matrix of COMPLEX holds b1 - b2 = Field2COMPLEX ((COMPLEX2Field b1) - (COMPLEX2Field b2));

:: deftheorem Def6 defines * MATRIX_5:def 6 :
for b1, b2 being Matrix of COMPLEX holds b1 * b2 = Field2COMPLEX ((COMPLEX2Field b1) * (COMPLEX2Field b2));

definition
let c1 be complex number ;
let c2 be Matrix of COMPLEX ;
func c1 * c2 -> Matrix of COMPLEX means :Def7: :: MATRIX_5:def 7
for b1 being Element of F_Complex st b1 = a1 holds
a3 = Field2COMPLEX (b1 * (COMPLEX2Field a2));
existence
ex b1 being Matrix of COMPLEX st
for b2 being Element of F_Complex st b2 = c1 holds
b1 = Field2COMPLEX (b2 * (COMPLEX2Field c2))
proof end;
uniqueness
for b1, b2 being Matrix of COMPLEX st ( for b3 being Element of F_Complex st b3 = c1 holds
b1 = Field2COMPLEX (b3 * (COMPLEX2Field c2)) ) & ( for b3 being Element of F_Complex st b3 = c1 holds
b2 = Field2COMPLEX (b3 * (COMPLEX2Field c2)) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def7 defines * MATRIX_5:def 7 :
for b1 being complex number
for b2, b3 being Matrix of COMPLEX holds
( b3 = b1 * b2 iff for b4 being Element of F_Complex st b4 = b1 holds
b3 = Field2COMPLEX (b4 * (COMPLEX2Field b2)) );

theorem Th7: :: MATRIX_5:7
for b1 being Matrix of COMPLEX holds
( len b1 = len (COMPLEX2Field b1) & width b1 = width (COMPLEX2Field b1) ) ;

theorem Th8: :: MATRIX_5:8
for b1 being Matrix of F_Complex holds
( len b1 = len (Field2COMPLEX b1) & width b1 = width (Field2COMPLEX b1) ) ;

theorem Th9: :: MATRIX_5:9
for b1 being Matrix of COMPLEX st len b1 > 0 holds
- (- b1) = b1 by MATRIX_4:1;

theorem Th10: :: MATRIX_5:10
for b1 being Field
for b2 being Matrix of b1 holds (1. b1) * b2 = b2
proof end;

theorem Th11: :: MATRIX_5:11
for b1 being Matrix of COMPLEX holds 1 * b1 = b1
proof end;

theorem Th12: :: MATRIX_5:12
for b1 being Field
for b2, b3 being Element of b1
for b4 being Matrix of b1 holds b2 * (b3 * b4) = (b2 * b3) * b4
proof end;

theorem Th13: :: MATRIX_5:13
for b1 being Field
for b2, b3 being Element of b1
for b4 being Matrix of b1 holds (b2 + b3) * b4 = (b2 * b4) + (b3 * b4)
proof end;

theorem Th14: :: MATRIX_5:14
for b1 being Matrix of COMPLEX holds b1 + b1 = 2 * b1
proof end;

theorem Th15: :: MATRIX_5:15
for b1 being Matrix of COMPLEX holds (b1 + b1) + b1 = 3 * b1
proof end;

definition
let c1, c2 be Nat;
func 0_Cx c1,c2 -> Matrix of COMPLEX equals :: MATRIX_5:def 8
Field2COMPLEX (0. F_Complex ,a1,a2);
coherence
Field2COMPLEX (0. F_Complex ,c1,c2) is Matrix of COMPLEX
;
end;

:: deftheorem Def8 defines 0_Cx MATRIX_5:def 8 :
for b1, b2 being Nat holds 0_Cx b1,b2 = Field2COMPLEX (0. F_Complex ,b1,b2);

theorem Th16: :: MATRIX_5:16
for b1, b2 being Nat holds COMPLEX2Field (0_Cx b1,b2) = 0. F_Complex ,b1,b2 ;

theorem Th17: :: MATRIX_5:17
for b1 being Matrix of COMPLEX st len b1 > 0 holds
b1 + (- b1) = 0_Cx (len b1),(width b1) by MATRIX_4:2;

theorem Th18: :: MATRIX_5:18
for b1 being Matrix of COMPLEX st len b1 > 0 holds
b1 - b1 = 0_Cx (len b1),(width b1) by MATRIX_4:3;

theorem Th19: :: MATRIX_5:19
for b1, b2, b3 being Matrix of COMPLEX st len b1 = len b2 & len b2 = len b3 & width b1 = width b2 & width b2 = width b3 & len b1 > 0 & b1 + b3 = b2 + b3 holds
b1 = b2 by MATRIX_4:4;

theorem Th20: :: MATRIX_5:20
for b1, b2 being Matrix of COMPLEX st len b2 > 0 holds
b1 - (- b2) = b1 + b2 by MATRIX_4:1;

theorem Th21: :: MATRIX_5:21
for b1, b2 being Matrix of COMPLEX st len b1 = len b2 & width b1 = width b2 & len b1 > 0 & b1 = b1 + b2 holds
b2 = 0_Cx (len b1),(width b1)
proof end;

theorem Th22: :: MATRIX_5:22
for b1, b2 being Matrix of COMPLEX st len b1 = len b2 & width b1 = width b2 & len b1 > 0 & b1 - b2 = 0_Cx (len b1),(width b1) holds
b1 = b2 by MATRIX_4:7;

theorem Th23: :: MATRIX_5:23
for b1, b2 being Matrix of COMPLEX st len b1 = len b2 & width b1 = width b2 & len b1 > 0 & b1 + b2 = 0_Cx (len b1),(width b1) holds
b2 = - b1
proof end;

theorem Th24: :: MATRIX_5:24
for b1, b2 being Nat st b1 > 0 holds
- (0_Cx b1,b2) = 0_Cx b1,b2 by MATRIX_4:9;

theorem Th25: :: MATRIX_5:25
for b1, b2 being Matrix of COMPLEX st len b1 = len b2 & width b1 = width b2 & len b1 > 0 & b2 - b1 = b2 holds
b1 = 0_Cx (len b1),(width b1)
proof end;

theorem Th26: :: MATRIX_5:26
for b1, b2 being Matrix of COMPLEX st len b1 = len b2 & width b1 = width b2 & len b1 > 0 holds
b1 = b1 - (b2 - b2) by MATRIX_4:11;

theorem Th27: :: MATRIX_5:27
for b1, b2 being Matrix of COMPLEX st len b1 = len b2 & width b1 = width b2 & len b1 > 0 holds
- (b1 + b2) = (- b1) + (- b2) by MATRIX_4:12;

theorem Th28: :: MATRIX_5:28
for b1, b2 being Matrix of COMPLEX st len b1 = len b2 & width b1 = width b2 & len b1 > 0 holds
b1 - (b1 - b2) = b2 by MATRIX_4:13;

theorem Th29: :: MATRIX_5:29
for b1, b2, b3 being Matrix of COMPLEX st len b1 = len b2 & len b2 = len b3 & width b1 = width b2 & width b2 = width b3 & len b1 > 0 & b1 - b3 = b2 - b3 holds
b1 = b2 by MATRIX_4:14;

theorem Th30: :: MATRIX_5:30
for b1, b2, b3 being Matrix of COMPLEX st len b1 = len b2 & len b2 = len b3 & width b1 = width b2 & width b2 = width b3 & len b1 > 0 & b3 - b1 = b3 - b2 holds
b1 = b2 by MATRIX_4:15;

theorem Th31: :: MATRIX_5:31
for b1, b2, b3 being Matrix of COMPLEX st len b2 = len b3 & width b2 = width b3 & width b1 = len b2 & len b1 > 0 & len b2 > 0 holds
b1 * (b2 + b3) = (b1 * b2) + (b1 * b3) by MATRIX_4:62;

theorem Th32: :: MATRIX_5:32
for b1, b2, b3 being Matrix of COMPLEX st len b2 = len b3 & width b2 = width b3 & len b1 = width b2 & len b2 > 0 & len b1 > 0 holds
(b2 + b3) * b1 = (b2 * b1) + (b3 * b1) by MATRIX_4:63;

theorem Th33: :: MATRIX_5:33
for b1, b2 being Matrix of COMPLEX st len b1 = len b2 & width b1 = width b2 holds
b1 + b2 = b2 + b1 by MATRIX_3:4;

theorem Th34: :: MATRIX_5:34
for b1, b2, b3 being Matrix of COMPLEX st len b1 = len b2 & len b1 = len b3 & width b1 = width b2 & width b1 = width b3 holds
(b1 + b2) + b3 = b1 + (b2 + b3) by MATRIX_3:5;

theorem Th35: :: MATRIX_5:35
for b1 being Matrix of COMPLEX st len b1 > 0 holds
b1 + (0_Cx (len b1),(width b1)) = b1
proof end;

theorem Th36: :: MATRIX_5:36
for b1 being Field
for b2 being Element of b1
for b3, b4 being Matrix of b1 st len b3 = len b4 & width b3 = width b4 & len b3 > 0 holds
b2 * (b3 + b4) = (b2 * b3) + (b2 * b4)
proof end;

theorem Th37: :: MATRIX_5:37
for b1, b2 being Matrix of COMPLEX
for b3 being complex number st len b1 = len b2 & width b1 = width b2 & len b1 > 0 holds
b3 * (b1 + b2) = (b3 * b1) + (b3 * b2)
proof end;

theorem Th38: :: MATRIX_5:38
for b1 being Field
for b2, b3 being Matrix of b1 st width b2 = len b3 & len b2 > 0 & len b3 > 0 holds
(0. b1,(len b2),(width b2)) * b3 = 0. b1,(len b2),(width b3)
proof end;

theorem Th39: :: MATRIX_5:39
for b1, b2 being Matrix of COMPLEX st width b1 = len b2 & len b1 > 0 & len b2 > 0 holds
(0_Cx (len b1),(width b1)) * b2 = 0_Cx (len b1),(width b2)
proof end;

theorem Th40: :: MATRIX_5:40
for b1 being Field
for b2 being Matrix of b1 st len b2 > 0 holds
(0. b1) * b2 = 0. b1,(len b2),(width b2)
proof end;

theorem Th41: :: MATRIX_5:41
for b1 being Matrix of COMPLEX st len b1 > 0 holds
0 * b1 = 0_Cx (len b1),(width b1)
proof end;

definition
let c1 be FinSequence of COMPLEX ;
let c2 be set ;
redefine func . as c1 . c2 -> Element of COMPLEX ;
coherence
c1 . c2 is Element of COMPLEX
proof end;
end;

theorem Th42: :: MATRIX_5:42
for b1, b2 being Nat
for b3, b4 being Matrix of COMPLEX st len b3 > 0 & len b4 > 0 & width b3 = len b4 & 1 <= b1 & b1 <= len b3 & 1 <= b2 & b2 <= width b4 holds
ex b5 being FinSequence of COMPLEX st
( len b5 = len b4 & b5 . 1 = (b3 * b1,1) * (b4 * 1,b2) & ( for b6 being Nat st 1 <= b6 & b6 < len b4 holds
b5 . (b6 + 1) = (b5 . b6) + ((b3 * b1,(b6 + 1)) * (b4 * (b6 + 1),b2)) ) )
proof end;