:: ARYTM_2 semantic presentation

definition
func DEDEKIND_CUTS -> Subset-Family of RAT+ equals :: ARYTM_2:def 1
{ b1 where B is Subset of RAT+ : for b1 being Element of RAT+ st b2 in b1 holds
( ( for b2 being Element of RAT+ st b3 <=' b2 holds
b3 in b1 ) & ex b2 being Element of RAT+ st
( b3 in b1 & b2 < b3 ) )
}
\ {RAT+ };
coherence
{ b1 where B is Subset of RAT+ : for b1 being Element of RAT+ st b2 in b1 holds
( ( for b2 being Element of RAT+ st b3 <=' b2 holds
b3 in b1 ) & ex b2 being Element of RAT+ st
( b3 in b1 & b2 < b3 ) )
}
\ {RAT+ } is Subset-Family of RAT+
proof end;
end;

:: deftheorem Def1 defines DEDEKIND_CUTS ARYTM_2:def 1 :
DEDEKIND_CUTS = { b1 where B is Subset of RAT+ : for b1 being Element of RAT+ st b2 in b1 holds
( ( for b2 being Element of RAT+ st b3 <=' b2 holds
b3 in b1 ) & ex b2 being Element of RAT+ st
( b3 in b1 & b2 < b3 ) )
}
\ {RAT+ };

registration
cluster DEDEKIND_CUTS -> non empty ;
coherence
not DEDEKIND_CUTS is empty
proof end;
end;

definition
func REAL+ -> set equals :: ARYTM_2:def 2
(RAT+ \/ DEDEKIND_CUTS ) \ { { b2 where B is Element of RAT+ : b2 < b1 } where B is Element of RAT+ : b1 <> {} } ;
coherence
(RAT+ \/ DEDEKIND_CUTS ) \ { { b2 where B is Element of RAT+ : b2 < b1 } where B is Element of RAT+ : b1 <> {} } is set
;
end;

:: deftheorem Def2 defines REAL+ ARYTM_2:def 2 :
REAL+ = (RAT+ \/ DEDEKIND_CUTS ) \ { { b2 where B is Element of RAT+ : b2 < b1 } where B is Element of RAT+ : b1 <> {} } ;

set c1 = { b1 where B is Subset of RAT+ : for b1 being Element of RAT+ st b2 in b1 holds
( ( for b2 being Element of RAT+ st b3 <=' b2 holds
b3 in b1 ) & ex b2 being Element of RAT+ st
( b3 in b1 & b2 < b3 ) )
}
;

set c2 = { { b2 where B is Element of RAT+ : b2 < b1 } where B is Element of RAT+ : b1 <> {} } ;

Lemma1: for b1, b2 being set holds not [b1,b2] in { b3 where B is Subset of RAT+ : for b1 being Element of RAT+ st b4 in b3 holds
( ( for b2 being Element of RAT+ st b5 <=' b4 holds
b5 in b3 ) & ex b2 being Element of RAT+ st
( b5 in b3 & b4 < b5 ) )
}

proof end;

Lemma2: RAT+ c= RAT+ \/ DEDEKIND_CUTS
by XBOOLE_1:7;

Lemma3: RAT+ misses { { b2 where B is Element of RAT+ : b2 < b1 } where B is Element of RAT+ : b1 <> {} }
proof end;

theorem Th1: :: ARYTM_2:1
RAT+ c= REAL+ by Lemma2, Lemma3, XBOOLE_1:86;

Lemma5: REAL+ c= RAT+ \/ DEDEKIND_CUTS
by XBOOLE_1:36;

DEDEKIND_CUTS c= { b1 where B is Subset of RAT+ : for b1 being Element of RAT+ st b2 in b1 holds
( ( for b2 being Element of RAT+ st b3 <=' b2 holds
b3 in b1 ) & ex b2 being Element of RAT+ st
( b3 in b1 & b2 < b3 ) )
}

by XBOOLE_1:36;

then RAT+ \/ DEDEKIND_CUTS c= RAT+ \/ { b1 where B is Subset of RAT+ : for b1 being Element of RAT+ st b2 in b1 holds
( ( for b2 being Element of RAT+ st b3 <=' b2 holds
b3 in b1 ) & ex b2 being Element of RAT+ st
( b3 in b1 & b2 < b3 ) )
}

by XBOOLE_1:9;

then Lemma6: REAL+ c= RAT+ \/ { b1 where B is Subset of RAT+ : for b1 being Element of RAT+ st b2 in b1 holds
( ( for b2 being Element of RAT+ st b3 <=' b2 holds
b3 in b1 ) & ex b2 being Element of RAT+ st
( b3 in b1 & b2 < b3 ) )
}

by Lemma5, XBOOLE_1:1;

REAL+ = RAT+ \/ (({ b1 where B is Subset of RAT+ : for b1 being Element of RAT+ st b2 in b1 holds
( ( for b2 being Element of RAT+ st b3 <=' b2 holds
b3 in b1 ) & ex b2 being Element of RAT+ st
( b3 in b1 & b2 < b3 ) )
}
\ {RAT+ }
)
\ { { b2 where B is Element of RAT+ : b2 < b1 } where B is Element of RAT+ : b1 <> {} }
)

by Lemma3, XBOOLE_1:87;

then Lemma7: DEDEKIND_CUTS \ { { b2 where B is Element of RAT+ : b2 < b1 } where B is Element of RAT+ : b1 <> {} } c= REAL+
by XBOOLE_1:7;

theorem Th2: :: ARYTM_2:2
omega c= REAL+ by Th1, ARYTM_3:34, XBOOLE_1:1;

registration
cluster REAL+ -> non empty ;
coherence
not REAL+ is empty
by Th2, ORDINAL2:19;
end;

definition
let c3 be Element of REAL+ ;
func DEDEKIND_CUT c1 -> Element of DEDEKIND_CUTS means :Def3: :: ARYTM_2:def 3
ex b1 being Element of RAT+ st
( a1 = b1 & a2 = { b2 where B is Element of RAT+ : b2 < b1 } ) if a1 in RAT+
otherwise a2 = a1;
existence
( ( c3 in RAT+ implies ex b1 being Element of DEDEKIND_CUTS ex b2 being Element of RAT+ st
( c3 = b2 & b1 = { b3 where B is Element of RAT+ : b3 < b2 } ) ) & ( not c3 in RAT+ implies ex b1 being Element of DEDEKIND_CUTS st b1 = c3 ) )
proof end;
uniqueness
for b1, b2 being Element of DEDEKIND_CUTS holds
( ( c3 in RAT+ & ex b3 being Element of RAT+ st
( c3 = b3 & b1 = { b4 where B is Element of RAT+ : b4 < b3 } ) & ex b3 being Element of RAT+ st
( c3 = b3 & b2 = { b4 where B is Element of RAT+ : b4 < b3 } ) implies b1 = b2 ) & ( not c3 in RAT+ & b1 = c3 & b2 = c3 implies b1 = b2 ) )
;
consistency
for b1 being Element of DEDEKIND_CUTS holds verum
;
end;

:: deftheorem Def3 defines DEDEKIND_CUT ARYTM_2:def 3 :
for b1 being Element of REAL+
for b2 being Element of DEDEKIND_CUTS holds
( ( b1 in RAT+ implies ( b2 = DEDEKIND_CUT b1 iff ex b3 being Element of RAT+ st
( b1 = b3 & b2 = { b4 where B is Element of RAT+ : b4 < b3 } ) ) ) & ( not b1 in RAT+ implies ( b2 = DEDEKIND_CUT b1 iff b2 = b1 ) ) );

theorem Th3: :: ARYTM_2:3
for b1 being set holds not [{} ,b1] in REAL+
proof end;

Lemma10: for b1, b2 being Element of RAT+ st ( for b3 being Element of RAT+ holds
( b3 < b1 iff b3 < b2 ) ) holds
b1 = b2
proof end;

definition
let c3 be Element of DEDEKIND_CUTS ;
func GLUED c1 -> Element of REAL+ means :Def4: :: ARYTM_2:def 4
ex b1 being Element of RAT+ st
( a2 = b1 & ( for b2 being Element of RAT+ holds
( b2 in a1 iff b2 < b1 ) ) ) if ex b1 being Element of RAT+ st
for b2 being Element of RAT+ holds
( b2 in a1 iff b2 < b1 )
otherwise a2 = a1;
uniqueness
for b1, b2 being Element of REAL+ holds
( ( ex b3 being Element of RAT+ st
for b4 being Element of RAT+ holds
( b4 in c3 iff b4 < b3 ) & ex b3 being Element of RAT+ st
( b1 = b3 & ( for b4 being Element of RAT+ holds
( b4 in c3 iff b4 < b3 ) ) ) & ex b3 being Element of RAT+ st
( b2 = b3 & ( for b4 being Element of RAT+ holds
( b4 in c3 iff b4 < b3 ) ) ) implies b1 = b2 ) & ( ( for b3 being Element of RAT+ holds
not for b4 being Element of RAT+ holds
( b4 in c3 iff b4 < b3 ) ) & b1 = c3 & b2 = c3 implies b1 = b2 ) )
proof end;
existence
( ( ex b1 being Element of RAT+ st
for b2 being Element of RAT+ holds
( b2 in c3 iff b2 < b1 ) implies ex b1 being Element of REAL+ ex b2 being Element of RAT+ st
( b1 = b2 & ( for b3 being Element of RAT+ holds
( b3 in c3 iff b3 < b2 ) ) ) ) & ( ( for b1 being Element of RAT+ holds
not for b2 being Element of RAT+ holds
( b2 in c3 iff b2 < b1 ) ) implies ex b1 being Element of REAL+ st b1 = c3 ) )
proof end;
consistency
for b1 being Element of REAL+ holds verum
;
end;

:: deftheorem Def4 defines GLUED ARYTM_2:def 4 :
for b1 being Element of DEDEKIND_CUTS
for b2 being Element of REAL+ holds
( ( ex b3 being Element of RAT+ st
for b4 being Element of RAT+ holds
( b4 in b1 iff b4 < b3 ) implies ( b2 = GLUED b1 iff ex b3 being Element of RAT+ st
( b2 = b3 & ( for b4 being Element of RAT+ holds
( b4 in b1 iff b4 < b3 ) ) ) ) ) & ( ( for b3 being Element of RAT+ holds
not for b4 being Element of RAT+ holds
( b4 in b1 iff b4 < b3 ) ) implies ( b2 = GLUED b1 iff b2 = b1 ) ) );

Lemma12: for b1 being Element of RAT+
for b2 being set st b2 in DEDEKIND_CUTS & b1 in b2 holds
ex b3 being Element of RAT+ st
( b3 in b2 & b1 < b3 )
proof end;

Lemma13: {} in DEDEKIND_CUTS
proof end;

Lemma14: DEDEKIND_CUTS /\ RAT+ = {{} }
proof end;

Lemma15: for b1 being Element of REAL+ holds
( DEDEKIND_CUT b1 = {} iff b1 = {} )
proof end;

Lemma16: for b1 being Element of DEDEKIND_CUTS holds
( GLUED b1 = {} iff b1 = {} )
proof end;

Lemma17: for b1 being Element of DEDEKIND_CUTS holds DEDEKIND_CUT (GLUED b1) = b1
proof end;

Lemma18: for b1, b2 being set st b1 in { b3 where B is Subset of RAT+ : for b1 being Element of RAT+ st b4 in b3 holds
( ( for b2 being Element of RAT+ st b5 <=' b4 holds
b5 in b3 ) & ex b2 being Element of RAT+ st
( b5 in b3 & b4 < b5 ) )
}
& b2 in { b3 where B is Subset of RAT+ : for b1 being Element of RAT+ st b4 in b3 holds
( ( for b2 being Element of RAT+ st b5 <=' b4 holds
b5 in b3 ) & ex b2 being Element of RAT+ st
( b5 in b3 & b4 < b5 ) )
}
& not b1 c= b2 holds
b2 c= b1
proof end;

definition
let c3, c4 be Element of REAL+ ;
pred c1 <=' c2 means :Def5: :: ARYTM_2:def 5
ex b1, b2 being Element of RAT+ st
( a1 = b1 & a2 = b2 & b1 <=' b2 ) if ( a1 in RAT+ & a2 in RAT+ )
a1 in a2 if ( a1 in RAT+ & not a2 in RAT+ )
not a2 in a1 if ( not a1 in RAT+ & a2 in RAT+ )
otherwise a1 c= a2;
consistency
( ( c3 in RAT+ & c4 in RAT+ & c3 in RAT+ & not c4 in RAT+ implies ( ex b1, b2 being Element of RAT+ st
( c3 = b1 & c4 = b2 & b1 <=' b2 ) iff c3 in c4 ) ) & ( c3 in RAT+ & c4 in RAT+ & not c3 in RAT+ & c4 in RAT+ implies ( ex b1, b2 being Element of RAT+ st
( c3 = b1 & c4 = b2 & b1 <=' b2 ) iff not c4 in c3 ) ) & ( c3 in RAT+ & not c4 in RAT+ & not c3 in RAT+ & c4 in RAT+ implies ( c3 in c4 iff not c4 in c3 ) ) )
;
connectedness
for b1, b2 being Element of REAL+ st ( ( b1 in RAT+ & b2 in RAT+ & ( for b3, b4 being Element of RAT+ holds
( not b1 = b3 or not b2 = b4 or not b3 <=' b4 ) ) ) or ( b1 in RAT+ & not b2 in RAT+ & not b1 in b2 ) or ( not b1 in RAT+ & b2 in RAT+ & b2 in b1 ) or ( ( not b1 in RAT+ or not b2 in RAT+ ) & ( not b1 in RAT+ or b2 in RAT+ ) & ( b1 in RAT+ or not b2 in RAT+ ) & not b1 c= b2 ) ) holds
( ( b2 in RAT+ & b1 in RAT+ implies ex b3, b4 being Element of RAT+ st
( b2 = b3 & b1 = b4 & b3 <=' b4 ) ) & ( b2 in RAT+ & not b1 in RAT+ implies b2 in b1 ) & ( not b2 in RAT+ & b1 in RAT+ implies not b1 in b2 ) & ( ( not b2 in RAT+ or not b1 in RAT+ ) & ( not b2 in RAT+ or b1 in RAT+ ) & ( b2 in RAT+ or not b1 in RAT+ ) implies b2 c= b1 ) )
proof end;
end;

:: deftheorem Def5 defines <=' ARYTM_2:def 5 :
for b1, b2 being Element of REAL+ holds
( ( b1 in RAT+ & b2 in RAT+ implies ( b1 <=' b2 iff ex b3, b4 being Element of RAT+ st
( b1 = b3 & b2 = b4 & b3 <=' b4 ) ) ) & ( b1 in RAT+ & not b2 in RAT+ implies ( b1 <=' b2 iff b1 in b2 ) ) & ( not b1 in RAT+ & b2 in RAT+ implies ( b1 <=' b2 iff not b2 in b1 ) ) & ( ( not b1 in RAT+ or not b2 in RAT+ ) & ( not b1 in RAT+ or b2 in RAT+ ) & ( b1 in RAT+ or not b2 in RAT+ ) implies ( b1 <=' b2 iff b1 c= b2 ) ) );

notation
let c3, c4 be Element of REAL+ ;
antonym c2 < c1 for c1 <=' c2;
end;

Lemma20: for b1, b2 being Element of RAT+
for b3, b4 being Element of REAL+ st b3 = b1 & b4 = b2 holds
( b3 <=' b4 iff b1 <=' b2 )
proof end;

Lemma21: for b1 being set st b1 in DEDEKIND_CUTS & b1 <> {} holds
ex b2 being Element of RAT+ st
( b2 in b1 & b2 <> {} )
proof end;

Lemma22: for b1, b2 being Element of RAT+
for b3 being set st b3 in DEDEKIND_CUTS & b1 in b3 & b2 <=' b1 holds
b2 in b3
proof end;

Lemma23: for b1 being set st b1 in DEDEKIND_CUTS & b1 <> {} holds
{} in b1
proof end;

Lemma24: for b1 being Element of RAT+
for b2 being set st b2 in DEDEKIND_CUTS \ { { b4 where B is Element of RAT+ : b4 < b3 } where B is Element of RAT+ : b3 <> {} } & not b1 in b2 & b2 <> {} holds
ex b3 being Element of RAT+ st
( not b3 in b2 & b3 < b1 )
proof end;

Lemma25: for b1 being Element of REAL+ st DEDEKIND_CUT b1 in { { b3 where B is Element of RAT+ : b3 < b2 } where B is Element of RAT+ : b2 <> {} } holds
b1 in RAT+
proof end;

Lemma26: for b1, b2 being Element of REAL+ st DEDEKIND_CUT b1 c= DEDEKIND_CUT b2 holds
b1 <=' b2
proof end;

Lemma27: for b1, b2 being Element of REAL+ st b1 <=' b2 & b2 <=' b1 holds
b1 = b2
proof end;

Lemma28: for b1, b2 being Element of REAL+ st DEDEKIND_CUT b1 = DEDEKIND_CUT b2 holds
b1 = b2
proof end;

Lemma29: for b1 being Element of REAL+ holds GLUED (DEDEKIND_CUT b1) = b1
proof end;

definition
let c3, c4 be Element of DEDEKIND_CUTS ;
func c1 + c2 -> Element of DEDEKIND_CUTS equals :Def6: :: ARYTM_2:def 6
{ (b1 + b2) where B is Element of RAT+ , B is Element of RAT+ : ( b1 in a1 & b2 in a2 ) } ;
coherence
{ (b1 + b2) where B is Element of RAT+ , B is Element of RAT+ : ( b1 in c3 & b2 in c4 ) } is Element of DEDEKIND_CUTS
proof end;
commutativity
for b1, b2, b3 being Element of DEDEKIND_CUTS st b1 = { (b4 + b5) where B is Element of RAT+ , B is Element of RAT+ : ( b4 in b2 & b5 in b3 ) } holds
b1 = { (b4 + b5) where B is Element of RAT+ , B is Element of RAT+ : ( b4 in b3 & b5 in b2 ) }
proof end;
end;

:: deftheorem Def6 defines + ARYTM_2:def 6 :
for b1, b2 being Element of DEDEKIND_CUTS holds b1 + b2 = { (b3 + b4) where B is Element of RAT+ , B is Element of RAT+ : ( b3 in b1 & b4 in b2 ) } ;

Lemma31: for b1 being set st b1 in DEDEKIND_CUTS holds
ex b2 being Element of RAT+ st not b2 in b1
proof end;

definition
let c3, c4 be Element of DEDEKIND_CUTS ;
func c1 *' c2 -> Element of DEDEKIND_CUTS equals :: ARYTM_2:def 7
{ (b1 *' b2) where B is Element of RAT+ , B is Element of RAT+ : ( b1 in a1 & b2 in a2 ) } ;
coherence
{ (b1 *' b2) where B is Element of RAT+ , B is Element of RAT+ : ( b1 in c3 & b2 in c4 ) } is Element of DEDEKIND_CUTS
proof end;
commutativity
for b1, b2, b3 being Element of DEDEKIND_CUTS st b1 = { (b4 *' b5) where B is Element of RAT+ , B is Element of RAT+ : ( b4 in b2 & b5 in b3 ) } holds
b1 = { (b4 *' b5) where B is Element of RAT+ , B is Element of RAT+ : ( b4 in b3 & b5 in b2 ) }
proof end;
end;

:: deftheorem Def7 defines *' ARYTM_2:def 7 :
for b1, b2 being Element of DEDEKIND_CUTS holds b1 *' b2 = { (b3 *' b4) where B is Element of RAT+ , B is Element of RAT+ : ( b3 in b1 & b4 in b2 ) } ;

definition
let c3, c4 be Element of REAL+ ;
func c1 + c2 -> Element of REAL+ equals :Def8: :: ARYTM_2:def 8
a1 if a2 = {}
a2 if a1 = {}
otherwise GLUED ((DEDEKIND_CUT a1) + (DEDEKIND_CUT a2));
coherence
( ( c4 = {} implies c3 is Element of REAL+ ) & ( c3 = {} implies c4 is Element of REAL+ ) & ( not c4 = {} & not c3 = {} implies GLUED ((DEDEKIND_CUT c3) + (DEDEKIND_CUT c4)) is Element of REAL+ ) )
;
consistency
for b1 being Element of REAL+ st c4 = {} & c3 = {} holds
( b1 = c3 iff b1 = c4 )
;
commutativity
for b1, b2, b3 being Element of REAL+ st ( b3 = {} implies b1 = b2 ) & ( b2 = {} implies b1 = b3 ) & ( not b3 = {} & not b2 = {} implies b1 = GLUED ((DEDEKIND_CUT b2) + (DEDEKIND_CUT b3)) ) holds
( ( b2 = {} implies b1 = b3 ) & ( b3 = {} implies b1 = b2 ) & ( not b2 = {} & not b3 = {} implies b1 = GLUED ((DEDEKIND_CUT b3) + (DEDEKIND_CUT b2)) ) )
;
func c1 *' c2 -> Element of REAL+ equals :: ARYTM_2:def 9
GLUED ((DEDEKIND_CUT a1) *' (DEDEKIND_CUT a2));
coherence
GLUED ((DEDEKIND_CUT c3) *' (DEDEKIND_CUT c4)) is Element of REAL+
;
commutativity
for b1, b2, b3 being Element of REAL+ st b1 = GLUED ((DEDEKIND_CUT b2) *' (DEDEKIND_CUT b3)) holds
b1 = GLUED ((DEDEKIND_CUT b3) *' (DEDEKIND_CUT b2))
;
end;

:: deftheorem Def8 defines + ARYTM_2:def 8 :
for b1, b2 being Element of REAL+ holds
( ( b2 = {} implies b1 + b2 = b1 ) & ( b1 = {} implies b1 + b2 = b2 ) & ( not b2 = {} & not b1 = {} implies b1 + b2 = GLUED ((DEDEKIND_CUT b1) + (DEDEKIND_CUT b2)) ) );

:: deftheorem Def9 defines *' ARYTM_2:def 9 :
for b1, b2 being Element of REAL+ holds b1 *' b2 = GLUED ((DEDEKIND_CUT b1) *' (DEDEKIND_CUT b2));

theorem Th4: :: ARYTM_2:4
for b1, b2 being Element of REAL+ st b1 = {} holds
b1 *' b2 = {}
proof end;

theorem Th5: :: ARYTM_2:5
canceled;

theorem Th6: :: ARYTM_2:6
for b1, b2 being Element of REAL+ st b1 + b2 = {} holds
b1 = {}
proof end;

Lemma35: for b1, b2, b3 being Element of DEDEKIND_CUTS holds b1 + (b2 + b3) c= (b1 + b2) + b3
proof end;

Lemma36: for b1, b2, b3 being Element of DEDEKIND_CUTS holds b1 + (b2 + b3) = (b1 + b2) + b3
proof end;

Lemma37: for b1, b2 being Element of DEDEKIND_CUTS holds
( not b1 + b2 = {} or b1 = {} or b2 = {} )
proof end;

theorem Th7: :: ARYTM_2:7
for b1, b2, b3 being Element of REAL+ holds b1 + (b2 + b3) = (b1 + b2) + b3
proof end;

theorem Th8: :: ARYTM_2:8
{ b1 where B is Subset of RAT+ : for b1 being Element of RAT+ st b2 in b1 holds
( ( for b2 being Element of RAT+ st b3 <=' b2 holds
b3 in b1 ) & ex b2 being Element of RAT+ st
( b3 in b1 & b2 < b3 ) )
}
is c=-linear
proof end;

Lemma39: for b1 being set st b1 in REAL+ holds
b1 <> RAT+
proof end;

Lemma40: for b1, b2 being Element of RAT+
for b3 being set st b3 in { b4 where B is Subset of RAT+ : for b1 being Element of RAT+ st b5 in b4 holds
( ( for b2 being Element of RAT+ st b6 <=' b5 holds
b6 in b4 ) & ex b2 being Element of RAT+ st
( b6 in b4 & b5 < b6 ) )
}
& b1 in b3 & b2 <=' b1 holds
b2 in b3
proof end;

Lemma41: for b1, b2 being Element of REAL+ st b1 < b2 holds
ex b3 being Element of REAL+ st
( b3 in RAT+ & b3 < b2 & b1 < b3 )
proof end;

Lemma42: for b1, b2, b3 being Element of REAL+ st b1 <=' b2 & b2 <=' b3 holds
b1 <=' b3
proof end;

theorem Th9: :: ARYTM_2:9
for b1, b2 being Subset of REAL+ st ex b3 being Element of REAL+ st b3 in b1 & ex b3 being Element of REAL+ st b3 in b2 & ( for b3, b4 being Element of REAL+ st b3 in b1 & b4 in b2 holds
b3 <=' b4 ) holds
ex b3 being Element of REAL+ st
for b4, b5 being Element of REAL+ st b4 in b1 & b5 in b2 holds
( b4 <=' b3 & b3 <=' b5 )
proof end;

Lemma43: one = one
;

Lemma44: {} = {}
;

Lemma45: for b1, b2 being Element of DEDEKIND_CUTS st b1 + b2 = b1 & b1 <> {} holds
b2 = {}
proof end;

Lemma46: for b1, b2 being Element of REAL+ st b1 + b2 = b1 holds
b2 = {}
proof end;

Lemma47: for b1, b2 being Element of DEDEKIND_CUTS st b1 <> {} & b1 c= b2 & b1 <> b2 holds
ex b3 being Element of DEDEKIND_CUTS st b1 + b3 = b2
proof end;

Lemma48: for b1, b2 being Element of REAL+ st b1 <=' b2 holds
DEDEKIND_CUT b1 c= DEDEKIND_CUT b2
proof end;

theorem Th10: :: ARYTM_2:10
for b1, b2 being Element of REAL+ st b1 <=' b2 holds
ex b3 being Element of REAL+ st b1 + b3 = b2
proof end;

theorem Th11: :: ARYTM_2:11
for b1, b2 being Element of REAL+ ex b3 being Element of REAL+ st
( b1 + b3 = b2 or b2 + b3 = b1 )
proof end;

theorem Th12: :: ARYTM_2:12
for b1, b2, b3 being Element of REAL+ st b1 + b2 = b1 + b3 holds
b2 = b3
proof end;

Lemma52: for b1, b2, b3 being Element of DEDEKIND_CUTS holds b1 *' (b2 *' b3) c= (b1 *' b2) *' b3
proof end;

Lemma53: for b1, b2, b3 being Element of DEDEKIND_CUTS holds b1 *' (b2 *' b3) = (b1 *' b2) *' b3
proof end;

theorem Th13: :: ARYTM_2:13
for b1, b2, b3 being Element of REAL+ holds b1 *' (b2 *' b3) = (b1 *' b2) *' b3
proof end;

Lemma54: for b1, b2 being Element of REAL+ holds
( not b1 *' b2 = {} or b1 = {} or b2 = {} )
proof end;

Lemma55: for b1, b2, b3 being Element of DEDEKIND_CUTS holds b1 *' (b2 + b3) = (b1 *' b2) + (b1 *' b3)
proof end;

theorem Th14: :: ARYTM_2:14
for b1, b2, b3 being Element of REAL+ holds b1 *' (b2 + b3) = (b1 *' b2) + (b1 *' b3)
proof end;

one in RAT+
;

then reconsider c3 = one as Element of REAL+ by Th1;

Lemma56: for b1 being set st b1 in { b2 where B is Subset of RAT+ : for b1 being Element of RAT+ st b3 in b2 holds
( ( for b2 being Element of RAT+ st b4 <=' b3 holds
b4 in b2 ) & ex b2 being Element of RAT+ st
( b4 in b2 & b3 < b4 ) )
}
& b1 <> {} holds
ex b2 being Element of RAT+ st
( b2 in b1 & b2 <> {} )
proof end;

Lemma57: for b1 being Element of DEDEKIND_CUTS st b1 <> {} holds
ex b2 being Element of DEDEKIND_CUTS st b1 *' b2 = DEDEKIND_CUT c3
proof end;

theorem Th15: :: ARYTM_2:15
for b1 being Element of REAL+ st b1 <> {} holds
ex b2 being Element of REAL+ st b1 *' b2 = one
proof end;

Lemma58: for b1, b2 being Element of DEDEKIND_CUTS st b1 = { b3 where B is Element of RAT+ : b3 < one } holds
b1 *' b2 = b2
proof end;

theorem Th16: :: ARYTM_2:16
for b1, b2 being Element of REAL+ st b1 = one holds
b1 *' b2 = b2
proof end;

Lemma59: for b1, b2 being Element of omega
for b3, b4 being Element of RAT+ st b1 = b3 & b2 = b4 holds
b1 +^ b2 = b3 + b4
proof end;

reconsider c4 = one as Element of omega by ORDINAL2:def 21;

Lemma60: for b1, b2, b3 being Element of RAT+ st b1 < b2 + b3 & b2 <> {} & b3 <> {} holds
ex b4, b5 being Element of RAT+ st
( b1 = b4 + b5 & b4 < b2 & b5 < b3 )
proof end;

Lemma61: for b1, b2 being Element of REAL+ st b1 in RAT+ & b2 in RAT+ holds
ex b3, b4 being Element of RAT+ st
( b1 = b3 & b2 = b4 & b1 + b2 = b3 + b4 )
proof end;

theorem Th17: :: ARYTM_2:17
for b1, b2 being Element of REAL+ st b1 in omega & b2 in omega holds
b2 + b1 in omega
proof end;

theorem Th18: :: ARYTM_2:18
for b1 being Subset of REAL+ st {} in b1 & ( for b2, b3 being Element of REAL+ st b2 in b1 & b3 = one holds
b2 + b3 in b1 ) holds
omega c= b1
proof end;

theorem Th19: :: ARYTM_2:19
for b1 being Element of REAL+ st b1 in omega holds
for b2 being Element of REAL+ holds
( b2 in b1 iff ( b2 in omega & b2 <> b1 & b2 <=' b1 ) )
proof end;

theorem Th20: :: ARYTM_2:20
for b1, b2, b3 being Element of REAL+ st b1 = b2 + b3 holds
b3 <=' b1
proof end;

theorem Th21: :: ARYTM_2:21
( {} in REAL+ & one in REAL+ )
proof end;

theorem Th22: :: ARYTM_2:22
for b1, b2 being Element of REAL+ st b1 in RAT+ & b2 in RAT+ holds
ex b3, b4 being Element of RAT+ st
( b1 = b3 & b2 = b4 & b1 *' b2 = b3 *' b4 )
proof end;