Article TDGROUP, MML version 4.99.1005

:: TDGROUP:th 2
theorem
for b1 being Element of the carrier of G_Real holds
   ex b2 being Element of the carrier of G_Real st
      b2 + b2 = b1;

:: TDGROUP:th 3
theorem
for b1 being Element of the carrier of G_Real
      st b1 + b1 = 0. G_Real
   holds b1 = 0. G_Real;

:: TDGROUP:attrnot 1 => TDGROUP:attr 1
definition
  let a1 be non empty addLoopStr;
  attr a1 is Two_Divisible means
    for b1 being Element of the carrier of a1 holds
       ex b2 being Element of the carrier of a1 st
          b2 + b2 = b1;
end;

:: TDGROUP:dfs 1
definiens
  let a1 be non empty addLoopStr;
To prove
     a1 is Two_Divisible
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
          b2 + b2 = b1;

:: TDGROUP:def 1
theorem
for b1 being non empty addLoopStr holds
      b1 is Two_Divisible
   iff
      for b2 being Element of the carrier of b1 holds
         ex b3 being Element of the carrier of b1 st
            b3 + b3 = b2;

:: TDGROUP:funcreg 1
registration
  cluster G_Real -> strict Fanoian Two_Divisible;
end;

:: TDGROUP:exreg 1
registration
  cluster non empty strict right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr;
end;

:: TDGROUP:modenot 1
definition
  mode Two_Divisible_Group is non empty right_complementable Abelian add-associative right_zeroed Two_Divisible addLoopStr;
end;

:: TDGROUP:modenot 2
definition
  mode Uniquely_Two_Divisible_Group is non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr;
end;

:: TDGROUP:th 7
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed addLoopStr holds
      b1 is non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
   iff
      (for b2 being Element of the carrier of b1 holds
          ex b3 being Element of the carrier of b1 st
             b3 + b3 = b2) &
       (for b2 being Element of the carrier of b1
             st b2 + b2 = 0. b1
          holds b2 = 0. b1);

:: TDGROUP:funcnot 1 => ALGSTR_0:func 1
notation
  let a1 be non empty addLoopStr;
  let a2, a3 be Element of the carrier of a1;
  synonym a2 # a3 for a2 + a3;
end;

:: TDGROUP:funcnot 2 => TDGROUP:func 1
definition
  let a1 be non empty addLoopStr;
  func CONGRD A1 -> Relation of [:the carrier of a1,the carrier of a1:],[:the carrier of a1,the carrier of a1:] means
    for b1, b2, b3, b4 being Element of the carrier of a1 holds
       [[b1,b2],[b3,b4]] in it
    iff
       b1 + b4 = b2 + b3;
end;

:: TDGROUP:def 4
theorem
for b1 being non empty addLoopStr
for b2 being Relation of [:the carrier of b1,the carrier of b1:],[:the carrier of b1,the carrier of b1:] holds
      b2 = CONGRD b1
   iff
      for b3, b4, b5, b6 being Element of the carrier of b1 holds
         [[b3,b4],[b5,b6]] in b2
      iff
         b3 + b6 = b4 + b5;

:: TDGROUP:funcnot 3 => TDGROUP:func 2
definition
  let a1 be non empty addLoopStr;
  func AV A1 -> strict AffinStruct equals
    AffinStruct(#the carrier of a1,CONGRD a1#);
end;

:: TDGROUP:def 5
theorem
for b1 being non empty addLoopStr holds
   AV b1 = AffinStruct(#the carrier of b1,CONGRD b1#);

:: TDGROUP:funcreg 2
registration
  let a1 be non empty addLoopStr;
  cluster AV a1 -> non empty strict;
end;

:: TDGROUP:th 9
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr holds
   the carrier of AV b1 = the carrier of b1 & the CONGR of AV b1 = CONGRD b1;

:: TDGROUP:prednot 1 => TDGROUP:pred 1
definition
  let a1 be non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr;
  let a2, a3, a4, a5 be Element of the carrier of a1;
  pred A2,A3 ==> A4,A5 means
    [[a2,a3],[a4,a5]] in the CONGR of AV a1;
end;

:: TDGROUP:dfs 4
definiens
  let a1 be non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr;
  let a2, a3, a4, a5 be Element of the carrier of a1;
To prove
     a2,a3 ==> a4,a5
it is sufficient to prove
  thus [[a2,a3],[a4,a5]] in the CONGR of AV a1;

:: TDGROUP:def 6
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
for b2, b3, b4, b5 being Element of the carrier of b1 holds
   b2,b3 ==> b4,b5
iff
   [[b2,b3],[b4,b5]] in the CONGR of AV b1;

:: TDGROUP:th 10
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
for b2, b3, b4, b5 being Element of the carrier of b1 holds
   b2,b3 ==> b4,b5
iff
   b2 + b5 = b3 + b4;

:: TDGROUP:th 11
theorem
ex b1, b2 being Element of the carrier of G_Real st
   b1 <> b2;

:: TDGROUP:th 12
theorem
ex b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr st
   ex b2, b3 being Element of the carrier of b1 st
      b2 <> b3;

:: TDGROUP:th 13
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
for b2, b3, b4 being Element of the carrier of b1
      st b2,b3 ==> b4,b4
   holds b2 = b3;

:: TDGROUP:th 14
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
for b2, b3, b4, b5, b6, b7 being Element of the carrier of b1
      st b2,b3 ==> b4,b5 & b6,b7 ==> b4,b5
   holds b2,b3 ==> b6,b7;

:: TDGROUP:th 15
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
for b2, b3, b4 being Element of the carrier of b1 holds
ex b5 being Element of the carrier of b1 st
   b2,b3 ==> b4,b5;

:: TDGROUP:th 16
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
for b2, b3, b4, b5, b6, b7 being Element of the carrier of b1
      st b2,b3 ==> b4,b5 & b2,b6 ==> b4,b7
   holds b3,b6 ==> b5,b7;

:: TDGROUP:th 17
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
for b2, b3 being Element of the carrier of b1 holds
ex b4 being Element of the carrier of b1 st
   b2,b4 ==> b4,b3;

:: TDGROUP:th 18
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
for b2, b3, b4, b5 being Element of the carrier of b1
      st b2,b3 ==> b3,b4 & b2,b5 ==> b5,b4
   holds b3 = b5;

:: TDGROUP:th 19
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
for b2, b3, b4, b5 being Element of the carrier of b1
      st b2,b3 ==> b4,b5
   holds b2,b4 ==> b3,b5;

:: TDGROUP:th 20
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
      st ex b2, b3 being Element of the carrier of b1 st
           b2 <> b3
   holds (ex b2, b3 being Element of the carrier of AV b1 st
       b2 <> b3) &
    (for b2, b3, b4 being Element of the carrier of AV b1
          st b2,b3 // b4,b4
       holds b2 = b3) &
    (for b2, b3, b4, b5, b6, b7 being Element of the carrier of AV b1
          st b2,b3 // b6,b7 & b4,b5 // b6,b7
       holds b2,b3 // b4,b5) &
    (for b2, b3, b4 being Element of the carrier of AV b1 holds
    ex b5 being Element of the carrier of AV b1 st
       b2,b3 // b4,b5) &
    (for b2, b3, b4, b5, b6, b7 being Element of the carrier of AV b1
          st b2,b3 // b5,b6 & b2,b4 // b5,b7
       holds b3,b4 // b6,b7) &
    (for b2, b3 being Element of the carrier of AV b1 holds
    ex b4 being Element of the carrier of AV b1 st
       b2,b4 // b4,b3) &
    (for b2, b3, b4, b5 being Element of the carrier of AV b1
          st b2,b3 // b3,b4 & b2,b5 // b5,b4
       holds b3 = b5) &
    (for b2, b3, b4, b5 being Element of the carrier of AV b1
          st b2,b3 // b4,b5
       holds b2,b4 // b3,b5);

:: TDGROUP:attrnot 2 => TDGROUP:attr 2
definition
  let a1 be non empty AffinStruct;
  attr a1 is AffVect-like means
    (for b1, b2, b3 being Element of the carrier of a1
           st b1,b2 // b3,b3
        holds b1 = b2) &
     (for b1, b2, b3, b4, b5, b6 being Element of the carrier of a1
           st b1,b2 // b5,b6 & b3,b4 // b5,b6
        holds b1,b2 // b3,b4) &
     (for b1, b2, b3 being Element of the carrier of a1 holds
     ex b4 being Element of the carrier of a1 st
        b1,b2 // b3,b4) &
     (for b1, b2, b3, b4, b5, b6 being Element of the carrier of a1
           st b1,b2 // b4,b5 & b1,b3 // b4,b6
        holds b2,b3 // b5,b6) &
     (for b1, b2 being Element of the carrier of a1 holds
     ex b3 being Element of the carrier of a1 st
        b1,b3 // b3,b2) &
     (for b1, b2, b3, b4 being Element of the carrier of a1
           st b1,b2 // b2,b3 & b1,b4 // b4,b3
        holds b2 = b4) &
     (for b1, b2, b3, b4 being Element of the carrier of a1
           st b1,b2 // b3,b4
        holds b1,b3 // b2,b4);
end;

:: TDGROUP:dfs 5
definiens
  let a1 be non empty AffinStruct;
To prove
     a1 is AffVect-like
it is sufficient to prove
  thus (for b1, b2, b3 being Element of the carrier of a1
           st b1,b2 // b3,b3
        holds b1 = b2) &
     (for b1, b2, b3, b4, b5, b6 being Element of the carrier of a1
           st b1,b2 // b5,b6 & b3,b4 // b5,b6
        holds b1,b2 // b3,b4) &
     (for b1, b2, b3 being Element of the carrier of a1 holds
     ex b4 being Element of the carrier of a1 st
        b1,b2 // b3,b4) &
     (for b1, b2, b3, b4, b5, b6 being Element of the carrier of a1
           st b1,b2 // b4,b5 & b1,b3 // b4,b6
        holds b2,b3 // b5,b6) &
     (for b1, b2 being Element of the carrier of a1 holds
     ex b3 being Element of the carrier of a1 st
        b1,b3 // b3,b2) &
     (for b1, b2, b3, b4 being Element of the carrier of a1
           st b1,b2 // b2,b3 & b1,b4 // b4,b3
        holds b2 = b4) &
     (for b1, b2, b3, b4 being Element of the carrier of a1
           st b1,b2 // b3,b4
        holds b1,b3 // b2,b4);

:: TDGROUP:def 8
theorem
for b1 being non empty AffinStruct holds
      b1 is AffVect-like
   iff
      (for b2, b3, b4 being Element of the carrier of b1
             st b2,b3 // b4,b4
          holds b2 = b3) &
       (for b2, b3, b4, b5, b6, b7 being Element of the carrier of b1
             st b2,b3 // b6,b7 & b4,b5 // b6,b7
          holds b2,b3 // b4,b5) &
       (for b2, b3, b4 being Element of the carrier of b1 holds
       ex b5 being Element of the carrier of b1 st
          b2,b3 // b4,b5) &
       (for b2, b3, b4, b5, b6, b7 being Element of the carrier of b1
             st b2,b3 // b5,b6 & b2,b4 // b5,b7
          holds b3,b4 // b6,b7) &
       (for b2, b3 being Element of the carrier of b1 holds
       ex b4 being Element of the carrier of b1 st
          b2,b4 // b4,b3) &
       (for b2, b3, b4, b5 being Element of the carrier of b1
             st b2,b3 // b3,b4 & b2,b5 // b5,b4
          holds b3 = b5) &
       (for b2, b3, b4, b5 being Element of the carrier of b1
             st b2,b3 // b4,b5
          holds b2,b4 // b3,b5);

:: TDGROUP:exreg 2
registration
  cluster non empty non trivial strict AffVect-like AffinStruct;
end;

:: TDGROUP:modenot 3
definition
  mode AffVect is non empty non trivial AffVect-like AffinStruct;
end;

:: TDGROUP:th 21
theorem
for b1 being non empty AffinStruct holds
      (ex b2, b3 being Element of the carrier of b1 st
          b2 <> b3) &
       (for b2, b3, b4 being Element of the carrier of b1
             st b2,b3 // b4,b4
          holds b2 = b3) &
       (for b2, b3, b4, b5, b6, b7 being Element of the carrier of b1
             st b2,b3 // b6,b7 & b4,b5 // b6,b7
          holds b2,b3 // b4,b5) &
       (for b2, b3, b4 being Element of the carrier of b1 holds
       ex b5 being Element of the carrier of b1 st
          b2,b3 // b4,b5) &
       (for b2, b3, b4, b5, b6, b7 being Element of the carrier of b1
             st b2,b3 // b5,b6 & b2,b4 // b5,b7
          holds b3,b4 // b6,b7) &
       (for b2, b3 being Element of the carrier of b1 holds
       ex b4 being Element of the carrier of b1 st
          b2,b4 // b4,b3) &
       (for b2, b3, b4, b5 being Element of the carrier of b1
             st b2,b3 // b3,b4 & b2,b5 // b5,b4
          holds b3 = b5) &
       (for b2, b3, b4, b5 being Element of the carrier of b1
             st b2,b3 // b4,b5
          holds b2,b4 // b3,b5)
   iff
      b1 is non empty non trivial AffVect-like AffinStruct;

:: TDGROUP:th 22
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed Fanoian Two_Divisible addLoopStr
      st ex b2, b3 being Element of the carrier of b1 st
           b2 <> b3
   holds AV b1 is non empty non trivial AffVect-like AffinStruct;