Article MIDSP_2, MML version 4.99.1005

:: MIDSP_2:funcnot 1 => MIDSP_2:func 1
definition
  let a1 be non empty addLoopStr;
  let a2 be Element of the carrier of a1;
  func Double A2 -> Element of the carrier of a1 equals
    a2 + a2;
end;

:: MIDSP_2:def 1
theorem
for b1 being non empty addLoopStr
for b2 being Element of the carrier of b1 holds
   Double b2 = b2 + b2;

:: MIDSP_2:prednot 1 => MIDSP_2:pred 1
definition
  let a1 be non empty MidStr;
  let a2 be non empty addLoopStr;
  let a3 be Function-like quasi_total Relation of [:the carrier of a1,the carrier of a1:],the carrier of a2;
  pred A1,A2 are_associated_wrp A3 means
    for b1, b2, b3 being Element of the carrier of a1 holds
       b1 @ b2 = b3
    iff
       a3 .(b1,b3) = a3 .(b3,b2);
end;

:: MIDSP_2:dfs 2
definiens
  let a1 be non empty MidStr;
  let a2 be non empty addLoopStr;
  let a3 be Function-like quasi_total Relation of [:the carrier of a1,the carrier of a1:],the carrier of a2;
To prove
     a1,a2 are_associated_wrp a3
it is sufficient to prove
  thus for b1, b2, b3 being Element of the carrier of a1 holds
       b1 @ b2 = b3
    iff
       a3 .(b1,b3) = a3 .(b3,b2);

:: MIDSP_2:def 2
theorem
for b1 being non empty MidStr
for b2 being non empty addLoopStr
for b3 being Function-like quasi_total Relation 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 Element of the carrier of b1 holds
         b4 @ b5 = b6
      iff
         b3 .(b4,b6) = b3 .(b6,b5);

:: MIDSP_2:th 1
theorem
for b1 being non empty addLoopStr
for b2 being non empty MidStr
for b3 being Element of the carrier of b2
for b4 being Function-like quasi_total Relation of [:the carrier of b2,the carrier of b2:],the carrier of b1
      st b2,b1 are_associated_wrp b4
   holds b3 @ b3 = b3;

:: MIDSP_2:prednot 2 => MIDSP_2:pred 2
definition
  let a1 be non empty set;
  let a2 be non empty addLoopStr;
  let a3 be Function-like quasi_total Relation of [:a1,a1:],the carrier of a2;
  pred A3 is_atlas_of A1,A2 means
    (for b1 being Element of a1
     for b2 being Element of the carrier of a2 holds
        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;

:: MIDSP_2:dfs 3
definiens
  let a1 be non empty set;
  let a2 be non empty addLoopStr;
  let a3 be Function-like quasi_total Relation of [:a1,a1:],the carrier of a2;
To prove
     a3 is_atlas_of a1,a2
it is sufficient to prove
  thus (for b1 being Element of a1
     for b2 being Element of the carrier of a2 holds
        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));

:: MIDSP_2:def 3
theorem
for b1 being non empty set
for b2 being non empty addLoopStr
for b3 being Function-like quasi_total Relation 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 the carrier of b2 holds
          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));

:: MIDSP_2:funcnot 2 => MIDSP_2:func 2
definition
  let a1 be non empty set;
  let a2 be non empty addLoopStr;
  let a3 be Function-like quasi_total Relation of [:a1,a1:],the carrier of a2;
  let a4 be Element of a1;
  let a5 be Element of the carrier of a2;
  assume a3 is_atlas_of a1,a2;
  func (A4,A5). A3 -> Element of a1 means
    a3 .(a4,it) = a5;
end;

:: MIDSP_2:def 4
theorem
for b1 being non empty set
for b2 being non empty addLoopStr
for b3 being Function-like quasi_total Relation of [:b1,b1:],the carrier of b2
for b4 being Element of b1
for b5 being Element of the carrier of b2
   st b3 is_atlas_of b1,b2
for b6 being Element of b1 holds
      b6 = (b4,b5). b3
   iff
      b3 .(b4,b6) = b5;

:: MIDSP_2:th 4
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being non empty right_complementable add-associative right_zeroed addLoopStr
for b4 being Function-like quasi_total Relation of [:b1,b1:],the carrier of b3
      st b4 is_atlas_of b1,b3
   holds b4 .(b2,b2) = 0. b3;

:: MIDSP_2:th 5
theorem
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being non empty right_complementable add-associative right_zeroed addLoopStr
for b5 being Function-like quasi_total Relation of [:b1,b1:],the carrier of b4
      st b5 is_atlas_of b1,b4 & b5 .(b2,b3) = 0. b4
   holds b2 = b3;

:: MIDSP_2:th 6
theorem
for b1 being non empty set
for b2, b3 being Element of b1
for b4 being non empty right_complementable add-associative right_zeroed addLoopStr
for b5 being Function-like quasi_total Relation of [:b1,b1:],the carrier of b4
      st b5 is_atlas_of b1,b4
   holds b5 .(b2,b3) = - (b5 .(b3,b2));

:: MIDSP_2:th 7
theorem
for b1 being non empty set
for b2, b3, b4, b5 being Element of b1
for b6 being non empty right_complementable add-associative right_zeroed addLoopStr
for b7 being Function-like quasi_total Relation 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);

:: MIDSP_2:th 8
theorem
for b1 being non empty set
for b2 being non empty right_complementable add-associative right_zeroed addLoopStr
for b3 being Function-like quasi_total Relation of [:b1,b1:],the carrier of b2
   st b3 is_atlas_of b1,b2
for b4 being Element of b1
for b5 being Element of the carrier of b2 holds
   ex b6 being Element of b1 st
      b3 .(b6,b4) = b5;

:: MIDSP_2:th 9
theorem
for b1 being non empty set
for b2, b3, b4 being Element of b1
for b5 being non empty right_complementable add-associative right_zeroed addLoopStr
for b6 being Function-like quasi_total Relation of [:b1,b1:],the carrier of b5
      st b6 is_atlas_of b1,b5 & b6 .(b2,b3) = b6 .(b4,b3)
   holds b2 = b4;

:: MIDSP_2:th 10
theorem
for b1 being non empty MidStr
for b2, b3 being Element of the carrier of b1
for b4 being non empty right_complementable add-associative right_zeroed addLoopStr
for b5 being Function-like quasi_total Relation 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;

:: MIDSP_2:th 11
theorem
for b1 being non empty MidStr
for b2, b3 being Element of the carrier of b1
for b4 being non empty right_complementable add-associative right_zeroed addLoopStr
for b5 being Function-like quasi_total Relation 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 Element of the carrier of b1 st
      b6 @ b2 = b3;

:: MIDSP_2:th 13
theorem
for b1 being non empty Abelian add-associative addLoopStr
for b2, b3, b4, b5 being Element of the carrier of b1 holds
(b2 + b3) + (b4 + b5) = (b2 + b4) + (b3 + b5);

:: MIDSP_2:th 14
theorem
for b1 being non empty Abelian add-associative addLoopStr
for b2, b3 being Element of the carrier of b1 holds
Double (b2 + b3) = (Double b2) + Double b3;

:: MIDSP_2:th 15
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed addLoopStr
for b2 being Element of the carrier of b1 holds
   Double - b2 = - Double b2;

:: MIDSP_2:th 16
theorem
for b1 being non empty MidStr
for b2 being non empty right_complementable Abelian add-associative right_zeroed addLoopStr
for b3 being Function-like quasi_total Relation 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
for b4, b5, b6, b7 being Element of the carrier of b1 holds
   b4 @ b5 = b6 @ b7
iff
   b3 .(b4,b7) = b3 .(b6,b5);

:: MIDSP_2:th 17
theorem
for b1 being non empty set
for b2 being non empty right_complementable Abelian add-associative right_zeroed addLoopStr
for b3 being Function-like quasi_total Relation of [:b1,b1:],the carrier of b2
   st b3 is_atlas_of b1,b2
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));

:: MIDSP_2:funcreg 1
registration
  let a1 be non empty MidSp-like MidStr;
  cluster vectgroup a1 -> right_complementable Abelian add-associative right_zeroed;
end;

:: MIDSP_2:th 18
theorem
for b1 being non empty MidSp-like MidStr holds
   (for b2 being set holds
          b2 is Element of the carrier of vectgroup b1
       iff
          b2 is Vector of b1) &
    0. vectgroup b1 = ID b1 &
    (for b2, b3 being Element of the carrier of vectgroup b1
    for b4, b5 being Vector of b1
          st b2 = b4 & b3 = b5
       holds b2 + b3 = b4 + b5);

:: MIDSP_2:attrnot 1 => MIDSP_2:attr 1
definition
  let a1 be non empty addLoopStr;
  attr a1 is midpoint_operator means
    (for b1 being Element of the carrier of a1 holds
        ex b2 being Element of the carrier of a1 st
           Double b2 = b1) &
     (for b1 being Element of the carrier of a1
           st Double b1 = 0. a1
        holds b1 = 0. a1);
end;

:: MIDSP_2:dfs 5
definiens
  let a1 be non empty addLoopStr;
To prove
     a1 is midpoint_operator
it is sufficient to prove
  thus (for b1 being Element of the carrier of a1 holds
        ex b2 being Element of the carrier of a1 st
           Double b2 = b1) &
     (for b1 being Element of the carrier of a1
           st Double b1 = 0. a1
        holds b1 = 0. a1);

:: MIDSP_2:def 5
theorem
for b1 being non empty addLoopStr holds
      b1 is midpoint_operator
   iff
      (for b2 being Element of the carrier of b1 holds
          ex b3 being Element of the carrier of b1 st
             Double b3 = b2) &
       (for b2 being Element of the carrier of b1
             st Double b2 = 0. b1
          holds b2 = 0. b1);

:: MIDSP_2:condreg 1
registration
  cluster non empty midpoint_operator -> Fanoian (addLoopStr);
end;

:: MIDSP_2:exreg 1
registration
  cluster non empty strict right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr;
end;

:: MIDSP_2:th 19
theorem
for b1 being non empty right_complementable Fanoian add-associative right_zeroed addLoopStr
for b2 being Element of the carrier of b1
      st b2 = - b2
   holds b2 = 0. b1;

:: MIDSP_2:th 20
theorem
for b1 being non empty right_complementable Fanoian Abelian add-associative right_zeroed addLoopStr
for b2, b3 being Element of the carrier of b1
      st Double b2 = Double b3
   holds b2 = b3;

:: MIDSP_2:funcnot 3 => MIDSP_2:func 3
definition
  let a1 be non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr;
  let a2 be Element of the carrier of a1;
  func Half A2 -> Element of the carrier of a1 means
    Double it = a2;
end;

:: MIDSP_2:def 6
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr
for b2, b3 being Element of the carrier of b1 holds
   b3 = Half b2
iff
   Double b3 = b2;

:: MIDSP_2:th 21
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr
for b2, b3 being Element of the carrier 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;

:: MIDSP_2:th 22
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr
for b2 being non empty MidStr
for b3 being Function-like quasi_total Relation 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
for b4, b5, b6, b7 being Element of the carrier of b2 holds
(b4 @ b5) @ (b6 @ b7) = (b4 @ b6) @ (b5 @ b7);

:: MIDSP_2:th 23
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr
for b2 being non empty MidStr
for b3 being Function-like quasi_total Relation 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 non empty MidSp-like MidStr;

:: MIDSP_2:funcreg 2
registration
  let a1 be non empty MidSp-like MidStr;
  cluster vectgroup a1 -> midpoint_operator;
end;

:: MIDSP_2:funcnot 4 => MIDSP_2:func 4
definition
  let a1 be non empty MidSp-like MidStr;
  let a2, a3 be Element of the carrier of a1;
  func vector(A2,A3) -> Element of the carrier of vectgroup a1 equals
    vect(a2,a3);
end;

:: MIDSP_2:def 7
theorem
for b1 being non empty MidSp-like MidStr
for b2, b3 being Element of the carrier of b1 holds
vector(b2,b3) = vect(b2,b3);

:: MIDSP_2:funcnot 5 => MIDSP_2:func 5
definition
  let a1 be non empty MidSp-like MidStr;
  func vect A1 -> Function-like quasi_total Relation of [:the carrier of a1,the carrier of a1:],the carrier of vectgroup a1 means
    for b1, b2 being Element of the carrier of a1 holds
    it .(b1,b2) = vect(b1,b2);
end;

:: MIDSP_2:def 8
theorem
for b1 being non empty MidSp-like MidStr
for b2 being Function-like quasi_total Relation of [:the carrier of b1,the carrier of b1:],the carrier of vectgroup b1 holds
      b2 = vect b1
   iff
      for b3, b4 being Element of the carrier of b1 holds
      b2 .(b3,b4) = vect(b3,b4);

:: MIDSP_2:th 24
theorem
for b1 being non empty MidSp-like MidStr holds
   vect b1 is_atlas_of the carrier of b1,vectgroup b1;

:: MIDSP_2:th 25
theorem
for b1 being non empty MidSp-like MidStr
for b2, b3, b4, b5 being Element of the carrier of b1 holds
   vect(b2,b3) = vect(b4,b5)
iff
   b2 @ b5 = b3 @ b4;

:: MIDSP_2:th 26
theorem
for b1 being non empty MidSp-like MidStr
for b2, b3, b4 being Element of the carrier of b1 holds
   b2 @ b3 = b4
iff
   vect(b2,b4) = vect(b4,b3);

:: MIDSP_2:th 27
theorem
for b1 being non empty MidSp-like MidStr holds
   b1,vectgroup b1 are_associated_wrp vect b1;

:: MIDSP_2:funcnot 6 => MIDSP_2:func 6
definition
  let a1 be non empty set;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr;
  let a3 be Function-like quasi_total Relation of [:a1,a1:],the carrier of a2;
  assume a3 is_atlas_of a1,a2;
  func @ A3 -> Function-like quasi_total Relation of [:a1,a1:],a1 means
    for b1, b2 being Element of a1 holds
    a3 .(b1,it .(b1,b2)) = a3 .(it .(b1,b2),b2);
end;

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

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

:: MIDSP_2:funcreg 3
registration
  let a1 be non empty set;
  let a2 be Function-like quasi_total Relation of [:a1,a1:],a1;
  cluster MidStr(#a1,a2#) -> non empty strict;
end;

:: MIDSP_2:funcnot 7 => MIDSP_2:func 7
definition
  let a1 be non empty set;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr;
  let a3 be Function-like quasi_total Relation of [:a1,a1:],the carrier of a2;
  func Atlas A3 -> Function-like quasi_total Relation of [:the carrier of MidStr(#a1,@ a3#),the carrier of MidStr(#a1,@ a3#):],the carrier of a2 equals
    a3;
end;

:: MIDSP_2:def 10
theorem
for b1 being non empty set
for b2 being non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr
for b3 being Function-like quasi_total Relation of [:b1,b1:],the carrier of b2 holds
   Atlas b3 = b3;

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

:: MIDSP_2:funcnot 8 => MIDSP_2:func 8
definition
  let a1 be non empty set;
  let a2 be non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr;
  let a3 be Function-like quasi_total Relation of [:a1,a1:],the carrier of a2;
  assume a3 is_atlas_of a1,a2;
  func MidSp. A3 -> non empty strict MidSp-like MidStr equals
    MidStr(#a1,@ a3#);
end;

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

:: MIDSP_2:th 33
theorem
for b1 being non empty MidStr holds
      b1 is non empty MidSp-like MidStr
   iff
      ex b2 being non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr st
         ex b3 being Function-like quasi_total Relation 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;

:: MIDSP_2:structnot 1 => MIDSP_2:struct 1
definition
  let a1 be non empty MidStr;
  struct() AtlasStr(#
    algebra -> non empty addLoopStr,
    function -> Function-like quasi_total Relation of [:the carrier of A1,the carrier of A1:],the carrier of the algebra of it
  #);
end;

:: MIDSP_2:attrnot 2 => MIDSP_2:attr 2
definition
  let a1 be non empty MidStr;
  let a2 be AtlasStr over a1;
  attr a2 is strict;
end;

:: MIDSP_2:exreg 2
registration
  let a1 be non empty MidStr;
  cluster strict AtlasStr over a1;
end;

:: MIDSP_2:aggrnot 1 => MIDSP_2:aggr 1
definition
  let a1 be non empty MidStr;
  let a2 be non empty addLoopStr;
  let a3 be Function-like quasi_total Relation of [:the carrier of a1,the carrier of a1:],the carrier of a2;
  aggr AtlasStr(#a2,a3#) -> strict AtlasStr over a1;
end;

:: MIDSP_2:selnot 1 => MIDSP_2:sel 1
definition
  let a1 be non empty MidStr;
  let a2 be AtlasStr over a1;
  sel the algebra of a2 -> non empty addLoopStr;
end;

:: MIDSP_2:selnot 2 => MIDSP_2:sel 2
definition
  let a1 be non empty MidStr;
  let a2 be AtlasStr over a1;
  sel the function of a2 -> Function-like quasi_total Relation of [:the carrier of a1,the carrier of a1:],the carrier of the algebra of a2;
end;

:: MIDSP_2:attrnot 3 => MIDSP_2:attr 3
definition
  let a1 be non empty MidStr;
  let a2 be AtlasStr over a1;
  attr a2 is ATLAS-like means
    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;

:: MIDSP_2:dfs 12
definiens
  let a1 be non empty MidStr;
  let a2 be AtlasStr over a1;
To prove
     a2 is ATLAS-like
it is sufficient to prove
  thus 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;

:: MIDSP_2:def 12
theorem
for b1 being non empty MidStr
for b2 being AtlasStr over b1 holds
      b2 is ATLAS-like(b1)
   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;

:: MIDSP_2:exreg 3
registration
  let a1 be non empty MidSp-like MidStr;
  cluster ATLAS-like AtlasStr over a1;
end;

:: MIDSP_2:modenot 1
definition
  let a1 be non empty MidSp-like MidStr;
  mode ATLAS of a1 is ATLAS-like AtlasStr over a1;
end;

:: MIDSP_2:modenot 2
definition
  let a1 be non empty MidStr;
  let a2 be AtlasStr over a1;
  mode Vector of a2 is Element of the carrier of the algebra of a2;
end;

:: MIDSP_2:funcnot 9 => MIDSP_2:func 9
definition
  let a1 be non empty MidSp-like MidStr;
  let a2 be AtlasStr over a1;
  let a3, a4 be Element of the carrier of a1;
  func A2 .(A3,A4) -> Element of the carrier of the algebra of a2 equals
    (the function of a2) .(a3,a4);
end;

:: MIDSP_2:def 13
theorem
for b1 being non empty MidSp-like MidStr
for b2 being AtlasStr over b1
for b3, b4 being Element of the carrier of b1 holds
b2 .(b3,b4) = (the function of b2) .(b3,b4);

:: MIDSP_2:funcnot 10 => MIDSP_2:func 10
definition
  let a1 be non empty MidSp-like MidStr;
  let a2 be AtlasStr over a1;
  let a3 be Element of the carrier of a1;
  let a4 be Element of the carrier of the algebra of a2;
  func (A3,A4). A2 -> Element of the carrier of a1 equals
    (a3,a4). the function of a2;
end;

:: MIDSP_2:def 14
theorem
for b1 being non empty MidSp-like MidStr
for b2 being AtlasStr over b1
for b3 being Element of the carrier of b1
for b4 being Element of the carrier of the algebra of b2 holds
   (b3,b4). b2 = (b3,b4). the function of b2;

:: MIDSP_2:funcnot 11 => MIDSP_2:func 11
definition
  let a1 be non empty MidSp-like MidStr;
  let a2 be ATLAS-like AtlasStr over a1;
  func 0. A2 -> Element of the carrier of the algebra of a2 equals
    0. the algebra of a2;
end;

:: MIDSP_2:def 15
theorem
for b1 being non empty MidSp-like MidStr
for b2 being ATLAS-like AtlasStr over b1 holds
   0. b2 = 0. the algebra of b2;

:: MIDSP_2:th 34
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr
for b2 being non empty MidStr
for b3 being Function-like quasi_total Relation of [:the carrier of b2,the carrier of b2:],the carrier of b1
for b4, b5, b6, b7 being Element of the carrier 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));

:: MIDSP_2:th 35
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed midpoint_operator addLoopStr
for b2 being non empty MidStr
for b3 being Function-like quasi_total Relation of [:the carrier of b2,the carrier of b2:],the carrier of b1
for b4, b5, b6 being Element of the carrier 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));

:: MIDSP_2:th 36
theorem
for b1 being non empty MidSp-like MidStr
for b2 being ATLAS-like AtlasStr over b1
for b3, b4, b5, b6 being Element of the carrier of b1 holds
   b3 @ b4 = b5 @ b6
iff
   b2 .(b3,b4) = (b2 .(b3,b5)) + (b2 .(b3,b6));

:: MIDSP_2:th 37
theorem
for b1 being non empty MidSp-like MidStr
for b2 being ATLAS-like AtlasStr over b1
for b3, b4, b5 being Element of the carrier of b1 holds
   b3 @ b4 = b5
iff
   b2 .(b3,b4) = Double (b2 .(b3,b5));

:: MIDSP_2:th 38
theorem
for b1 being non empty MidSp-like MidStr
for b2 being ATLAS-like AtlasStr over b1 holds
   (for b3 being Element of the carrier of b1
    for b4 being Element of the carrier of the algebra of b2 holds
       ex b5 being Element of the carrier of b1 st
          b2 .(b3,b5) = b4) &
    (for b3, b4, b5 being Element of the carrier of b1
          st b2 .(b3,b4) = b2 .(b3,b5)
       holds b4 = b5) &
    (for b3, b4, b5 being Element of the carrier of b1 holds
    (b2 .(b3,b4)) + (b2 .(b4,b5)) = b2 .(b3,b5));

:: MIDSP_2:th 39
theorem
for b1 being non empty MidSp-like MidStr
for b2 being ATLAS-like AtlasStr over b1
for b3, b4, b5, b6 being Element of the carrier of b1
for b7 being Element of the carrier of the algebra 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 Element of the carrier of b1
    for b9 being Element of the carrier of the algebra of b2 holds
       ex b10 being Element of the carrier 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);

:: MIDSP_2:th 40
theorem
for b1 being non empty MidSp-like MidStr
for b2 being ATLAS-like AtlasStr over b1
for b3 being Element of the carrier of b1 holds
   (b3,0. b2). b2 = b3;