reserve L for non empty doubleLoopStr;
reserve a,b,c,x,y,z for Element of L;
reserve G for left-distributive doubleLoop,
  a,b,x,y for Element of G;
reserve a,b,c,x,y,z for Element of L;

theorem
  L is _Field iff (for a holds a + 0.L = a) & (for a ex x st a+x = 0.L)
& (for a,b,c holds (a+b)+c = a+(b+c)) & (for a,b holds a+b = b+a) & 0.L <> 1.L
  & (for a holds a * 1.L = a) & (for a st a<>0.L ex x st a*x = 1.L) & (for a
holds a*0.L = 0.L) & (for a,b,c holds (a*b)*c = a*(b*c)) & (for a,b,c holds a*(
  b+c) = a*b + a*c) & for a,b holds a*b = b*a
proof
  thus L is _Field implies (for a holds a + 0.L = a) & (for a ex x st a+x = 0.
  L) & (for a,b,c holds (a+b)+c = a+(b+c)) & (for a,b holds a+b = b+a) & 0.L <>
1.L & (for a holds a * 1.L = a) & (for a st a<>0.L ex x st a*x = 1.L) & (for a
holds a*0.L = 0.L) & (for a,b,c holds (a*b)*c = a*(b*c)) & (for a,b,c holds a*(
  b+c) = a*b + a*c) & for a,b holds a*b = b*a by Th11,GROUP_1:def 12;
  assume that
A1: ( ( for a holds a + 0.L = a)& for a ex x st a+x = 0.L )&( ( for a,b,
c holds ( a +b)+c = a+(b+c))& for a,b holds a+b = b+a ) &( ( 0.L <> 1.L & for a
  holds a * 1.L = a )& for a st a<>0.L ex x st a*x = 1.L ) and
A2: for a holds a*0.L = 0.L and
A3: for a,b,c holds (a*b)*c = a*(b*c) and
A4: for a,b,c holds a*(b+c) = a*b + a*c and
A5: for a,b holds a*b = b*a;
A6: for a holds 0.L*a = 0.L
  proof
    let a;
    thus 0.L*a = a*0.L by A5
      .= 0.L by A2;
  end;
  for a,b,c holds (b+c)*a = b*a + c*a
  proof
    let a,b,c;
    thus (b+c)*a = a*(b+c) by A5
      .= a*b + a*c by A4
      .= b*a + a*c by A5
      .= b*a + c*a by A5;
  end;
  hence thesis by A1,A2,A3,A4,A5,A6,Th11,GROUP_1:def 12;
end;
