:: ANALOAF semantic presentation

definition
let c1 be RealLinearSpace;
let c2, c3, c4, c5 be VECTOR of c1;
pred c2,c3 // c4,c5 means :Def1: :: ANALOAF:def 1
( a2 = a3 or a4 = a5 or ex b1, b2 being Real st
( 0 < b1 & 0 < b2 & b1 * (a3 - a2) = b2 * (a5 - a4) ) );
end;

:: deftheorem Def1 defines // ANALOAF:def 1 :
for b1 being RealLinearSpace
for b2, b3, b4, b5 being VECTOR of b1 holds
( b2,b3 // b4,b5 iff ( b2 = b3 or b4 = b5 or ex b6, b7 being Real st
( 0 < b6 & 0 < b7 & b6 * (b3 - b2) = b7 * (b5 - b4) ) ) );

Lemma2: for b1, b2 being Real st 0 < b1 & 0 < b2 holds
0 < b1 + b2
by XREAL_1:36;

Lemma3: for b1, b2 being Real holds
( not b1 <> b2 or 0 < b1 - b2 or 0 < b2 - b1 )
by XREAL_1:57;

theorem Th1: :: ANALOAF:1
canceled;

theorem Th2: :: ANALOAF:2
canceled;

theorem Th3: :: ANALOAF:3
canceled;

theorem Th4: :: ANALOAF:4
for b1 being RealLinearSpace
for b2, b3, b4 being VECTOR of b1 holds (b2 - b3) + (b3 - b4) = b2 - b4
proof end;

theorem Th5: :: ANALOAF:5
canceled;

theorem Th6: :: ANALOAF:6
for b1 being RealLinearSpace
for b2, b3, b4 being VECTOR of b1 holds b2 - (b3 - b4) = b2 + (b4 - b3) by VECTSP_1:81;

theorem Th7: :: ANALOAF:7
canceled;

theorem Th8: :: ANALOAF:8
canceled;

theorem Th9: :: ANALOAF:9
for b1 being RealLinearSpace
for b2, b3, b4, b5 being VECTOR of b1 st b2 + b3 = b4 + b5 holds
b2 - b5 = b4 - b3
proof end;

theorem Th10: :: ANALOAF:10
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1
for b4 being Real holds b4 * (b2 - b3) = - (b4 * (b3 - b2))
proof end;

theorem Th11: :: ANALOAF:11
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1
for b4, b5 being Real holds (b4 - b5) * (b2 - b3) = (b5 - b4) * (b3 - b2)
proof end;

theorem Th12: :: ANALOAF:12
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1
for b4 being Real st b4 <> 0 & b4 * b2 = b3 holds
b2 = (b4 " ) * b3
proof end;

theorem Th13: :: ANALOAF:13
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1
for b4 being Real holds
( ( b4 <> 0 & b4 * b2 = b3 implies b2 = (b4 " ) * b3 ) & ( b4 <> 0 & b2 = (b4 " ) * b3 implies b4 * b2 = b3 ) )
proof end;

theorem Th14: :: ANALOAF:14
canceled;

theorem Th15: :: ANALOAF:15
canceled;

theorem Th16: :: ANALOAF:16
for b1 being RealLinearSpace
for b2, b3, b4, b5 being VECTOR of b1 st b2,b3 // b4,b5 & b2 <> b3 & b4 <> b5 holds
ex b6, b7 being Real st
( b6 * (b3 - b2) = b7 * (b5 - b4) & 0 < b6 & 0 < b7 )
proof end;

theorem Th17: :: ANALOAF:17
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1 holds b2,b3 // b2,b3
proof end;

theorem Th18: :: ANALOAF:18
for b1 being RealLinearSpace
for b2, b3, b4 being VECTOR of b1 holds
( b2,b3 // b4,b4 & b2,b2 // b3,b4 ) by Def1;

theorem Th19: :: ANALOAF:19
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1 st b2,b3 // b3,b2 holds
b2 = b3
proof end;

theorem Th20: :: ANALOAF:20
for b1 being RealLinearSpace
for b2, b3, b4, b5, b6, b7 being VECTOR of b1 st b2 <> b3 & b2,b3 // b4,b5 & b2,b3 // b6,b7 holds
b4,b5 // b6,b7
proof end;

theorem Th21: :: ANALOAF:21
for b1 being RealLinearSpace
for b2, b3, b4, b5 being VECTOR of b1 st b2,b3 // b4,b5 holds
( b3,b2 // b5,b4 & b4,b5 // b2,b3 )
proof end;

theorem Th22: :: ANALOAF:22
for b1 being RealLinearSpace
for b2, b3, b4 being VECTOR of b1 st b2,b3 // b3,b4 holds
b2,b3 // b2,b4
proof end;

theorem Th23: :: ANALOAF:23
for b1 being RealLinearSpace
for b2, b3, b4 being VECTOR of b1 holds
( not b2,b3 // b2,b4 or b2,b3 // b3,b4 or b2,b4 // b4,b3 )
proof end;

theorem Th24: :: ANALOAF:24
for b1 being RealLinearSpace
for b2, b3, b4, b5 being VECTOR of b1 st b2 - b3 = b4 - b5 holds
b3,b2 // b5,b4
proof end;

theorem Th25: :: ANALOAF:25
for b1 being RealLinearSpace
for b2, b3, b4, b5 being VECTOR of b1 st b2 = (b3 + b4) - b5 holds
( b5,b3 // b4,b2 & b5,b4 // b3,b2 )
proof end;

theorem Th26: :: ANALOAF:26
for b1 being RealLinearSpace st ex b2, b3 being VECTOR of b1 st b2 <> b3 holds
for b2, b3, b4 being VECTOR of b1 ex b5 being VECTOR of b1 st
( b2,b3 // b4,b5 & b2,b4 // b3,b5 & b3 <> b5 )
proof end;

theorem Th27: :: ANALOAF:27
for b1 being RealLinearSpace
for b2, b3, b4, b5 being VECTOR of b1 st b2 <> b3 & b3,b2 // b2,b4 holds
ex b6 being VECTOR of b1 st
( b5,b2 // b2,b6 & b5,b3 // b4,b6 )
proof end;

theorem Th28: :: ANALOAF:28
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1 st ( for b4, b5 being Real st (b4 * b2) + (b5 * b3) = 0. b1 holds
( b4 = 0 & b5 = 0 ) ) holds
( b2 <> b3 & b2 <> 0. b1 & b3 <> 0. b1 )
proof end;

theorem Th29: :: ANALOAF:29
for b1 being RealLinearSpace st ex b2, b3 being VECTOR of b1 st
for b4, b5 being Real st (b4 * b2) + (b5 * b3) = 0. b1 holds
( b4 = 0 & b5 = 0 ) holds
ex b2, b3, b4, b5 being VECTOR of b1 st
( not b2,b3 // b4,b5 & not b2,b3 // b5,b4 )
proof end;

Lemma24: for b1 being RealLinearSpace
for b2, b3, b4, b5 being VECTOR of b1
for b6, b7 being Real st b6 * (b2 - b3) = b7 * (b4 - b5) & ( b6 <> 0 or b7 <> 0 ) & not b3,b2 // b4,b5 holds
b3,b2 // b5,b4
proof end;

theorem Th30: :: ANALOAF:30
canceled;

theorem Th31: :: ANALOAF:31
for b1 being RealLinearSpace st ex b2, b3 being VECTOR of b1 st
for b4 being VECTOR of b1 ex b5, b6 being Real st (b5 * b2) + (b6 * b3) = b4 holds
for b2, b3, b4, b5 being VECTOR of b1 st not b2,b3 // b4,b5 & not b2,b3 // b5,b4 holds
ex b6 being VECTOR of b1 st
( ( b2,b3 // b2,b6 or b2,b3 // b6,b2 ) & ( b4,b5 // b4,b6 or b4,b5 // b6,b4 ) )
proof end;

definition
attr a1 is strict;
struct AffinStruct -> 1-sorted ;
aggr AffinStruct(# carrier, CONGR #) -> AffinStruct ;
sel CONGR c1 -> Relation of [:the carrier of a1,the carrier of a1:];
end;

registration
cluster non empty strict AffinStruct ;
existence
ex b1 being AffinStruct st
( not b1 is empty & b1 is strict )
proof end;
end;

definition
let c1 be non empty AffinStruct ;
let c2, c3, c4, c5 be Element of c1;
pred c2,c3 // c4,c5 means :Def2: :: ANALOAF:def 2
[[a2,a3],[a4,a5]] in the CONGR of a1;
end;

:: deftheorem Def2 defines // ANALOAF:def 2 :
for b1 being non empty AffinStruct
for b2, b3, b4, b5 being Element of b1 holds
( b2,b3 // b4,b5 iff [[b2,b3],[b4,b5]] in the CONGR of b1 );

definition
let c1 be RealLinearSpace;
func DirPar c1 -> Relation of [:the carrier of a1,the carrier of a1:] means :Def3: :: ANALOAF:def 3
for b1, b2 being set holds
( [b1,b2] in a2 iff ex b3, b4, b5, b6 being VECTOR of a1 st
( b1 = [b3,b4] & b2 = [b5,b6] & b3,b4 // b5,b6 ) );
existence
ex b1 being Relation of [:the carrier of c1,the carrier of c1:] st
for b2, b3 being set holds
( [b2,b3] in b1 iff ex b4, b5, b6, b7 being VECTOR of c1 st
( b2 = [b4,b5] & b3 = [b6,b7] & b4,b5 // b6,b7 ) )
proof end;
uniqueness
for b1, b2 being Relation of [:the carrier of c1,the carrier of c1:] st ( for b3, b4 being set holds
( [b3,b4] in b1 iff ex b5, b6, b7, b8 being VECTOR of c1 st
( b3 = [b5,b6] & b4 = [b7,b8] & b5,b6 // b7,b8 ) ) ) & ( for b3, b4 being set holds
( [b3,b4] in b2 iff ex b5, b6, b7, b8 being VECTOR of c1 st
( b3 = [b5,b6] & b4 = [b7,b8] & b5,b6 // b7,b8 ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines DirPar ANALOAF:def 3 :
for b1 being RealLinearSpace
for b2 being Relation of [:the carrier of b1,the carrier of b1:] holds
( b2 = DirPar b1 iff for b3, b4 being set holds
( [b3,b4] in b2 iff ex b5, b6, b7, b8 being VECTOR of b1 st
( b3 = [b5,b6] & b4 = [b7,b8] & b5,b6 // b7,b8 ) ) );

theorem Th32: :: ANALOAF:32
canceled;

theorem Th33: :: ANALOAF:33
for b1 being RealLinearSpace
for b2, b3, b4, b5 being VECTOR of b1 holds
( [[b2,b3],[b4,b5]] in DirPar b1 iff b2,b3 // b4,b5 )
proof end;

definition
let c1 be RealLinearSpace;
func OASpace c1 -> strict AffinStruct equals :: ANALOAF:def 4
AffinStruct(# the carrier of a1,(DirPar a1) #);
correctness
coherence
AffinStruct(# the carrier of c1,(DirPar c1) #) is strict AffinStruct
;
;
end;

:: deftheorem Def4 defines OASpace ANALOAF:def 4 :
for b1 being RealLinearSpace holds OASpace b1 = AffinStruct(# the carrier of b1,(DirPar b1) #);

registration
let c1 be RealLinearSpace;
cluster OASpace a1 -> non empty strict ;
coherence
not OASpace c1 is empty
proof end;
end;

theorem Th34: :: ANALOAF:34
canceled;

theorem Th35: :: ANALOAF:35
for b1 being RealLinearSpace st ex b2, b3 being VECTOR of b1 st
for b4, b5 being Real st (b4 * b2) + (b5 * b3) = 0. b1 holds
( b4 = 0 & b5 = 0 ) holds
( ex b2, b3 being Element of (OASpace b1) st b2 <> b3 & ( for b2, b3, b4, b5, b6, b7, b8, b9 being Element of (OASpace b1) holds
( b2,b3 // b4,b4 & ( b2,b3 // b3,b2 implies b2 = b3 ) & ( b2 <> b3 & b2,b3 // b6,b7 & b2,b3 // b8,b9 implies b6,b7 // b8,b9 ) & ( b2,b3 // b4,b5 implies b3,b2 // b5,b4 ) & ( b2,b3 // b3,b4 implies b2,b3 // b2,b4 ) & ( not b2,b3 // b2,b4 or b2,b3 // b3,b4 or b2,b4 // b4,b3 ) ) ) & ex b2, b3, b4, b5 being Element of (OASpace b1) st
( not b2,b3 // b4,b5 & not b2,b3 // b5,b4 ) & ( for b2, b3, b4 being Element of (OASpace b1) ex b5 being Element of (OASpace b1) st
( b2,b3 // b4,b5 & b2,b4 // b3,b5 & b3 <> b5 ) ) & ( for b2, b3, b4, b5 being Element of (OASpace b1) st b2 <> b4 & b4,b2 // b2,b5 holds
ex b6 being Element of (OASpace b1) st
( b3,b2 // b2,b6 & b3,b4 // b5,b6 ) ) )
proof end;

theorem Th36: :: ANALOAF:36
for b1 being RealLinearSpace st ex b2, b3 being VECTOR of b1 st
for b4 being VECTOR of b1 ex b5, b6 being Real st (b5 * b2) + (b6 * b3) = b4 holds
for b2, b3, b4, b5 being Element of (OASpace b1) st not b2,b3 // b4,b5 & not b2,b3 // b5,b4 holds
ex b6 being Element of (OASpace b1) st
( ( b2,b3 // b2,b6 or b2,b3 // b6,b2 ) & ( b4,b5 // b4,b6 or b4,b5 // b6,b4 ) )
proof end;

definition
let c1 be non empty AffinStruct ;
attr a1 is OAffinSpace-like means :Def5: :: ANALOAF:def 5
( ( for b1, b2, b3, b4, b5, b6, b7, b8 being Element of a1 holds
( b1,b2 // b3,b3 & ( b1,b2 // b2,b1 implies b1 = b2 ) & ( b1 <> b2 & b1,b2 // b5,b6 & b1,b2 // b7,b8 implies b5,b6 // b7,b8 ) & ( b1,b2 // b3,b4 implies b2,b1 // b4,b3 ) & ( b1,b2 // b2,b3 implies b1,b2 // b1,b3 ) & ( not b1,b2 // b1,b3 or b1,b2 // b2,b3 or b1,b3 // b3,b2 ) ) ) & ex b1, b2, b3, b4 being Element of a1 st
( not b1,b2 // b3,b4 & not b1,b2 // b4,b3 ) & ( for b1, b2, b3 being Element of a1 ex b4 being Element of a1 st
( b1,b2 // b3,b4 & b1,b3 // b2,b4 & b2 <> b4 ) ) & ( for b1, b2, b3, b4 being Element of a1 st b1 <> b3 & b3,b1 // b1,b4 holds
ex b5 being Element of a1 st
( b2,b1 // b1,b5 & b2,b3 // b4,b5 ) ) );
end;

:: deftheorem Def5 defines OAffinSpace-like ANALOAF:def 5 :
for b1 being non empty AffinStruct holds
( b1 is OAffinSpace-like iff ( ( for b2, b3, b4, b5, b6, b7, b8, b9 being Element of b1 holds
( b2,b3 // b4,b4 & ( b2,b3 // b3,b2 implies b2 = b3 ) & ( b2 <> b3 & b2,b3 // b6,b7 & b2,b3 // b8,b9 implies b6,b7 // b8,b9 ) & ( b2,b3 // b4,b5 implies b3,b2 // b5,b4 ) & ( b2,b3 // b3,b4 implies b2,b3 // b2,b4 ) & ( not b2,b3 // b2,b4 or b2,b3 // b3,b4 or b2,b4 // b4,b3 ) ) ) & ex b2, b3, b4, b5 being Element of b1 st
( not b2,b3 // b4,b5 & not b2,b3 // b5,b4 ) & ( for b2, b3, b4 being Element of b1 ex b5 being Element of b1 st
( b2,b3 // b4,b5 & b2,b4 // b3,b5 & b3 <> b5 ) ) & ( for b2, b3, b4, b5 being Element of b1 st b2 <> b4 & b4,b2 // b2,b5 holds
ex b6 being Element of b1 st
( b3,b2 // b2,b6 & b3,b4 // b5,b6 ) ) ) );

registration
cluster non empty non trivial strict OAffinSpace-like AffinStruct ;
existence
ex b1 being non empty AffinStruct st
( b1 is strict & not b1 is trivial & b1 is OAffinSpace-like )
proof end;
end;

definition
mode OAffinSpace is non empty non trivial OAffinSpace-like AffinStruct ;
end;

theorem Th37: :: ANALOAF:37
for b1 being non empty AffinStruct holds
( ( ex b2, b3 being Element of b1 st b2 <> b3 & ( for b2, b3, b4, b5, b6, b7, b8, b9 being Element of b1 holds
( b2,b3 // b4,b4 & ( b2,b3 // b3,b2 implies b2 = b3 ) & ( b2 <> b3 & b2,b3 // b6,b7 & b2,b3 // b8,b9 implies b6,b7 // b8,b9 ) & ( b2,b3 // b4,b5 implies b3,b2 // b5,b4 ) & ( b2,b3 // b3,b4 implies b2,b3 // b2,b4 ) & ( not b2,b3 // b2,b4 or b2,b3 // b3,b4 or b2,b4 // b4,b3 ) ) ) & ex b2, b3, b4, b5 being Element of b1 st
( not b2,b3 // b4,b5 & not b2,b3 // b5,b4 ) & ( for b2, b3, b4 being Element of b1 ex b5 being Element of b1 st
( b2,b3 // b4,b5 & b2,b4 // b3,b5 & b3 <> b5 ) ) & ( for b2, b3, b4, b5 being Element of b1 st b2 <> b4 & b4,b2 // b2,b5 holds
ex b6 being Element of b1 st
( b3,b2 // b2,b6 & b3,b4 // b5,b6 ) ) ) iff b1 is OAffinSpace ) by Def5, REALSET2:def 7;

theorem Th38: :: ANALOAF:38
for b1 being RealLinearSpace st ex b2, b3 being VECTOR of b1 st
for b4, b5 being Real st (b4 * b2) + (b5 * b3) = 0. b1 holds
( b4 = 0 & b5 = 0 ) holds
OASpace b1 is OAffinSpace
proof end;

definition
let c1 be OAffinSpace;
attr a1 is 2-dimensional means :Def6: :: ANALOAF:def 6
for b1, b2, b3, b4 being Element of a1 st not b1,b2 // b3,b4 & not b1,b2 // b4,b3 holds
ex b5 being Element of a1 st
( ( b1,b2 // b1,b5 or b1,b2 // b5,b1 ) & ( b3,b4 // b3,b5 or b3,b4 // b5,b3 ) );
end;

:: deftheorem Def6 defines 2-dimensional ANALOAF:def 6 :
for b1 being OAffinSpace holds
( b1 is 2-dimensional iff for b2, b3, b4, b5 being Element of b1 st not b2,b3 // b4,b5 & not b2,b3 // b5,b4 holds
ex b6 being Element of b1 st
( ( b2,b3 // b2,b6 or b2,b3 // b6,b2 ) & ( b4,b5 // b4,b6 or b4,b5 // b6,b4 ) ) );

registration
cluster strict 2-dimensional AffinStruct ;
existence
ex b1 being OAffinSpace st
( b1 is strict & b1 is 2-dimensional )
proof end;
end;

definition
mode OAffinPlane is 2-dimensional OAffinSpace;
end;

theorem Th39: :: ANALOAF:39
canceled;

theorem Th40: :: ANALOAF:40
canceled;

theorem Th41: :: ANALOAF:41
canceled;

theorem Th42: :: ANALOAF:42
canceled;

theorem Th43: :: ANALOAF:43
canceled;

theorem Th44: :: ANALOAF:44
canceled;

theorem Th45: :: ANALOAF:45
canceled;

theorem Th46: :: ANALOAF:46
canceled;

theorem Th47: :: ANALOAF:47
canceled;

theorem Th48: :: ANALOAF:48
canceled;

theorem Th49: :: ANALOAF:49
canceled;

theorem Th50: :: ANALOAF:50
for b1 being non empty AffinStruct holds
( ( ex b2, b3 being Element of b1 st b2 <> b3 & ( for b2, b3, b4, b5, b6, b7, b8, b9 being Element of b1 holds
( b2,b3 // b4,b4 & ( b2,b3 // b3,b2 implies b2 = b3 ) & ( b2 <> b3 & b2,b3 // b6,b7 & b2,b3 // b8,b9 implies b6,b7 // b8,b9 ) & ( b2,b3 // b4,b5 implies b3,b2 // b5,b4 ) & ( b2,b3 // b3,b4 implies b2,b3 // b2,b4 ) & ( not b2,b3 // b2,b4 or b2,b3 // b3,b4 or b2,b4 // b4,b3 ) ) ) & ex b2, b3, b4, b5 being Element of b1 st
( not b2,b3 // b4,b5 & not b2,b3 // b5,b4 ) & ( for b2, b3, b4 being Element of b1 ex b5 being Element of b1 st
( b2,b3 // b4,b5 & b2,b4 // b3,b5 & b3 <> b5 ) ) & ( for b2, b3, b4, b5 being Element of b1 st b2 <> b4 & b4,b2 // b2,b5 holds
ex b6 being Element of b1 st
( b3,b2 // b2,b6 & b3,b4 // b5,b6 ) ) & ( for b2, b3, b4, b5 being Element of b1 st not b2,b3 // b4,b5 & not b2,b3 // b5,b4 holds
ex b6 being Element of b1 st
( ( b2,b3 // b2,b6 or b2,b3 // b6,b2 ) & ( b4,b5 // b4,b6 or b4,b5 // b6,b4 ) ) ) ) iff b1 is OAffinPlane ) by Def5, Def6, REALSET2:def 7;

theorem Th51: :: ANALOAF:51
for b1 being RealLinearSpace st ex b2, b3 being VECTOR of b1 st
( ( for b4, b5 being Real st (b4 * b2) + (b5 * b3) = 0. b1 holds
( b4 = 0 & b5 = 0 ) ) & ( for b4 being VECTOR of b1 ex b5, b6 being Real st b4 = (b5 * b2) + (b6 * b3) ) ) holds
OASpace b1 is OAffinPlane
proof end;