begin
scheme  
NBinOpDefuniq{ 
F1(  
Nat,  
Nat) 
->    set  } :
 for 
o1, 
o2 being   
BinOp of 
NAT  st (  for 
a, 
b being   
Nat holds  
o1 . (
a,
b) 
= F1(
a,
b) ) & (  for 
a, 
b being   
Nat holds  
o2 . (
a,
b) 
= F1(
a,
b) ) holds 
o1 = o2
  
 
definition
 
existence 
 ex b1 being   UnOp of COMPLEX st 
 for c being   complex   number  holds  b1 . c =  - c
 from BINOP_2:sch 18();
uniqueness 
 for b1, b2 being   UnOp of COMPLEX  st (  for c being   complex   number  holds  b1 . c =  - c ) & (  for c being   complex   number  holds  b2 . c =  - c ) holds 
b1 = b2
 from BINOP_2:sch 3();
 
existence 
 ex b1 being   UnOp of COMPLEX st 
 for c being   complex   number  holds  b1 . c = c " 
 from BINOP_2:sch 18();
uniqueness 
 for b1, b2 being   UnOp of COMPLEX  st (  for c being   complex   number  holds  b1 . c = c "  ) & (  for c being   complex   number  holds  b2 . c = c "  ) holds 
b1 = b2
 from BINOP_2:sch 3();
 
existence 
 ex b1 being   BinOp of COMPLEX st 
 for c1, c2 being   complex   number  holds  b1 . (c1,c2) = c1 + c2
 from BINOP_2:sch 13();
uniqueness 
 for b1, b2 being   BinOp of COMPLEX  st (  for c1, c2 being   complex   number  holds  b1 . (c1,c2) = c1 + c2 ) & (  for c1, c2 being   complex   number  holds  b2 . (c1,c2) = c1 + c2 ) holds 
b1 = b2
 from BINOP_2:sch 8();
 
existence 
 ex b1 being   BinOp of COMPLEX st 
 for c1, c2 being   complex   number  holds  b1 . (c1,c2) = c1 - c2
 from BINOP_2:sch 13();
uniqueness 
 for b1, b2 being   BinOp of COMPLEX  st (  for c1, c2 being   complex   number  holds  b1 . (c1,c2) = c1 - c2 ) & (  for c1, c2 being   complex   number  holds  b2 . (c1,c2) = c1 - c2 ) holds 
b1 = b2
 from BINOP_2:sch 8();
 
existence 
 ex b1 being   BinOp of COMPLEX st 
 for c1, c2 being   complex   number  holds  b1 . (c1,c2) = c1 * c2
 from BINOP_2:sch 13();
uniqueness 
 for b1, b2 being   BinOp of COMPLEX  st (  for c1, c2 being   complex   number  holds  b1 . (c1,c2) = c1 * c2 ) & (  for c1, c2 being   complex   number  holds  b2 . (c1,c2) = c1 * c2 ) holds 
b1 = b2
 from BINOP_2:sch 8();
 
existence 
 ex b1 being   BinOp of COMPLEX st 
 for c1, c2 being   complex   number  holds  b1 . (c1,c2) = c1 / c2
 from BINOP_2:sch 13();
uniqueness 
 for b1, b2 being   BinOp of COMPLEX  st (  for c1, c2 being   complex   number  holds  b1 . (c1,c2) = c1 / c2 ) & (  for c1, c2 being   complex   number  holds  b2 . (c1,c2) = c1 / c2 ) holds 
b1 = b2
 from BINOP_2:sch 8();
 
end;
 
definition
 
existence 
 ex b1 being   UnOp of REAL st 
 for r being   real   number  holds  b1 . r =  - r
 from BINOP_2:sch 19();
uniqueness 
 for b1, b2 being   UnOp of REAL  st (  for r being   real   number  holds  b1 . r =  - r ) & (  for r being   real   number  holds  b2 . r =  - r ) holds 
b1 = b2
 from BINOP_2:sch 4();
 
existence 
 ex b1 being   UnOp of REAL st 
 for r being   real   number  holds  b1 . r = r " 
 from BINOP_2:sch 19();
uniqueness 
 for b1, b2 being   UnOp of REAL  st (  for r being   real   number  holds  b1 . r = r "  ) & (  for r being   real   number  holds  b2 . r = r "  ) holds 
b1 = b2
 from BINOP_2:sch 4();
 
existence 
 ex b1 being   BinOp of REAL st 
 for r1, r2 being   real   number  holds  b1 . (r1,r2) = r1 + r2
 from BINOP_2:sch 14();
uniqueness 
 for b1, b2 being   BinOp of REAL  st (  for r1, r2 being   real   number  holds  b1 . (r1,r2) = r1 + r2 ) & (  for r1, r2 being   real   number  holds  b2 . (r1,r2) = r1 + r2 ) holds 
b1 = b2
 from BINOP_2:sch 9();
 
existence 
 ex b1 being   BinOp of REAL st 
 for r1, r2 being   real   number  holds  b1 . (r1,r2) = r1 - r2
 from BINOP_2:sch 14();
uniqueness 
 for b1, b2 being   BinOp of REAL  st (  for r1, r2 being   real   number  holds  b1 . (r1,r2) = r1 - r2 ) & (  for r1, r2 being   real   number  holds  b2 . (r1,r2) = r1 - r2 ) holds 
b1 = b2
 from BINOP_2:sch 9();
 
existence 
 ex b1 being   BinOp of REAL st 
 for r1, r2 being   real   number  holds  b1 . (r1,r2) = r1 * r2
 from BINOP_2:sch 14();
uniqueness 
 for b1, b2 being   BinOp of REAL  st (  for r1, r2 being   real   number  holds  b1 . (r1,r2) = r1 * r2 ) & (  for r1, r2 being   real   number  holds  b2 . (r1,r2) = r1 * r2 ) holds 
b1 = b2
 from BINOP_2:sch 9();
 
existence 
 ex b1 being   BinOp of REAL st 
 for r1, r2 being   real   number  holds  b1 . (r1,r2) = r1 / r2
 from BINOP_2:sch 14();
uniqueness 
 for b1, b2 being   BinOp of REAL  st (  for r1, r2 being   real   number  holds  b1 . (r1,r2) = r1 / r2 ) & (  for r1, r2 being   real   number  holds  b2 . (r1,r2) = r1 / r2 ) holds 
b1 = b2
 from BINOP_2:sch 9();
 
end;
 
definition
 
existence 
 ex b1 being   UnOp of RAT st 
 for w being   rational   number  holds  b1 . w =  - w
 from BINOP_2:sch 20();
uniqueness 
 for b1, b2 being   UnOp of RAT  st (  for w being   rational   number  holds  b1 . w =  - w ) & (  for w being   rational   number  holds  b2 . w =  - w ) holds 
b1 = b2
 from BINOP_2:sch 5();
 
existence 
 ex b1 being   UnOp of RAT st 
 for w being   rational   number  holds  b1 . w = w " 
 from BINOP_2:sch 20();
uniqueness 
 for b1, b2 being   UnOp of RAT  st (  for w being   rational   number  holds  b1 . w = w "  ) & (  for w being   rational   number  holds  b2 . w = w "  ) holds 
b1 = b2
 from BINOP_2:sch 5();
 
existence 
 ex b1 being   BinOp of RAT st 
 for w1, w2 being   rational   number  holds  b1 . (w1,w2) = w1 + w2
 from BINOP_2:sch 15();
uniqueness 
 for b1, b2 being   BinOp of RAT  st (  for w1, w2 being   rational   number  holds  b1 . (w1,w2) = w1 + w2 ) & (  for w1, w2 being   rational   number  holds  b2 . (w1,w2) = w1 + w2 ) holds 
b1 = b2
 from BINOP_2:sch 10();
 
existence 
 ex b1 being   BinOp of RAT st 
 for w1, w2 being   rational   number  holds  b1 . (w1,w2) = w1 - w2
 from BINOP_2:sch 15();
uniqueness 
 for b1, b2 being   BinOp of RAT  st (  for w1, w2 being   rational   number  holds  b1 . (w1,w2) = w1 - w2 ) & (  for w1, w2 being   rational   number  holds  b2 . (w1,w2) = w1 - w2 ) holds 
b1 = b2
 from BINOP_2:sch 10();
 
existence 
 ex b1 being   BinOp of RAT st 
 for w1, w2 being   rational   number  holds  b1 . (w1,w2) = w1 * w2
 from BINOP_2:sch 15();
uniqueness 
 for b1, b2 being   BinOp of RAT  st (  for w1, w2 being   rational   number  holds  b1 . (w1,w2) = w1 * w2 ) & (  for w1, w2 being   rational   number  holds  b2 . (w1,w2) = w1 * w2 ) holds 
b1 = b2
 from BINOP_2:sch 10();
 
existence 
 ex b1 being   BinOp of RAT st 
 for w1, w2 being   rational   number  holds  b1 . (w1,w2) = w1 / w2
 from BINOP_2:sch 15();
uniqueness 
 for b1, b2 being   BinOp of RAT  st (  for w1, w2 being   rational   number  holds  b1 . (w1,w2) = w1 / w2 ) & (  for w1, w2 being   rational   number  holds  b2 . (w1,w2) = w1 / w2 ) holds 
b1 = b2
 from BINOP_2:sch 10();
 
end;
 
definition
 
existence 
 ex b1 being   UnOp of INT st 
 for i being   integer   number  holds  b1 . i =  - i
 from BINOP_2:sch 21();
uniqueness 
 for b1, b2 being   UnOp of INT  st (  for i being   integer   number  holds  b1 . i =  - i ) & (  for i being   integer   number  holds  b2 . i =  - i ) holds 
b1 = b2
 from BINOP_2:sch 6();
 
existence 
 ex b1 being   BinOp of INT st 
 for i1, i2 being   integer   number  holds  b1 . (i1,i2) = i1 + i2
 from BINOP_2:sch 16();
uniqueness 
 for b1, b2 being   BinOp of INT  st (  for i1, i2 being   integer   number  holds  b1 . (i1,i2) = i1 + i2 ) & (  for i1, i2 being   integer   number  holds  b2 . (i1,i2) = i1 + i2 ) holds 
b1 = b2
 from BINOP_2:sch 11();
 
existence 
 ex b1 being   BinOp of INT st 
 for i1, i2 being   integer   number  holds  b1 . (i1,i2) = i1 - i2
 from BINOP_2:sch 16();
uniqueness 
 for b1, b2 being   BinOp of INT  st (  for i1, i2 being   integer   number  holds  b1 . (i1,i2) = i1 - i2 ) & (  for i1, i2 being   integer   number  holds  b2 . (i1,i2) = i1 - i2 ) holds 
b1 = b2
 from BINOP_2:sch 11();
 
existence 
 ex b1 being   BinOp of INT st 
 for i1, i2 being   integer   number  holds  b1 . (i1,i2) = i1 * i2
 from BINOP_2:sch 16();
uniqueness 
 for b1, b2 being   BinOp of INT  st (  for i1, i2 being   integer   number  holds  b1 . (i1,i2) = i1 * i2 ) & (  for i1, i2 being   integer   number  holds  b2 . (i1,i2) = i1 * i2 ) holds 
b1 = b2
 from BINOP_2:sch 11();
 
end;
 
definition
 
existence 
 ex b1 being   BinOp of NAT st 
 for n1, n2 being   Nat holds  b1 . (n1,n2) = n1 + n2
 from BINOP_2:sch 17();
uniqueness 
 for b1, b2 being   BinOp of NAT  st (  for n1, n2 being   Nat holds  b1 . (n1,n2) = n1 + n2 ) & (  for n1, n2 being   Nat holds  b2 . (n1,n2) = n1 + n2 ) holds 
b1 = b2
 from BINOP_2:sch 12();
 
existence 
 ex b1 being   BinOp of NAT st 
 for n1, n2 being   Nat holds  b1 . (n1,n2) = n1 * n2
 from BINOP_2:sch 17();
uniqueness 
 for b1, b2 being   BinOp of NAT  st (  for n1, n2 being   Nat holds  b1 . (n1,n2) = n1 * n2 ) & (  for n1, n2 being   Nat holds  b2 . (n1,n2) = n1 * n2 ) holds 
b1 = b2
 from BINOP_2:sch 12();
 
end;
 
Lm1: 
 0  in  NAT 
 
;
then reconsider z =  0  as    Element of  COMPLEX  by NUMBERS:20;
Lm2: 
z is_a_unity_wrt  addcomplex 
 
Lm3: 
 0  is_a_unity_wrt  addreal 
 
reconsider z =  0  as    Element of  RAT  by Lm1, NUMBERS:18;
Lm4: 
z is_a_unity_wrt  addrat 
 
reconsider z =  0  as    Element of  INT  by Lm1, NUMBERS:17;
Lm5: 
z is_a_unity_wrt  addint 
 
Lm6: 
 0  is_a_unity_wrt  addnat 
 
Lm7: 
1 in  NAT 
 
;
then reconsider z = 1 as    Element of  COMPLEX  by NUMBERS:20;
Lm8: 
z is_a_unity_wrt  multcomplex 
 
Lm9: 
1 is_a_unity_wrt  multreal 
 
reconsider z = 1 as    Element of  RAT  by Lm7, NUMBERS:18;
Lm10: 
z is_a_unity_wrt  multrat 
 
reconsider z = 1 as    Element of  INT  by Lm7, NUMBERS:17;
Lm11: 
z is_a_unity_wrt  multint 
 
Lm12: 
1 is_a_unity_wrt  multnat 
 
registration
coherence 
 addcomplex  is  having_a_unity 
 by Lm2, SETWISEO:def 2;
coherence 
 addreal  is  having_a_unity 
 by Lm3, SETWISEO:def 2;
coherence 
 addrat  is  having_a_unity 
 by Lm4, SETWISEO:def 2;
coherence 
 addint  is  having_a_unity 
 by Lm5, SETWISEO:def 2;
coherence 
 addnat  is  having_a_unity 
 by Lm6, SETWISEO:def 2;
coherence 
 multcomplex  is  having_a_unity 
 by Lm8, SETWISEO:def 2;
coherence 
 multreal  is  having_a_unity 
 by Lm9, SETWISEO:def 2;
coherence 
 multrat  is  having_a_unity 
 by Lm10, SETWISEO:def 2;
coherence 
 multint  is  having_a_unity 
 by Lm11, SETWISEO:def 2;
coherence 
 multnat  is  having_a_unity 
 by Lm12, SETWISEO:def 2;
 
end;