:: MIDSP_2 semantic presentation

definition
let c1 be non empty LoopStr ;
let c2 be Element of c1;
func Double c2 -> Element of a1 equals :: MIDSP_2:def 1
a2 + a2;
coherence
c2 + c2 is Element of c1
;
end;

:: deftheorem Def1 defines Double MIDSP_2:def 1 :
for b1 being non empty LoopStr
for b2 being Element of b1 holds Double b2 = b2 + b2;

definition
let c1 be non empty MidStr ;
let c2 be non empty LoopStr ;
let c3 be Function of [:the carrier of c1,the carrier of c1:],the carrier of c2;
pred c1,c2 are_associated_wrp c3 means :Def2: :: MIDSP_2:def 2
for b1, b2, b3 being Point of a1 holds
( b1 @ b2 = b3 iff a3 . b1,b3 = a3 . b3,b2 );
end;

:: deftheorem Def2 defines are_associated_wrp MIDSP_2:def 2 :
for b1 being non empty MidStr
for b2 being non empty LoopStr
for b3 being Function of [:the carrier of b1,the carrier of b1:],the carrier of b2 holds
( b1,b2 are_associated_wrp b3 iff for b4, b5, b6 being Point of b1 holds
( b4 @ b5 = b6 iff b3 . b4,b6 = b3 . b6,b5 ) );

theorem Th1: :: MIDSP_2:1
for b1 being non empty LoopStr
for b2 being non empty MidStr
for b3 being Point of b2
for b4 being Function of [:the carrier of b2,the carrier of b2:],the carrier of b1 st b2,b1 are_associated_wrp b4 holds
b3 @ b3 = b3
proof end;

definition
let c1 be non empty set ;
let c2 be non empty LoopStr ;
let c3 be Function of [:c1,c1:],the carrier of c2;
pred c3 is_atlas_of c1,c2 means :Def3: :: MIDSP_2:def 3
( ( for b1 being Element of a1
for b2 being Element of a2 ex b3 being Element of a1 st a3 . b1,b3 = b2 ) & ( for b1, b2, b3 being Element of a1 st a3 . b1,b2 = a3 . b1,b3 holds
b2 = b3 ) & ( for b1, b2, b3 being Element of a1 holds (a3 . b1,b2) + (a3 . b2,b3) = a3 . b1,b3 ) );
end;

:: deftheorem Def3 defines is_atlas_of MIDSP_2:def 3 :
for b1 being non empty set
for b2 being non empty LoopStr
for b3 being Function of [:b1,b1:],the carrier of b2 holds
( b3 is_atlas_of b1,b2 iff ( ( for b4 being Element of b1
for b5 being Element of b2 ex b6 being Element of b1 st b3 . b4,b6 = b5 ) & ( for b4, b5, b6 being Element of b1 st b3 . b4,b5 = b3 . b4,b6 holds
b5 = b6 ) & ( for b4, b5, b6 being Element of b1 holds (b3 . b4,b5) + (b3 . b5,b6) = b3 . b4,b6 ) ) );

definition
let c1 be non empty set ;
let c2 be non empty LoopStr ;
let c3 be Function of [:c1,c1:],the carrier of c2;
let c4 be Element of c1;
let c5 be Element of c2;
assume E4: c3 is_atlas_of c1,c2 ;
func c4,c5 . c3 -> Element of a1 means :Def4: :: MIDSP_2:def 4
a3 . a4,a6 = a5;
existence
ex b1 being Element of c1 st c3 . c4,b1 = c5
by E4, Def3;
uniqueness
for b1, b2 being Element of c1 st c3 . c4,b1 = c5 & c3 . c4,b2 = c5 holds
b1 = b2
by E4, Def3;
end;

:: deftheorem Def4 defines . MIDSP_2:def 4 :
for b1 being non empty set
for b2 being non empty LoopStr
for b3 being Function of [:b1,b1:],the carrier of b2
for b4 being Element of b1
for b5 being Element of b2 st b3 is_atlas_of b1,b2 holds
for b6 being Element of b1 holds
( b6 = b4,b5 . b3 iff b3 . b4,b6 = b5 );

theorem Th2: :: MIDSP_2:2
for b1 being non empty add-associative right_zeroed right_complementable LoopStr holds Double (0. b1) = 0. b1 by RLVECT_1:def 7;

theorem Th3: :: MIDSP_2:3
canceled;

theorem Th4: :: MIDSP_2:4
for b1 being non empty set
for b2 being Element of b1
for b3 being non empty add-associative right_zeroed right_complementable LoopStr
for b4 being Function of [:b1,b1:],the carrier of b3 st b4 is_atlas_of b1,b3 holds
b4 . b2,b2 = 0. b3
proof end;

theorem Th5: :: MIDSP_2:5
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being non empty add-associative right_zeroed right_complementable LoopStr
for b5 being Function of [:b1,b1:],the carrier of b4 st b5 is_atlas_of b1,b4 & b5 . b2,b3 = 0. b4 holds
b2 = b3
proof end;

theorem Th6: :: MIDSP_2:6
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being non empty add-associative right_zeroed right_complementable LoopStr
for b5 being Function of [:b1,b1:],the carrier of b4 st b5 is_atlas_of b1,b4 holds
b5 . b2,b3 = - (b5 . b3,b2)
proof end;

theorem Th7: :: MIDSP_2:7
for b1 being non empty set
for b2, b3, b4, b5 being Element of b1
for b6 being non empty add-associative right_zeroed right_complementable LoopStr
for b7 being Function of [:b1,b1:],the carrier of b6 st b7 is_atlas_of b1,b6 & b7 . b2,b3 = b7 . b4,b5 holds
b7 . b3,b2 = b7 . b5,b4
proof end;

theorem Th8: :: MIDSP_2:8
for b1 being non empty set
for b2 being non empty add-associative right_zeroed right_complementable LoopStr
for b3 being Function of [:b1,b1:],the carrier of b2 st b3 is_atlas_of b1,b2 holds
for b4 being Element of b1
for b5 being Element of b2 ex b6 being Element of b1 st b3 . b6,b4 = b5
proof end;

theorem Th9: :: MIDSP_2:9
for b1 being non empty set
for b2, b3, b4 being Element of b1
for b5 being non empty add-associative right_zeroed right_complementable LoopStr
for b6 being Function of [:b1,b1:],the carrier of b5 st b6 is_atlas_of b1,b5 & b6 . b2,b3 = b6 . b4,b3 holds
b2 = b4
proof end;

theorem Th10: :: MIDSP_2:10
for b1 being non empty MidStr
for b2, b3 being Point of b1
for b4 being non empty add-associative right_zeroed right_complementable LoopStr
for b5 being Function of [:the carrier of b1,the carrier of b1:],the carrier of b4 st b5 is_atlas_of the carrier of b1,b4 & b1,b4 are_associated_wrp b5 holds
b2 @ b3 = b3 @ b2
proof end;

theorem Th11: :: MIDSP_2:11
for b1 being non empty MidStr
for b2, b3 being Point of b1
for b4 being non empty add-associative right_zeroed right_complementable LoopStr
for b5 being Function of [:the carrier of b1,the carrier of b1:],the carrier of b4 st b5 is_atlas_of the carrier of b1,b4 & b1,b4 are_associated_wrp b5 holds
ex b6 being Point of b1 st b6 @ b2 = b3
proof end;

theorem Th12: :: MIDSP_2:12
canceled;

theorem Th13: :: MIDSP_2:13
for b1 being non empty Abelian add-associative LoopStr
for b2, b3, b4, b5 being Element of b1 holds (b2 + b3) + (b4 + b5) = (b2 + b4) + (b3 + b5)
proof end;

theorem Th14: :: MIDSP_2:14
for b1 being non empty Abelian add-associative LoopStr
for b2, b3 being Element of b1 holds Double (b2 + b3) = (Double b2) + (Double b3) by Th13;

theorem Th15: :: MIDSP_2:15
for b1 being non empty Abelian add-associative right_zeroed right_complementable LoopStr
for b2 being Element of b1 holds Double (- b2) = - (Double b2)
proof end;

theorem Th16: :: MIDSP_2:16
for b1 being non empty MidStr
for b2 being non empty Abelian add-associative right_zeroed right_complementable LoopStr
for b3 being Function of [:the carrier of b1,the carrier of b1:],the carrier of b2 st b3 is_atlas_of the carrier of b1,b2 & b1,b2 are_associated_wrp b3 holds
for b4, b5, b6, b7 being Point of b1 holds
( b4 @ b5 = b6 @ b7 iff b3 . b4,b7 = b3 . b6,b5 )
proof end;

theorem Th17: :: MIDSP_2:17
for b1 being non empty set
for b2 being non empty Abelian add-associative right_zeroed right_complementable LoopStr
for b3 being Function of [:b1,b1:],the carrier of b2 st b3 is_atlas_of b1,b2 holds
for b4, b5, b6, b7, b8 being Element of b1 st b3 . b4,b5 = b3 . b5,b7 & b3 . b4,b6 = b3 . b6,b8 holds
b3 . b7,b8 = Double (b3 . b5,b6)
proof end;

registration
let c1 be MidSp;
cluster vectgroup a1 -> Abelian add-associative right_zeroed right_complementable ;
coherence
( vectgroup c1 is Abelian & vectgroup c1 is add-associative & vectgroup c1 is right_zeroed & vectgroup c1 is right_complementable )
by MIDSP_1:86;
end;

theorem Th18: :: MIDSP_2:18
for b1 being MidSp holds
( ( for b2 being set holds
( b2 is Element of (vectgroup b1) iff b2 is Vector of b1 ) ) & 0. (vectgroup b1) = ID b1 & ( for b2, b3 being Element of (vectgroup b1)
for b4, b5 being Vector of b1 st b2 = b4 & b3 = b5 holds
b2 + b3 = b4 + b5 ) )
proof end;

Lemma20: for b1 being MidSp holds
( ( for b2 being Element of (vectgroup b1) ex b3 being Element of (vectgroup b1) st Double b3 = b2 ) & ( for b2 being Element of (vectgroup b1) st Double b2 = 0. (vectgroup b1) holds
b2 = 0. (vectgroup b1) ) )
proof end;

definition
let c1 be non empty LoopStr ;
attr a1 is midpoint_operator means :Def5: :: MIDSP_2:def 5
( ( for b1 being Element of a1 ex b2 being Element of a1 st Double b2 = b1 ) & ( for b1 being Element of a1 st Double b1 = 0. a1 holds
b1 = 0. a1 ) );
end;

:: deftheorem Def5 defines midpoint_operator MIDSP_2:def 5 :
for b1 being non empty LoopStr holds
( b1 is midpoint_operator iff ( ( for b2 being Element of b1 ex b3 being Element of b1 st Double b3 = b2 ) & ( for b2 being Element of b1 st Double b2 = 0. b1 holds
b2 = 0. b1 ) ) );

registration
cluster non empty midpoint_operator -> non empty Fanoian LoopStr ;
coherence
for b1 being non empty LoopStr st b1 is midpoint_operator holds
b1 is Fanoian
proof end;
end;

registration
cluster non empty strict Abelian add-associative right_zeroed right_complementable Fanoian midpoint_operator LoopStr ;
existence
ex b1 being non empty LoopStr st
( b1 is strict & b1 is midpoint_operator & b1 is add-associative & b1 is right_zeroed & b1 is right_complementable & b1 is Abelian )
proof end;
end;

theorem Th19: :: MIDSP_2:19
for b1 being non empty add-associative right_zeroed right_complementable Fanoian LoopStr
for b2 being Element of b1 st b2 = - b2 holds
b2 = 0. b1
proof end;

theorem Th20: :: MIDSP_2:20
for b1 being non empty Abelian add-associative right_zeroed right_complementable Fanoian LoopStr
for b2, b3 being Element of b1 st Double b2 = Double b3 holds
b2 = b3
proof end;

definition
let c1 be non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr ;
let c2 be Element of c1;
func Half c2 -> Element of a1 means :Def6: :: MIDSP_2:def 6
Double a3 = a2;
existence
ex b1 being Element of c1 st Double b1 = c2
by Def5;
uniqueness
for b1, b2 being Element of c1 st Double b1 = c2 & Double b2 = c2 holds
b1 = b2
by Th20;
end;

:: deftheorem Def6 defines Half MIDSP_2:def 6 :
for b1 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b2, b3 being Element of b1 holds
( b3 = Half b2 iff Double b3 = b2 );

theorem Th21: :: MIDSP_2:21
for b1 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b2, b3 being Element of b1 holds
( Half (0. b1) = 0. b1 & Half (b2 + b3) = (Half b2) + (Half b3) & ( Half b2 = Half b3 implies b2 = b3 ) & Half (Double b2) = b2 )
proof end;

theorem Th22: :: MIDSP_2:22
for b1 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b2 being non empty MidStr
for b3 being Function of [:the carrier of b2,the carrier of b2:],the carrier of b1 st b3 is_atlas_of the carrier of b2,b1 & b2,b1 are_associated_wrp b3 holds
for b4, b5, b6, b7 being Point of b2 holds (b4 @ b5) @ (b6 @ b7) = (b4 @ b6) @ (b5 @ b7)
proof end;

theorem Th23: :: MIDSP_2:23
for b1 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b2 being non empty MidStr
for b3 being Function of [:the carrier of b2,the carrier of b2:],the carrier of b1 st b3 is_atlas_of the carrier of b2,b1 & b2,b1 are_associated_wrp b3 holds
b2 is MidSp
proof end;

registration
let c1 be MidSp;
cluster vectgroup a1 -> Abelian add-associative right_zeroed right_complementable Fanoian midpoint_operator ;
coherence
vectgroup c1 is midpoint_operator
proof end;
end;

definition
let c1 be MidSp;
let c2, c3 be Point of c1;
func vector c2,c3 -> Element of (vectgroup a1) equals :: MIDSP_2:def 7
vect a2,a3;
coherence
vect c2,c3 is Element of (vectgroup c1)
by Th18;
end;

:: deftheorem Def7 defines vector MIDSP_2:def 7 :
for b1 being MidSp
for b2, b3 being Point of b1 holds vector b2,b3 = vect b2,b3;

definition
let c1 be MidSp;
func vect c1 -> Function of [:the carrier of a1,the carrier of a1:],the carrier of (vectgroup a1) means :Def8: :: MIDSP_2:def 8
for b1, b2 being Point of a1 holds a2 . b1,b2 = vect b1,b2;
existence
ex b1 being Function of [:the carrier of c1,the carrier of c1:],the carrier of (vectgroup c1) st
for b2, b3 being Point of c1 holds b1 . b2,b3 = vect b2,b3
proof end;
uniqueness
for b1, b2 being Function of [:the carrier of c1,the carrier of c1:],the carrier of (vectgroup c1) st ( for b3, b4 being Point of c1 holds b1 . b3,b4 = vect b3,b4 ) & ( for b3, b4 being Point of c1 holds b2 . b3,b4 = vect b3,b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def8 defines vect MIDSP_2:def 8 :
for b1 being MidSp
for b2 being Function of [:the carrier of b1,the carrier of b1:],the carrier of (vectgroup b1) holds
( b2 = vect b1 iff for b3, b4 being Point of b1 holds b2 . b3,b4 = vect b3,b4 );

theorem Th24: :: MIDSP_2:24
for b1 being MidSp holds vect b1 is_atlas_of the carrier of b1, vectgroup b1
proof end;

theorem Th25: :: MIDSP_2:25
for b1 being MidSp
for b2, b3, b4, b5 being Point of b1 holds
( vect b2,b3 = vect b4,b5 iff b2 @ b5 = b3 @ b4 )
proof end;

theorem Th26: :: MIDSP_2:26
for b1 being MidSp
for b2, b3, b4 being Point of b1 holds
( b2 @ b3 = b4 iff vect b2,b4 = vect b4,b3 )
proof end;

theorem Th27: :: MIDSP_2:27
for b1 being MidSp holds b1, vectgroup b1 are_associated_wrp vect b1
proof end;

definition
let c1 be non empty set ;
let c2 be non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr ;
let c3 be Function of [:c1,c1:],the carrier of c2;
assume E32: c3 is_atlas_of c1,c2 ;
func @ c3 -> BinOp of a1 means :Def9: :: MIDSP_2:def 9
for b1, b2 being Element of a1 holds a3 . b1,(a4 . b1,b2) = a3 . (a4 . b1,b2),b2;
existence
ex b1 being BinOp of c1 st
for b2, b3 being Element of c1 holds c3 . b2,(b1 . b2,b3) = c3 . (b1 . b2,b3),b3
proof end;
uniqueness
for b1, b2 being BinOp of c1 st ( for b3, b4 being Element of c1 holds c3 . b3,(b1 . b3,b4) = c3 . (b1 . b3,b4),b4 ) & ( for b3, b4 being Element of c1 holds c3 . b3,(b2 . b3,b4) = c3 . (b2 . b3,b4),b4 ) holds
b1 = b2
proof end;
end;

:: deftheorem Def9 defines @ MIDSP_2:def 9 :
for b1 being non empty set
for b2 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b3 being Function of [:b1,b1:],the carrier of b2 st b3 is_atlas_of b1,b2 holds
for b4 being BinOp of b1 holds
( b4 = @ b3 iff for b5, b6 being Element of b1 holds b3 . b5,(b4 . b5,b6) = b3 . (b4 . b5,b6),b6 );

theorem Th28: :: MIDSP_2:28
for b1 being non empty set
for b2 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b3 being Function of [:b1,b1:],the carrier of b2 st b3 is_atlas_of b1,b2 holds
for b4, b5, b6 being Element of b1 holds
( (@ b3) . b4,b5 = b6 iff b3 . b4,b6 = b3 . b6,b5 )
proof end;

registration
let c1 be non empty set ;
let c2 be BinOp of c1;
cluster MidStr(# a1,a2 #) -> non empty ;
coherence
not MidStr(# c1,c2 #) is empty
proof end;
end;

definition
let c1 be non empty set ;
let c2 be non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr ;
let c3 be Function of [:c1,c1:],the carrier of c2;
func Atlas c3 -> Function of [:the carrier of MidStr(# a1,(@ a3) #),the carrier of MidStr(# a1,(@ a3) #):],the carrier of a2 equals :: MIDSP_2:def 10
a3;
coherence
c3 is Function of [:the carrier of MidStr(# c1,(@ c3) #),the carrier of MidStr(# c1,(@ c3) #):],the carrier of c2
;
end;

:: deftheorem Def10 defines Atlas MIDSP_2:def 10 :
for b1 being non empty set
for b2 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b3 being Function of [:b1,b1:],the carrier of b2 holds Atlas b3 = b3;

Lemma34: for b1 being non empty set
for b2 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b3 being Function of [:b1,b1:],the carrier of b2 st b3 is_atlas_of b1,b2 holds
for b4, b5, b6 being Point of MidStr(# b1,(@ b3) #) holds
( b4 @ b5 = b6 iff (Atlas b3) . b4,b6 = (Atlas b3) . b6,b5 )
proof end;

theorem Th29: :: MIDSP_2:29
canceled;

theorem Th30: :: MIDSP_2:30
canceled;

theorem Th31: :: MIDSP_2:31
canceled;

theorem Th32: :: MIDSP_2:32
for b1 being non empty set
for b2 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b3 being Function of [:b1,b1:],the carrier of b2 st b3 is_atlas_of b1,b2 holds
MidStr(# b1,(@ b3) #),b2 are_associated_wrp Atlas b3
proof end;

definition
let c1 be non empty set ;
let c2 be non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr ;
let c3 be Function of [:c1,c1:],the carrier of c2;
assume E36: c3 is_atlas_of c1,c2 ;
func MidSp. c3 -> strict MidSp equals :: MIDSP_2:def 11
MidStr(# a1,(@ a3) #);
coherence
MidStr(# c1,(@ c3) #) is strict MidSp
proof end;
end;

:: deftheorem Def11 defines MidSp. MIDSP_2:def 11 :
for b1 being non empty set
for b2 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b3 being Function of [:b1,b1:],the carrier of b2 st b3 is_atlas_of b1,b2 holds
MidSp. b3 = MidStr(# b1,(@ b3) #);

theorem Th33: :: MIDSP_2:33
for b1 being non empty MidStr holds
( b1 is MidSp iff ex b2 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr ex b3 being Function of [:the carrier of b1,the carrier of b1:],the carrier of b2 st
( b3 is_atlas_of the carrier of b1,b2 & b1,b2 are_associated_wrp b3 ) )
proof end;

definition
let c1 be non empty MidStr ;
attr a2 is strict;
struct AtlasStr of c1 -> ;
aggr AtlasStr(# algebra, function #) -> AtlasStr of a1;
sel algebra c2 -> non empty LoopStr ;
sel function c2 -> Function of [:the carrier of a1,the carrier of a1:],the carrier of the algebra of a2;
end;

definition
let c1 be non empty MidStr ;
let c2 be AtlasStr of c1;
attr a2 is ATLAS-like means :Def12: :: MIDSP_2:def 12
( the algebra of a2 is midpoint_operator & the algebra of a2 is add-associative & the algebra of a2 is right_zeroed & the algebra of a2 is right_complementable & the algebra of a2 is Abelian & a1,the algebra of a2 are_associated_wrp the function of a2 & the function of a2 is_atlas_of the carrier of a1,the algebra of a2 );
end;

:: deftheorem Def12 defines ATLAS-like MIDSP_2:def 12 :
for b1 being non empty MidStr
for b2 being AtlasStr of b1 holds
( b2 is ATLAS-like iff ( the algebra of b2 is midpoint_operator & the algebra of b2 is add-associative & the algebra of b2 is right_zeroed & the algebra of b2 is right_complementable & the algebra of b2 is Abelian & b1,the algebra of b2 are_associated_wrp the function of b2 & the function of b2 is_atlas_of the carrier of b1,the algebra of b2 ) );

registration
let c1 be MidSp;
cluster ATLAS-like AtlasStr of a1;
existence
ex b1 being AtlasStr of c1 st b1 is ATLAS-like
proof end;
end;

definition
let c1 be non empty MidSp;
mode ATLAS of a1 is ATLAS-like AtlasStr of a1;
end;

definition
let c1 be non empty MidStr ;
let c2 be AtlasStr of c1;
mode Vector of a2 is Element of the algebra of a2;
end;

definition
let c1 be MidSp;
let c2 be AtlasStr of c1;
let c3, c4 be Point of c1;
func c2 . c3,c4 -> Element of the algebra of a2 equals :: MIDSP_2:def 13
the function of a2 . a3,a4;
coherence
the function of c2 . c3,c4 is Element of the algebra of c2
;
end;

:: deftheorem Def13 defines . MIDSP_2:def 13 :
for b1 being MidSp
for b2 being AtlasStr of b1
for b3, b4 being Point of b1 holds b2 . b3,b4 = the function of b2 . b3,b4;

definition
let c1 be MidSp;
let c2 be AtlasStr of c1;
let c3 be Point of c1;
let c4 be Vector of c2;
func c3,c4 . c2 -> Point of a1 equals :: MIDSP_2:def 14
a3,a4 . the function of a2;
coherence
c3,c4 . the function of c2 is Point of c1
;
end;

:: deftheorem Def14 defines . MIDSP_2:def 14 :
for b1 being MidSp
for b2 being AtlasStr of b1
for b3 being Point of b1
for b4 being Vector of b2 holds b3,b4 . b2 = b3,b4 . the function of b2;

definition
let c1 be MidSp;
let c2 be ATLAS of c1;
func 0. c2 -> Vector of a2 equals :: MIDSP_2:def 15
0. the algebra of a2;
coherence
0. the algebra of c2 is Vector of c2
;
end;

:: deftheorem Def15 defines 0. MIDSP_2:def 15 :
for b1 being MidSp
for b2 being ATLAS of b1 holds 0. b2 = 0. the algebra of b2;

theorem Th34: :: MIDSP_2:34
for b1 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b2 being non empty MidStr
for b3 being Function of [:the carrier of b2,the carrier of b2:],the carrier of b1
for b4, b5, b6, b7 being Point of b2 st b3 is_atlas_of the carrier of b2,b1 & b2,b1 are_associated_wrp b3 holds
( b4 @ b5 = b6 @ b7 iff b3 . b4,b5 = (b3 . b4,b6) + (b3 . b4,b7) )
proof end;

theorem Th35: :: MIDSP_2:35
for b1 being non empty Abelian add-associative right_zeroed right_complementable midpoint_operator LoopStr
for b2 being non empty MidStr
for b3 being Function of [:the carrier of b2,the carrier of b2:],the carrier of b1
for b4, b5, b6 being Point of b2 st b3 is_atlas_of the carrier of b2,b1 & b2,b1 are_associated_wrp b3 holds
( b4 @ b5 = b6 iff b3 . b4,b5 = Double (b3 . b4,b6) )
proof end;

theorem Th36: :: MIDSP_2:36
for b1 being MidSp
for b2 being ATLAS of b1
for b3, b4, b5, b6 being Point of b1 holds
( b3 @ b4 = b5 @ b6 iff b2 . b3,b4 = (b2 . b3,b5) + (b2 . b3,b6) )
proof end;

theorem Th37: :: MIDSP_2:37
for b1 being MidSp
for b2 being ATLAS of b1
for b3, b4, b5 being Point of b1 holds
( b3 @ b4 = b5 iff b2 . b3,b4 = Double (b2 . b3,b5) )
proof end;

theorem Th38: :: MIDSP_2:38
for b1 being MidSp
for b2 being ATLAS of b1 holds
( ( for b3 being Point of b1
for b4 being Vector of b2 ex b5 being Point of b1 st b2 . b3,b5 = b4 ) & ( for b3, b4, b5 being Point of b1 st b2 . b3,b4 = b2 . b3,b5 holds
b4 = b5 ) & ( for b3, b4, b5 being Point of b1 holds (b2 . b3,b4) + (b2 . b4,b5) = b2 . b3,b5 ) )
proof end;

theorem Th39: :: MIDSP_2:39
for b1 being MidSp
for b2 being ATLAS of b1
for b3, b4, b5, b6 being Point of b1
for b7 being Vector of b2 holds
( b2 . b3,b3 = 0. b2 & ( b2 . b3,b4 = 0. b2 implies b3 = b4 ) & b2 . b3,b4 = - (b2 . b4,b3) & ( b2 . b3,b4 = b2 . b5,b6 implies b2 . b4,b3 = b2 . b6,b5 ) & ( for b8 being Point of b1
for b9 being Vector of b2 ex b10 being Point of b1 st b2 . b10,b8 = b9 ) & ( b2 . b4,b3 = b2 . b5,b3 implies b4 = b5 ) & ( b3 @ b4 = b5 implies b2 . b3,b5 = b2 . b5,b4 ) & ( b2 . b3,b5 = b2 . b5,b4 implies b3 @ b4 = b5 ) & ( b3 @ b4 = b5 @ b6 implies b2 . b3,b6 = b2 . b5,b4 ) & ( b2 . b3,b6 = b2 . b5,b4 implies b3 @ b4 = b5 @ b6 ) & ( b2 . b3,b4 = b7 implies b3,b7 . b2 = b4 ) & ( b3,b7 . b2 = b4 implies b2 . b3,b4 = b7 ) )
proof end;

theorem Th40: :: MIDSP_2:40
for b1 being MidSp
for b2 being ATLAS of b1
for b3 being Point of b1 holds b3,(0. b2) . b2 = b3
proof end;