Article QUOFIELD, MML version 4.99.1005

:: QUOFIELD:funcnot 1 => QUOFIELD:func 1
definition
  let a1 be non empty ZeroStr;
  func Q. A1 -> Element of bool [:the carrier of a1,the carrier of a1:] means
    for b1 being set holds
          b1 in it
       iff
          ex b2, b3 being Element of the carrier of a1 st
             b1 = [b2,b3] & b3 <> 0. a1;
end;

:: QUOFIELD:def 1
theorem
for b1 being non empty ZeroStr
for b2 being Element of bool [:the carrier of b1,the carrier of b1:] holds
      b2 = Q. b1
   iff
      for b3 being set holds
            b3 in b2
         iff
            ex b4, b5 being Element of the carrier of b1 st
               b3 = [b4,b5] & b5 <> 0. b1;

:: QUOFIELD:th 1
theorem
for b1 being non empty non degenerated multLoopStr_0 holds
   Q. b1 is not empty;

:: QUOFIELD:funcreg 1
registration
  let a1 be non empty non degenerated multLoopStr_0;
  cluster Q. a1 -> non empty;
end;

:: QUOFIELD:th 2
theorem
for b1 being non empty non degenerated multLoopStr_0
for b2 being Element of Q. b1 holds
   b2 `2 <> 0. b1;

:: QUOFIELD:funcnot 2 => QUOFIELD:func 2
definition
  let a1 be non empty non degenerated multLoopStr_0;
  let a2 be Element of Q. a1;
  redefine func a2 `1 -> Element of the carrier of a1;
end;

:: QUOFIELD:funcnot 3 => QUOFIELD:func 3
definition
  let a1 be non empty non degenerated multLoopStr_0;
  let a2 be Element of Q. a1;
  redefine func a2 `2 -> Element of the carrier of a1;
end;

:: QUOFIELD:funcnot 4 => QUOFIELD:func 4
definition
  let a1 be non empty non degenerated domRing-like doubleLoopStr;
  let a2, a3 be Element of Q. a1;
  func padd(A2,A3) -> Element of Q. a1 equals
    [(a2 `1 * (a3 `2)) + (a3 `1 * (a2 `2)),a2 `2 * (a3 `2)];
end;

:: QUOFIELD:def 2
theorem
for b1 being non empty non degenerated domRing-like doubleLoopStr
for b2, b3 being Element of Q. b1 holds
padd(b2,b3) = [(b2 `1 * (b3 `2)) + (b3 `1 * (b2 `2)),b2 `2 * (b3 `2)];

:: QUOFIELD:funcnot 5 => QUOFIELD:func 5
definition
  let a1 be non empty non degenerated domRing-like doubleLoopStr;
  let a2, a3 be Element of Q. a1;
  func pmult(A2,A3) -> Element of Q. a1 equals
    [a2 `1 * (a3 `1),a2 `2 * (a3 `2)];
end;

:: QUOFIELD:def 3
theorem
for b1 being non empty non degenerated domRing-like doubleLoopStr
for b2, b3 being Element of Q. b1 holds
pmult(b2,b3) = [b2 `1 * (b3 `1),b2 `2 * (b3 `2)];

:: QUOFIELD:th 4
theorem
for b1 being non empty non degenerated Abelian add-associative associative commutative distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Q. b1 holds
padd(b2,padd(b3,b4)) = padd(padd(b2,b3),b4) &
 padd(b2,b3) = padd(b3,b2);

:: QUOFIELD:th 5
theorem
for b1 being non empty non degenerated Abelian associative commutative domRing-like doubleLoopStr
for b2, b3, b4 being Element of Q. b1 holds
pmult(b2,pmult(b3,b4)) = pmult(pmult(b2,b3),b4) &
 pmult(b2,b3) = pmult(b3,b2);

:: QUOFIELD:funcnot 6 => QUOFIELD:func 6
definition
  let a1 be non empty non degenerated Abelian add-associative associative commutative distributive domRing-like doubleLoopStr;
  let a2, a3 be Element of Q. a1;
  redefine func padd(a2,a3) -> Element of Q. a1;
  commutativity;
::  for a1 being non empty non degenerated Abelian add-associative associative commutative distributive domRing-like doubleLoopStr
::  for a2, a3 being Element of Q. a1 holds
::  padd(a2,a3) = padd(a3,a2);
end;

:: QUOFIELD:funcnot 7 => QUOFIELD:func 7
definition
  let a1 be non empty non degenerated Abelian associative commutative domRing-like doubleLoopStr;
  let a2, a3 be Element of Q. a1;
  redefine func pmult(a2,a3) -> Element of Q. a1;
  commutativity;
::  for a1 being non empty non degenerated Abelian associative commutative domRing-like doubleLoopStr
::  for a2, a3 being Element of Q. a1 holds
::  pmult(a2,a3) = pmult(a3,a2);
end;

:: QUOFIELD:funcnot 8 => QUOFIELD:func 8
definition
  let a1 be non empty non degenerated multLoopStr_0;
  let a2 be Element of Q. a1;
  func QClass. A2 -> Element of bool Q. a1 means
    for b1 being Element of Q. a1 holds
          b1 in it
       iff
          b1 `1 * (a2 `2) = b1 `2 * (a2 `1);
end;

:: QUOFIELD:def 4
theorem
for b1 being non empty non degenerated multLoopStr_0
for b2 being Element of Q. b1
for b3 being Element of bool Q. b1 holds
      b3 = QClass. b2
   iff
      for b4 being Element of Q. b1 holds
            b4 in b3
         iff
            b4 `1 * (b2 `2) = b4 `2 * (b2 `1);

:: QUOFIELD:th 6
theorem
for b1 being non empty non degenerated commutative multLoopStr_0
for b2 being Element of Q. b1 holds
   b2 in QClass. b2;

:: QUOFIELD:funcreg 2
registration
  let a1 be non empty non degenerated commutative multLoopStr_0;
  let a2 be Element of Q. a1;
  cluster QClass. a2 -> non empty;
end;

:: QUOFIELD:funcnot 9 => QUOFIELD:func 9
definition
  let a1 be non empty non degenerated multLoopStr_0;
  func Quot. A1 -> Element of bool bool Q. a1 means
    for b1 being Element of bool Q. a1 holds
          b1 in it
       iff
          ex b2 being Element of Q. a1 st
             b1 = QClass. b2;
end;

:: QUOFIELD:def 5
theorem
for b1 being non empty non degenerated multLoopStr_0
for b2 being Element of bool bool Q. b1 holds
      b2 = Quot. b1
   iff
      for b3 being Element of bool Q. b1 holds
            b3 in b2
         iff
            ex b4 being Element of Q. b1 st
               b3 = QClass. b4;

:: QUOFIELD:th 7
theorem
for b1 being non empty non degenerated multLoopStr_0 holds
   Quot. b1 is not empty;

:: QUOFIELD:funcreg 3
registration
  let a1 be non empty non degenerated multLoopStr_0;
  cluster Quot. a1 -> non empty;
end;

:: QUOFIELD:th 8
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of Q. b1
      st ex b4 being Element of Quot. b1 st
           b2 in b4 & b3 in b4
   holds b2 `1 * (b3 `2) = b3 `1 * (b2 `2);

:: QUOFIELD:th 9
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of Quot. b1
      st b2 meets b3
   holds b2 = b3;

:: QUOFIELD:funcnot 10 => QUOFIELD:func 10
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  let a2, a3 be Element of Quot. a1;
  func qadd(A2,A3) -> Element of Quot. a1 means
    for b1 being Element of Q. a1 holds
          b1 in it
       iff
          ex b2, b3 being Element of Q. a1 st
             b2 in a2 &
              b3 in a3 &
              b1 `1 * (b2 `2 * (b3 `2)) = b1 `2 * ((b2 `1 * (b3 `2)) + (b3 `1 * (b2 `2)));
end;

:: QUOFIELD:def 6
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Quot. b1 holds
   b4 = qadd(b2,b3)
iff
   for b5 being Element of Q. b1 holds
         b5 in b4
      iff
         ex b6, b7 being Element of Q. b1 st
            b6 in b2 &
             b7 in b3 &
             b5 `1 * (b6 `2 * (b7 `2)) = b5 `2 * ((b6 `1 * (b7 `2)) + (b7 `1 * (b6 `2)));

:: QUOFIELD:funcnot 11 => QUOFIELD:func 11
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  let a2, a3 be Element of Quot. a1;
  func qmult(A2,A3) -> Element of Quot. a1 means
    for b1 being Element of Q. a1 holds
          b1 in it
       iff
          ex b2, b3 being Element of Q. a1 st
             b2 in a2 &
              b3 in a3 &
              b1 `1 * (b2 `2 * (b3 `2)) = b1 `2 * (b2 `1 * (b3 `1));
end;

:: QUOFIELD:def 7
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Quot. b1 holds
   b4 = qmult(b2,b3)
iff
   for b5 being Element of Q. b1 holds
         b5 in b4
      iff
         ex b6, b7 being Element of Q. b1 st
            b6 in b2 &
             b7 in b3 &
             b5 `1 * (b6 `2 * (b7 `2)) = b5 `2 * (b6 `1 * (b7 `1));

:: QUOFIELD:funcnot 12 => QUOFIELD:func 12
definition
  let a1 be non empty non degenerated multLoopStr_0;
  let a2 be Element of Q. a1;
  redefine func QClass. a2 -> Element of Quot. a1;
end;

:: QUOFIELD:th 11
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of Q. b1 holds
qadd(QClass. b2,QClass. b3) = QClass. padd(b2,b3);

:: QUOFIELD:th 12
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of Q. b1 holds
qmult(QClass. b2,QClass. b3) = QClass. pmult(b2,b3);

:: QUOFIELD:funcnot 13 => QUOFIELD:func 13
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  func q0. A1 -> Element of Quot. a1 means
    for b1 being Element of Q. a1 holds
          b1 in it
       iff
          b1 `1 = 0. a1;
end;

:: QUOFIELD:def 8
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1 holds
      b2 = q0. b1
   iff
      for b3 being Element of Q. b1 holds
            b3 in b2
         iff
            b3 `1 = 0. b1;

:: QUOFIELD:funcnot 14 => QUOFIELD:func 14
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  func q1. A1 -> Element of Quot. a1 means
    for b1 being Element of Q. a1 holds
          b1 in it
       iff
          b1 `1 = b1 `2;
end;

:: QUOFIELD:def 9
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1 holds
      b2 = q1. b1
   iff
      for b3 being Element of Q. b1 holds
            b3 in b2
         iff
            b3 `1 = b3 `2;

:: QUOFIELD:funcnot 15 => QUOFIELD:func 15
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  let a2 be Element of Quot. a1;
  func qaddinv A2 -> Element of Quot. a1 means
    for b1 being Element of Q. a1 holds
          b1 in it
       iff
          ex b2 being Element of Q. a1 st
             b2 in a2 &
              b1 `1 * (b2 `2) = b1 `2 * - (b2 `1);
end;

:: QUOFIELD:def 10
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of Quot. b1 holds
   b3 = qaddinv b2
iff
   for b4 being Element of Q. b1 holds
         b4 in b3
      iff
         ex b5 being Element of Q. b1 st
            b5 in b2 &
             b4 `1 * (b5 `2) = b4 `2 * - (b5 `1);

:: QUOFIELD:funcnot 16 => QUOFIELD:func 16
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  let a2 be Element of Quot. a1;
  assume a2 <> q0. a1;
  func qmultinv A2 -> Element of Quot. a1 means
    for b1 being Element of Q. a1 holds
          b1 in it
       iff
          ex b2 being Element of Q. a1 st
             b2 in a2 &
              b1 `1 * (b2 `1) = b1 `2 * (b2 `2);
end;

:: QUOFIELD:def 11
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1
   st b2 <> q0. b1
for b3 being Element of Quot. b1 holds
      b3 = qmultinv b2
   iff
      for b4 being Element of Q. b1 holds
            b4 in b3
         iff
            ex b5 being Element of Q. b1 st
               b5 in b2 &
                b4 `1 * (b5 `1) = b4 `2 * (b5 `2);

:: QUOFIELD:th 13
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Quot. b1 holds
qadd(b2,qadd(b3,b4)) = qadd(qadd(b2,b3),b4) &
 qadd(b2,b3) = qadd(b3,b2);

:: QUOFIELD:th 14
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1 holds
   qadd(b2,q0. b1) = b2 & qadd(q0. b1,b2) = b2;

:: QUOFIELD:th 15
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Quot. b1 holds
qmult(b2,qmult(b3,b4)) = qmult(qmult(b2,b3),b4) &
 qmult(b2,b3) = qmult(b3,b2);

:: QUOFIELD:th 16
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1 holds
   qmult(b2,q1. b1) = b2 & qmult(q1. b1,b2) = b2;

:: QUOFIELD:th 17
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Quot. b1 holds
qmult(qadd(b2,b3),b4) = qadd(qmult(b2,b4),qmult(b3,b4));

:: QUOFIELD:th 18
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Quot. b1 holds
qmult(b2,qadd(b3,b4)) = qadd(qmult(b2,b3),qmult(b2,b4));

:: QUOFIELD:th 19
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1 holds
   qadd(b2,qaddinv b2) = q0. b1 & qadd(qaddinv b2,b2) = q0. b1;

:: QUOFIELD:th 20
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1
      st b2 <> q0. b1
   holds qmult(b2,qmultinv b2) = q1. b1 & qmult(qmultinv b2,b2) = q1. b1;

:: QUOFIELD:th 21
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   q1. b1 <> q0. b1;

:: QUOFIELD:funcnot 17 => QUOFIELD:func 17
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  func quotadd A1 -> Function-like quasi_total Relation of [:Quot. a1,Quot. a1:],Quot. a1 means
    for b1, b2 being Element of Quot. a1 holds
    it .(b1,b2) = qadd(b1,b2);
end;

:: QUOFIELD:def 12
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Function-like quasi_total Relation of [:Quot. b1,Quot. b1:],Quot. b1 holds
      b2 = quotadd b1
   iff
      for b3, b4 being Element of Quot. b1 holds
      b2 .(b3,b4) = qadd(b3,b4);

:: QUOFIELD:funcnot 18 => QUOFIELD:func 18
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  func quotmult A1 -> Function-like quasi_total Relation of [:Quot. a1,Quot. a1:],Quot. a1 means
    for b1, b2 being Element of Quot. a1 holds
    it .(b1,b2) = qmult(b1,b2);
end;

:: QUOFIELD:def 13
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Function-like quasi_total Relation of [:Quot. b1,Quot. b1:],Quot. b1 holds
      b2 = quotmult b1
   iff
      for b3, b4 being Element of Quot. b1 holds
      b2 .(b3,b4) = qmult(b3,b4);

:: QUOFIELD:funcnot 19 => QUOFIELD:func 19
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  func quotaddinv A1 -> Function-like quasi_total Relation of Quot. a1,Quot. a1 means
    for b1 being Element of Quot. a1 holds
       it . b1 = qaddinv b1;
end;

:: QUOFIELD:def 14
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Function-like quasi_total Relation of Quot. b1,Quot. b1 holds
      b2 = quotaddinv b1
   iff
      for b3 being Element of Quot. b1 holds
         b2 . b3 = qaddinv b3;

:: QUOFIELD:funcnot 20 => QUOFIELD:func 20
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  func quotmultinv A1 -> Function-like quasi_total Relation of Quot. a1,Quot. a1 means
    for b1 being Element of Quot. a1 holds
       it . b1 = qmultinv b1;
end;

:: QUOFIELD:def 15
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Function-like quasi_total Relation of Quot. b1,Quot. b1 holds
      b2 = quotmultinv b1
   iff
      for b3 being Element of Quot. b1 holds
         b2 . b3 = qmultinv b3;

:: QUOFIELD:th 22
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Quot. b1 holds
(quotadd b1) .((quotadd b1) .(b2,b3),b4) = (quotadd b1) .(b2,(quotadd b1) .(b3,b4));

:: QUOFIELD:th 23
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of Quot. b1 holds
(quotadd b1) .(b2,b3) = (quotadd b1) .(b3,b2);

:: QUOFIELD:th 24
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1 holds
   (quotadd b1) .(b2,q0. b1) = b2 & (quotadd b1) .(q0. b1,b2) = b2;

:: QUOFIELD:th 25
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Quot. b1 holds
(quotmult b1) .((quotmult b1) .(b2,b3),b4) = (quotmult b1) .(b2,(quotmult b1) .(b3,b4));

:: QUOFIELD:th 26
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of Quot. b1 holds
(quotmult b1) .(b2,b3) = (quotmult b1) .(b3,b2);

:: QUOFIELD:th 27
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1 holds
   (quotmult b1) .(b2,q1. b1) = b2 & (quotmult b1) .(q1. b1,b2) = b2;

:: QUOFIELD:th 28
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Quot. b1 holds
(quotmult b1) .((quotadd b1) .(b2,b3),b4) = (quotadd b1) .((quotmult b1) .(b2,b4),(quotmult b1) .(b3,b4));

:: QUOFIELD:th 29
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of Quot. b1 holds
(quotmult b1) .(b2,(quotadd b1) .(b3,b4)) = (quotadd b1) .((quotmult b1) .(b2,b3),(quotmult b1) .(b2,b4));

:: QUOFIELD:th 30
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1 holds
   (quotadd b1) .(b2,(quotaddinv b1) . b2) = q0. b1 &
    (quotadd b1) .((quotaddinv b1) . b2,b2) = q0. b1;

:: QUOFIELD:th 31
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of Quot. b1
      st b2 <> q0. b1
   holds (quotmult b1) .(b2,(quotmultinv b1) . b2) = q1. b1 &
    (quotmult b1) .((quotmultinv b1) . b2,b2) = q1. b1;

:: QUOFIELD:funcnot 21 => QUOFIELD:func 21
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  func the_Field_of_Quotients A1 -> strict doubleLoopStr equals
    doubleLoopStr(#Quot. a1,quotadd a1,quotmult a1,q1. a1,q0. a1#);
end;

:: QUOFIELD:def 16
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   the_Field_of_Quotients b1 = doubleLoopStr(#Quot. b1,quotadd b1,quotmult b1,q1. b1,q0. b1#);

:: QUOFIELD:funcreg 4
registration
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  cluster the_Field_of_Quotients a1 -> non empty strict;
end;

:: QUOFIELD:th 32
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   the carrier of the_Field_of_Quotients b1 = Quot. b1 & the addF of the_Field_of_Quotients b1 = quotadd b1 & the multF of the_Field_of_Quotients b1 = quotmult b1 & 0. the_Field_of_Quotients b1 = q0. b1 & 1. the_Field_of_Quotients b1 = q1. b1;

:: QUOFIELD:th 33
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of the carrier of the_Field_of_Quotients b1 holds
(quotadd b1) .(b2,b3) is Element of the carrier of the_Field_of_Quotients b1;

:: QUOFIELD:th 34
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of the carrier of the_Field_of_Quotients b1 holds
   (quotaddinv b1) . b2 is Element of the carrier of the_Field_of_Quotients b1;

:: QUOFIELD:th 35
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of the carrier of the_Field_of_Quotients b1 holds
(quotmult b1) .(b2,b3) is Element of the carrier of the_Field_of_Quotients b1;

:: QUOFIELD:th 36
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of the carrier of the_Field_of_Quotients b1 holds
   (quotmultinv b1) . b2 is Element of the carrier of the_Field_of_Quotients b1;

:: QUOFIELD:th 37
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of the carrier of the_Field_of_Quotients b1 holds
b2 + b3 = (quotadd b1) .(b2,b3);

:: QUOFIELD:funcreg 5
registration
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  cluster the_Field_of_Quotients a1 -> right_complementable strict add-associative right_zeroed;
end;

:: QUOFIELD:th 38
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of the carrier of the_Field_of_Quotients b1 holds
   - b2 = (quotaddinv b1) . b2;

:: QUOFIELD:th 39
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of the carrier of the_Field_of_Quotients b1 holds
b2 * b3 = (quotmult b1) .(b2,b3);

:: QUOFIELD:funcreg 6
registration
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  cluster the_Field_of_Quotients a1 -> strict commutative;
end;

:: QUOFIELD:funcreg 7
registration
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  cluster the_Field_of_Quotients a1 -> strict well-unital;
end;

:: QUOFIELD:th 40
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   1. the_Field_of_Quotients b1 = q1. b1 & 0. the_Field_of_Quotients b1 = q0. b1;

:: QUOFIELD:th 41
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of the carrier of the_Field_of_Quotients b1 holds
(b2 + b3) + b4 = b2 + (b3 + b4);

:: QUOFIELD:th 42
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of the carrier of the_Field_of_Quotients b1 holds
b2 + b3 = b3 + b2;

:: QUOFIELD:th 43
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of the carrier of the_Field_of_Quotients b1 holds
   b2 + 0. the_Field_of_Quotients b1 = b2;

:: QUOFIELD:th 45
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of the carrier of the_Field_of_Quotients b1 holds
   (1. the_Field_of_Quotients b1) * b2 = b2;

:: QUOFIELD:th 46
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being Element of the carrier of the_Field_of_Quotients b1 holds
b2 * b3 = b3 * b2;

:: QUOFIELD:th 47
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3, b4 being Element of the carrier of the_Field_of_Quotients b1 holds
(b2 * b3) * b4 = b2 * (b3 * b4);

:: QUOFIELD:th 48
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of the carrier of the_Field_of_Quotients b1
      st b2 <> 0. the_Field_of_Quotients b1
   holds ex b3 being Element of the carrier of the_Field_of_Quotients b1 st
      b2 * b3 = 1. the_Field_of_Quotients b1;

:: QUOFIELD:th 49
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   the_Field_of_Quotients b1 is non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed unital associative distributive doubleLoopStr;

:: QUOFIELD:funcreg 8
registration
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  cluster the_Field_of_Quotients a1 -> non degenerated almost_left_invertible strict Abelian associative distributive;
end;

:: QUOFIELD:th 50
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Element of the carrier of the_Field_of_Quotients b1
   st b2 <> 0. the_Field_of_Quotients b1
for b3 being Element of the carrier of b1
   st b3 <> 0. b1
for b4 being Element of Q. b1
   st b2 = QClass. b4 & b4 = [b3,1. b1]
for b5 being Element of Q. b1
      st b5 = [1. b1,b3]
   holds b2 " = QClass. b5;

:: QUOFIELD:condreg 1
registration
  cluster non empty right_complementable almost_left_invertible add-associative right_zeroed associative commutative well-unital distributive -> right_unital domRing-like (doubleLoopStr);
end;

:: QUOFIELD:exreg 1
registration
  cluster non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative distributive left_unital doubleLoopStr;
end;

:: QUOFIELD:funcnot 22 => QUOFIELD:func 22
definition
  let a1 be non empty almost_left_invertible associative commutative well-unital distributive doubleLoopStr;
  let a2, a3 be Element of the carrier of a1;
  func A2 / A3 -> Element of the carrier of a1 equals
    a2 * (a3 ");
end;

:: QUOFIELD:def 17
theorem
for b1 being non empty almost_left_invertible associative commutative well-unital distributive doubleLoopStr
for b2, b3 being Element of the carrier of b1 holds
b2 / b3 = b2 * (b3 ");

:: QUOFIELD:th 51
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
for b2, b3, b4, b5 being Element of the carrier of b1
      st b3 <> 0. b1 & b5 <> 0. b1
   holds (b2 / b3) * (b4 / b5) = (b2 * b4) / (b3 * b5);

:: QUOFIELD:th 52
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
for b2, b3, b4, b5 being Element of the carrier of b1
      st b3 <> 0. b1 & b5 <> 0. b1
   holds (b2 / b3) + (b4 / b5) = ((b2 * b5) + (b4 * b3)) / (b3 * b5);

:: QUOFIELD:attrnot 1 => QUOFIELD:attr 1
definition
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  attr a3 is RingHomomorphism means
    a3 is additive(a1, a2) & a3 is multiplicative(a1, a2) & a3 is unity-preserving(a1, a2);
end;

:: QUOFIELD:dfs 18
definiens
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
     a3 is RingHomomorphism
it is sufficient to prove
  thus a3 is additive(a1, a2) & a3 is multiplicative(a1, a2) & a3 is unity-preserving(a1, a2);

:: QUOFIELD:def 21
theorem
for b1, b2 being non empty doubleLoopStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
      b3 is RingHomomorphism(b1, b2)
   iff
      b3 is additive(b1, b2) & b3 is multiplicative(b1, b2) & b3 is unity-preserving(b1, b2);

:: QUOFIELD:condreg 2
registration
  let a1, a2 be non empty doubleLoopStr;
  cluster Function-like quasi_total RingHomomorphism -> additive unity-preserving multiplicative (Relation of the carrier of a1,the carrier of a2);
end;

:: QUOFIELD:condreg 3
registration
  let a1, a2 be non empty doubleLoopStr;
  cluster Function-like quasi_total additive unity-preserving multiplicative -> RingHomomorphism (Relation of the carrier of a1,the carrier of a2);
end;

:: QUOFIELD:attrnot 2 => QUOFIELD:attr 2
definition
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  attr a3 is RingEpimorphism means
    a3 is RingHomomorphism(a1, a2) & rng a3 = the carrier of a2;
end;

:: QUOFIELD:dfs 19
definiens
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
     a3 is RingEpimorphism
it is sufficient to prove
  thus a3 is RingHomomorphism(a1, a2) & rng a3 = the carrier of a2;

:: QUOFIELD:def 22
theorem
for b1, b2 being non empty doubleLoopStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
      b3 is RingEpimorphism(b1, b2)
   iff
      b3 is RingHomomorphism(b1, b2) & rng b3 = the carrier of b2;

:: QUOFIELD:attrnot 3 => QUOFIELD:attr 3
definition
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  attr a3 is RingMonomorphism means
    a3 is RingHomomorphism(a1, a2) & a3 is one-to-one;
end;

:: QUOFIELD:dfs 20
definiens
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
     a3 is RingMonomorphism
it is sufficient to prove
  thus a3 is RingHomomorphism(a1, a2) & a3 is one-to-one;

:: QUOFIELD:def 23
theorem
for b1, b2 being non empty doubleLoopStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
      b3 is RingMonomorphism(b1, b2)
   iff
      b3 is RingHomomorphism(b1, b2) & b3 is one-to-one;

:: QUOFIELD:attrnot 4 => QUOFIELD:attr 3
notation
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  synonym embedding for RingMonomorphism;
end;

:: QUOFIELD:attrnot 5 => QUOFIELD:attr 4
definition
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  attr a3 is RingIsomorphism means
    a3 is RingMonomorphism(a1, a2) & a3 is RingEpimorphism(a1, a2);
end;

:: QUOFIELD:dfs 21
definiens
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
     a3 is RingIsomorphism
it is sufficient to prove
  thus a3 is RingMonomorphism(a1, a2) & a3 is RingEpimorphism(a1, a2);

:: QUOFIELD:def 24
theorem
for b1, b2 being non empty doubleLoopStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
      b3 is RingIsomorphism(b1, b2)
   iff
      b3 is RingMonomorphism(b1, b2) & b3 is RingEpimorphism(b1, b2);

:: QUOFIELD:condreg 4
registration
  let a1, a2 be non empty doubleLoopStr;
  cluster Function-like quasi_total RingIsomorphism -> RingEpimorphism RingMonomorphism (Relation of the carrier of a1,the carrier of a2);
end;

:: QUOFIELD:condreg 5
registration
  let a1, a2 be non empty doubleLoopStr;
  cluster Function-like quasi_total RingEpimorphism RingMonomorphism -> RingIsomorphism (Relation of the carrier of a1,the carrier of a2);
end;

:: QUOFIELD:th 53
theorem
for b1, b2 being non empty right_complementable Abelian add-associative right_zeroed associative well-unital distributive doubleLoopStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
      st b3 is RingHomomorphism(b1, b2)
   holds b3 . 0. b1 = 0. b2;

:: QUOFIELD:th 54
theorem
for b1, b2 being non empty right_complementable Abelian add-associative right_zeroed associative well-unital distributive doubleLoopStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
   st b3 is RingMonomorphism(b1, b2)
for b4 being Element of the carrier of b1 holds
      b3 . b4 = 0. b2
   iff
      b4 = 0. b1;

:: QUOFIELD:th 55
theorem
for b1, b2 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
   st b3 is RingHomomorphism(b1, b2)
for b4 being Element of the carrier of b1
      st b4 <> 0. b1
   holds b3 . (b4 ") = (b3 . b4) ";

:: QUOFIELD:th 56
theorem
for b1, b2 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
   st b3 is RingHomomorphism(b1, b2)
for b4, b5 being Element of the carrier of b1
      st b5 <> 0. b1
   holds b3 . (b4 * (b5 ")) = (b3 . b4) * ((b3 . b5) ");

:: QUOFIELD:th 57
theorem
for b1, b2, b3 being non empty right_complementable Abelian add-associative right_zeroed associative well-unital distributive doubleLoopStr
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
   st b4 is RingHomomorphism(b1, b2)
for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b3
      st b5 is RingHomomorphism(b2, b3)
   holds b5 * b4 is RingHomomorphism(b1, b3);

:: QUOFIELD:th 58
theorem
for b1 being non empty doubleLoopStr holds
   id b1 is RingHomomorphism(b1, b1);

:: QUOFIELD:funcreg 9
registration
  let a1 be non empty doubleLoopStr;
  cluster id a1 -> Function-like quasi_total RingHomomorphism;
end;

:: QUOFIELD:prednot 1 => QUOFIELD:pred 1
definition
  let a1, a2 be non empty doubleLoopStr;
  pred A1 is_embedded_in A2 means
    ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       b1 is RingMonomorphism(a1, a2);
end;

:: QUOFIELD:dfs 22
definiens
  let a1, a2 be non empty doubleLoopStr;
To prove
     a1 is_embedded_in a2
it is sufficient to prove
  thus ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       b1 is RingMonomorphism(a1, a2);

:: QUOFIELD:def 25
theorem
for b1, b2 being non empty doubleLoopStr holds
   b1 is_embedded_in b2
iff
   ex b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 st
      b3 is RingMonomorphism(b1, b2);

:: QUOFIELD:prednot 2 => QUOFIELD:pred 2
definition
  let a1, a2 be non empty doubleLoopStr;
  pred A1 is_ringisomorph_to A2 means
    ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       b1 is RingIsomorphism(a1, a2);
  symmetry;
::  for a1, a2 being non empty doubleLoopStr
::        st a1 is_ringisomorph_to a2
::     holds a2 is_ringisomorph_to a1;
end;

:: QUOFIELD:dfs 23
definiens
  let a1, a2 be non empty doubleLoopStr;
To prove
     a1 is_ringisomorph_to a2
it is sufficient to prove
  thus ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
       b1 is RingIsomorphism(a1, a2);

:: QUOFIELD:def 26
theorem
for b1, b2 being non empty doubleLoopStr holds
   b1 is_ringisomorph_to b2
iff
   ex b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 st
      b3 is RingIsomorphism(b1, b2);

:: QUOFIELD:funcnot 23 => QUOFIELD:func 23
definition
  let a1 be non empty ZeroStr;
  let a2, a3 be Element of the carrier of a1;
  assume a3 <> 0. a1;
  func quotient(A2,A3) -> Element of Q. a1 equals
    [a2,a3];
end;

:: QUOFIELD:def 27
theorem
for b1 being non empty ZeroStr
for b2, b3 being Element of the carrier of b1
      st b3 <> 0. b1
   holds quotient(b2,b3) = [b2,b3];

:: QUOFIELD:funcnot 24 => QUOFIELD:func 24
definition
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  func canHom A1 -> Function-like quasi_total Relation of the carrier of a1,the carrier of the_Field_of_Quotients a1 means
    for b1 being Element of the carrier of a1 holds
       it . b1 = QClass. quotient(b1,1. a1);
end;

:: QUOFIELD:def 28
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of the_Field_of_Quotients b1 holds
      b2 = canHom b1
   iff
      for b3 being Element of the carrier of b1 holds
         b2 . b3 = QClass. quotient(b3,1. b1);

:: QUOFIELD:th 59
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   canHom b1 is RingHomomorphism(b1, the_Field_of_Quotients b1);

:: QUOFIELD:th 60
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   canHom b1 is RingMonomorphism(b1, the_Field_of_Quotients b1);

:: QUOFIELD:th 61
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   b1 is_embedded_in the_Field_of_Quotients b1;

:: QUOFIELD:th 62
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   b1 is_ringisomorph_to the_Field_of_Quotients b1;

:: QUOFIELD:funcreg 10
registration
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr;
  cluster the_Field_of_Quotients a1 -> strict right-distributive right_unital domRing-like;
end;

:: QUOFIELD:th 63
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   the_Field_of_Quotients the_Field_of_Quotients b1 is_ringisomorph_to the_Field_of_Quotients b1;

:: QUOFIELD:prednot 3 => QUOFIELD:pred 3
definition
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
  pred A1 has_Field_of_Quotients_Pair A2,A3 means
    a3 is RingMonomorphism(a1, a2) &
     (for b1 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
     for b2 being Function-like quasi_total Relation of the carrier of a1,the carrier of b1
           st b2 is RingMonomorphism(a1, b1)
        holds ex b3 being Function-like quasi_total Relation of the carrier of a2,the carrier of b1 st
           b3 is RingHomomorphism(a2, b1) &
            b3 * a3 = b2 &
            (for b4 being Function-like quasi_total Relation of the carrier of a2,the carrier of b1
                  st b4 is RingHomomorphism(a2, b1) & b4 * a3 = b2
               holds b4 = b3));
end;

:: QUOFIELD:dfs 26
definiens
  let a1, a2 be non empty doubleLoopStr;
  let a3 be Function-like quasi_total Relation of the carrier of a1,the carrier of a2;
To prove
     a1 has_Field_of_Quotients_Pair a2,a3
it is sufficient to prove
  thus a3 is RingMonomorphism(a1, a2) &
     (for b1 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
     for b2 being Function-like quasi_total Relation of the carrier of a1,the carrier of b1
           st b2 is RingMonomorphism(a1, b1)
        holds ex b3 being Function-like quasi_total Relation of the carrier of a2,the carrier of b1 st
           b3 is RingHomomorphism(a2, b1) &
            b3 * a3 = b2 &
            (for b4 being Function-like quasi_total Relation of the carrier of a2,the carrier of b1
                  st b4 is RingHomomorphism(a2, b1) & b4 * a3 = b2
               holds b4 = b3));

:: QUOFIELD:def 29
theorem
for b1, b2 being non empty doubleLoopStr
for b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 holds
      b1 has_Field_of_Quotients_Pair b2,b3
   iff
      b3 is RingMonomorphism(b1, b2) &
       (for b4 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
       for b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b4
             st b5 is RingMonomorphism(b1, b4)
          holds ex b6 being Function-like quasi_total Relation of the carrier of b2,the carrier of b4 st
             b6 is RingHomomorphism(b2, b4) &
              b6 * b3 = b5 &
              (for b7 being Function-like quasi_total Relation of the carrier of b2,the carrier of b4
                    st b7 is RingHomomorphism(b2, b4) & b7 * b3 = b5
                 holds b7 = b6));

:: QUOFIELD:th 64
theorem
for b1 being non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr holds
   ex b2 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr st
      ex b3 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 st
         b1 has_Field_of_Quotients_Pair b2,b3;

:: QUOFIELD:th 65
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive domRing-like doubleLoopStr
for b2, b3 being non empty non degenerated right_complementable almost_left_invertible Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b5 being Function-like quasi_total Relation of the carrier of b1,the carrier of b3
      st b1 has_Field_of_Quotients_Pair b2,b4 & b1 has_Field_of_Quotients_Pair b3,b5
   holds b2 is_ringisomorph_to b3;