:: RAT_1 semantic presentation

Lemma27: for i1, j1 being Element of NAT holds quotient i1,j1 = i1 / j1
proof end;

0 in omega
;

then reconsider 0' = 0 as Element of REAL+ by ARYTM_2:2;

Lemma83: for a being real number
for x' being Element of REAL+ st x' = a holds
0' - x' = - a
proof end;

Lemma84: for x being set st x in RAT holds
ex m, n being Integer st x = m / n
proof end;

Lemma85: for x being set
for l being Element of NAT
for m being Integer st x = m / l holds
x in RAT
proof end;

Lemma86: for x being set
for m, n being Integer st x = m / n holds
x in RAT
proof end;

definition
redefine func RAT -> set means :Def1: :: RAT_1:def 1
for x being set holds
( x in it iff ex m, n being Integer st x = m / n );
compatibility
for b1 being set holds
( b1 = RAT iff for x being set holds
( x in b1 iff ex m, n being Integer st x = m / n ) )
proof end;
end;

:: deftheorem Def1 defines RAT RAT_1:def 1 :
for b1 being set holds
( b1 = RAT iff for x being set holds
( x in b1 iff ex m, n being Integer st x = m / n ) );

definition
let r be number ;
attr a1 is rational means :Def2: :: RAT_1:def 2
0' in RAT ;
end;

:: deftheorem Def2 defines rational RAT_1:def 2 :
for r being number holds
( r is rational iff r in RAT );

registration
cluster rational Element of REAL ;
existence
ex b1 being Real st b1 is rational
proof end;
end;

registration
cluster rational set ;
existence
ex b1 being number st b1 is rational
proof end;
end;

definition
mode Rational is rational number ;
end;

theorem Th1: :: RAT_1:1
for x being set st x in RAT holds
ex m, n being Integer st
( n <> 0 & x = m / n )
proof end;

theorem Th2: :: RAT_1:2
canceled;

theorem Th3: :: RAT_1:3
for x being set st x is Rational holds
ex m, n being Integer st
( n <> 0 & x = m / n )
proof end;

registration
cluster rational -> real set ;
coherence
for b1 being number st b1 is rational holds
b1 is real
proof end;
end;

theorem Th4: :: RAT_1:4
canceled;

theorem Th5: :: RAT_1:5
canceled;

theorem Th6: :: RAT_1:6
for x being set st ex m, n being Integer st x = m / n holds
x is rational
proof end;

theorem Th7: :: RAT_1:7
for x being Integer holds x is Rational
proof end;

registration
cluster integer -> real rational set ;
coherence
for b1 being number st b1 is integer holds
b1 is rational
by ;
end;

registration
let p be Rational;
let q be Rational;
cluster a1 * a2 -> rational ;
coherence
p * q is rational
proof end;
cluster a1 + a2 -> rational ;
coherence
p + q is rational
proof end;
cluster a1 - a2 -> rational ;
coherence
p - q is rational
proof end;
end;

registration
let p be Rational;
let m be Integer;
cluster a1 + a2 -> rational ;
coherence
p + m is rational
;
cluster a1 - a2 -> rational ;
coherence
p - m is rational
;
cluster a1 * a2 -> rational ;
coherence
p * m is rational
;
end;

registration
let m be Integer;
let p be Rational;
cluster a1 + a2 -> rational ;
coherence
m + p is rational
;
cluster a1 - a2 -> rational ;
coherence
m - p is rational
;
cluster a1 * a2 -> rational ;
coherence
m * p is rational
;
end;

registration
let p be Rational;
let k be Element of NAT ;
cluster a1 + a2 -> rational ;
coherence
p + k is rational
;
cluster a1 - a2 -> rational ;
coherence
p - k is rational
;
cluster a1 * a2 -> rational ;
coherence
p * k is rational
;
end;

registration
let k be Element of NAT ;
let p be Rational;
cluster a1 + a2 -> rational ;
coherence
k + p is rational
;
cluster a1 - a2 -> rational ;
coherence
k - p is rational
;
cluster a1 * a2 -> rational ;
coherence
k * p is rational
;
end;

registration
let p be Rational;
cluster - a1 -> rational ;
coherence
- p is rational
proof end;
end;

theorem Th8: :: RAT_1:8
canceled;

theorem Th9: :: RAT_1:9
canceled;

theorem Th10: :: RAT_1:10
canceled;

theorem Th11: :: RAT_1:11
canceled;

theorem Th12: :: RAT_1:12
canceled;

theorem Th13: :: RAT_1:13
canceled;

theorem Th14: :: RAT_1:14
canceled;

theorem Th15: :: RAT_1:15
canceled;

theorem Th16: :: RAT_1:16
for p, q being Rational holds p / q is Rational
proof end;

registration
let p be rational number , q be rational number ;
cluster a1 / a2 -> rational ;
coherence
p / q is rational
by ;
end;

theorem Th17: :: RAT_1:17
canceled;

theorem Th18: :: RAT_1:18
canceled;

theorem Th19: :: RAT_1:19
canceled;

theorem Th20: :: RAT_1:20
canceled;

theorem Th21: :: RAT_1:21
for p being Rational holds p " is Rational
proof end;

registration
let p be rational number ;
cluster a1 " -> rational ;
coherence
p " is rational
by ;
end;

theorem Th22: :: RAT_1:22
for a, b being real number st a < b holds
ex p being Rational st
( a < p & p < b )
proof end;

theorem Th23: :: RAT_1:23
canceled;

theorem Th24: :: RAT_1:24
for p being Rational ex m being Integer ex k being Element of NAT st
( k <> 0 & p = m / k )
proof end;

theorem Th25: :: RAT_1:25
for p being Rational ex m being Integer ex k being Element of NAT st
( k <> 0 & p = m / k & ( for n being Integer
for l being Element of NAT st l <> 0 & p = n / l holds
k <= l ) )
proof end;

definition
let p be Rational;
func denominator c1 -> Element of NAT means :Def3: :: RAT_1:def 3
( it <> 0 & ex m being Integer st 0' = m / it & ( for n being Integer
for k being Element of NAT st k <> 0 & 0' = n / k holds
it <= k ) );
existence
ex b1 being Element of NAT st
( b1 <> 0 & ex m being Integer st p = m / b1 & ( for n being Integer
for k being Element of NAT st k <> 0 & p = n / k holds
b1 <= k ) )
proof end;
uniqueness
for b1, b2 being Element of NAT st b1 <> 0 & ex m being Integer st p = m / b1 & ( for n being Integer
for k being Element of NAT st k <> 0 & p = n / k holds
b1 <= k ) & b2 <> 0 & ex m being Integer st p = m / b2 & ( for n being Integer
for k being Element of NAT st k <> 0 & p = n / k holds
b2 <= k ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines denominator RAT_1:def 3 :
for p being Rational
for b2 being Element of NAT holds
( b2 = denominator p iff ( b2 <> 0 & ex m being Integer st p = m / b2 & ( for n being Integer
for k being Element of NAT st k <> 0 & p = n / k holds
b2 <= k ) ) );

definition
let p be Rational;
func numerator c1 -> Integer equals :: RAT_1:def 4
(denominator 0') * 0';
coherence
(denominator p) * p is Integer
proof end;
end;

:: deftheorem Def4 defines numerator RAT_1:def 4 :
for p being Rational holds numerator p = (denominator p) * p;

theorem Th26: :: RAT_1:26
canceled;

theorem Th27: :: RAT_1:27
for p being Rational holds 0 < denominator p
proof end;

theorem Th28: :: RAT_1:28
canceled;

theorem Th29: :: RAT_1:29
for p being Rational holds 1 <= denominator p
proof end;

theorem Th30: :: RAT_1:30
for p being Rational holds 0 < (denominator p) "
proof end;

theorem Th31: :: RAT_1:31
canceled;

theorem Th32: :: RAT_1:32
canceled;

theorem Th33: :: RAT_1:33
canceled;

theorem Th34: :: RAT_1:34
for p being Rational holds 1 >= (denominator p) "
proof end;

theorem Th35: :: RAT_1:35
canceled;

theorem Th36: :: RAT_1:36
for p being Rational holds
( numerator p = 0 iff p = 0 )
proof end;

theorem Th37: :: RAT_1:37
for p being Rational holds
( p = (numerator p) / (denominator p) & p = (numerator p) * ((denominator p) " ) & p = ((denominator p) " ) * (numerator p) )
proof end;

theorem Th38: :: RAT_1:38
for p being Rational st p <> 0 holds
denominator p = (numerator p) / p
proof end;

theorem Th39: :: RAT_1:39
canceled;

theorem Th40: :: RAT_1:40
for p being Rational st p is Integer holds
( denominator p = 1 & numerator p = p )
proof end;

theorem Th41: :: RAT_1:41
for p being Rational st ( numerator p = p or denominator p = 1 ) holds
p is Integer
proof end;

theorem Th42: :: RAT_1:42
for p being Rational holds
( numerator p = p iff denominator p = 1 ) by ;

theorem Th43: :: RAT_1:43
canceled;

theorem Th44: :: RAT_1:44
for p being Rational st ( numerator p = p or denominator p = 1 ) & 0 <= p holds
p is Element of NAT
proof end;

theorem Th45: :: RAT_1:45
for p being Rational holds
( 1 < denominator p iff not p is integer )
proof end;

Lemma114: 1 " = 1
;

theorem Th46: :: RAT_1:46
for p being Rational holds
( 1 > (denominator p) " iff not p is integer )
proof end;

theorem Th47: :: RAT_1:47
for p being Rational holds
( numerator p = denominator p iff p = 1 )
proof end;

theorem Th48: :: RAT_1:48
for p being Rational holds
( numerator p = - (denominator p) iff p = - 1 )
proof end;

theorem Th49: :: RAT_1:49
for p being Rational holds
( - (numerator p) = denominator p iff p = - 1 )
proof end;

theorem Th50: :: RAT_1:50
for m being Integer
for p being Rational st m <> 0 holds
p = ((numerator p) * m) / ((denominator p) * m)
proof end;

theorem Th51: :: RAT_1:51
canceled;

theorem Th52: :: RAT_1:52
canceled;

theorem Th53: :: RAT_1:53
canceled;

theorem Th54: :: RAT_1:54
canceled;

theorem Th55: :: RAT_1:55
canceled;

theorem Th56: :: RAT_1:56
canceled;

theorem Th57: :: RAT_1:57
canceled;

theorem Th58: :: RAT_1:58
canceled;

theorem Th59: :: RAT_1:59
canceled;

theorem Th60: :: RAT_1:60
for k being Element of NAT
for m being Integer
for p being Rational st k <> 0 & p = m / k holds
ex l being Element of NAT st
( m = (numerator p) * l & k = (denominator p) * l )
proof end;

theorem Th61: :: RAT_1:61
for m, n being Integer
for p being Rational st p = m / n & n <> 0 holds
ex m1 being Integer st
( m = (numerator p) * m1 & n = (denominator p) * m1 )
proof end;

theorem Th62: :: RAT_1:62
for p being Rational
for l being Element of NAT holds
( not 1 < l or for m being Integer
for k being Element of NAT holds
( not numerator p = m * l or not denominator p = k * l ) )
proof end;

theorem Th63: :: RAT_1:63
for k being Element of NAT
for m being Integer
for p being Rational st p = m / k & k <> 0 & ( for l being Element of NAT holds
( not 1 < l or for m1 being Integer
for k1 being Element of NAT holds
( not m = m1 * l or not k = k1 * l ) ) ) holds
( k = denominator p & m = numerator p )
proof end;

theorem Th64: :: RAT_1:64
for p being Rational holds
( p < - 1 iff numerator p < - (denominator p) )
proof end;

theorem Th65: :: RAT_1:65
for p being Rational holds
( p <= - 1 iff numerator p <= - (denominator p) )
proof end;

theorem Th66: :: RAT_1:66
for p being Rational holds
( p < - 1 iff denominator p < - (numerator p) )
proof end;

theorem Th67: :: RAT_1:67
for p being Rational holds
( p <= - 1 iff denominator p <= - (numerator p) )
proof end;

theorem Th68: :: RAT_1:68
canceled;

theorem Th69: :: RAT_1:69
canceled;

theorem Th70: :: RAT_1:70
canceled;

theorem Th71: :: RAT_1:71
canceled;

theorem Th72: :: RAT_1:72
for p being Rational holds
( p < 1 iff numerator p < denominator p )
proof end;

theorem Th73: :: RAT_1:73
for p being Rational holds
( p <= 1 iff numerator p <= denominator p )
proof end;

theorem Th74: :: RAT_1:74
canceled;

theorem Th75: :: RAT_1:75
canceled;

theorem Th76: :: RAT_1:76
for p being Rational holds
( p < 0 iff numerator p < 0 )
proof end;

theorem Th77: :: RAT_1:77
for p being Rational holds
( p <= 0 iff numerator p <= 0 )
proof end;

theorem Th78: :: RAT_1:78
canceled;

theorem Th79: :: RAT_1:79
canceled;

theorem Th80: :: RAT_1:80
for a being real number
for p being Rational holds
( a < p iff a * (denominator p) < numerator p )
proof end;

theorem Th81: :: RAT_1:81
for a being real number
for p being Rational holds
( a <= p iff a * (denominator p) <= numerator p )
proof end;

theorem Th82: :: RAT_1:82
canceled;

theorem Th83: :: RAT_1:83
canceled;

theorem Th84: :: RAT_1:84
for p, q being Rational st denominator p = denominator q & numerator p = numerator q holds
p = q
proof end;

theorem Th85: :: RAT_1:85
canceled;

theorem Th86: :: RAT_1:86
for p, q being Rational holds
( p < q iff (numerator p) * (denominator q) < (numerator q) * (denominator p) )
proof end;

theorem Th87: :: RAT_1:87
for p being Rational holds
( denominator (- p) = denominator p & numerator (- p) = - (numerator p) )
proof end;

theorem Th88: :: RAT_1:88
for p, q being Rational holds
( 0 < p & q = 1 / p iff ( numerator q = denominator p & denominator q = numerator p ) )
proof end;

theorem Th89: :: RAT_1:89
for p, q being Rational holds
( p < 0 & q = 1 / p iff ( numerator q = - (denominator p) & denominator q = - (numerator p) ) )
proof end;