:: SEQ_4 semantic presentation

Lemma1: for b1, b2, b3 being real number st 0 < b1 & b1 <= b2 & 0 <= b3 holds
b3 / b2 <= b3 / b1
by XREAL_1:120;

Lemma2: for b1 being real number st 0 < b1 holds
0 < b1 / 3
by XREAL_1:224;

Lemma3: for b1, b2, b3, b4 being real number st 0 < b1 & 0 <= b2 & b1 <= b3 & b2 < b4 holds
b1 * b2 < b3 * b4
by XREAL_1:99;

Lemma4: for b1, b2, b3, b4 being real number st 0 <= b1 & 0 <= b2 & b1 <= b3 & b2 <= b4 holds
b1 * b2 <= b3 * b4
by XREAL_1:68;

theorem Th1: :: SEQ_4:1
canceled;

theorem Th2: :: SEQ_4:2
canceled;

theorem Th3: :: SEQ_4:3
canceled;

theorem Th4: :: SEQ_4:4
canceled;

theorem Th5: :: SEQ_4:5
canceled;

theorem Th6: :: SEQ_4:6
canceled;

theorem Th7: :: SEQ_4:7
canceled;

theorem Th8: :: SEQ_4:8
for b1, b2 being Subset of REAL st ( for b3, b4 being real number st b3 in b1 & b4 in b2 holds
b3 < b4 ) holds
ex b3 being real number st
for b4, b5 being real number st b4 in b1 & b5 in b2 holds
( b4 <= b3 & b3 <= b5 )
proof end;

theorem Th9: :: SEQ_4:9
for b1 being real number
for b2 being Subset of REAL st 0 < b1 & ex b3 being real number st b3 in b2 & ( for b3 being real number st b3 in b2 holds
b3 + b1 in b2 ) holds
for b3 being real number ex b4 being real number st
( b4 in b2 & b3 < b4 )
proof end;

theorem Th10: :: SEQ_4:10
for b1 being real number ex b2 being Nat st b1 < b2
proof end;

definition
let c1 be real-membered set ;
attr a1 is bounded_above means :Def1: :: SEQ_4:def 1
ex b1 being real number st
for b2 being real number st b2 in a1 holds
b2 <= b1;
attr a1 is bounded_below means :Def2: :: SEQ_4:def 2
ex b1 being real number st
for b2 being real number st b2 in a1 holds
b1 <= b2;
end;

:: deftheorem Def1 defines bounded_above SEQ_4:def 1 :
for b1 being real-membered set holds
( b1 is bounded_above iff ex b2 being real number st
for b3 being real number st b3 in b1 holds
b3 <= b2 );

:: deftheorem Def2 defines bounded_below SEQ_4:def 2 :
for b1 being real-membered set holds
( b1 is bounded_below iff ex b2 being real number st
for b3 being real number st b3 in b1 holds
b2 <= b3 );

definition
let c1 be Subset of REAL ;
attr a1 is bounded means :Def3: :: SEQ_4:def 3
( a1 is bounded_below & a1 is bounded_above );
end;

:: deftheorem Def3 defines bounded SEQ_4:def 3 :
for b1 being Subset of REAL holds
( b1 is bounded iff ( b1 is bounded_below & b1 is bounded_above ) );

theorem Th11: :: SEQ_4:11
canceled;

theorem Th12: :: SEQ_4:12
canceled;

theorem Th13: :: SEQ_4:13
canceled;

theorem Th14: :: SEQ_4:14
for b1 being Subset of REAL holds
( b1 is bounded iff ex b2 being real number st
( 0 < b2 & ( for b3 being real number st b3 in b1 holds
abs b3 < b2 ) ) )
proof end;

definition
let c1 be real number ;
redefine func { as {c1} -> Subset of REAL ;
coherence
{c1} is Subset of REAL
proof end;
end;

theorem Th15: :: SEQ_4:15
for b1 being real number holds {b1} is bounded
proof end;

theorem Th16: :: SEQ_4:16
for b1 being real-membered set st not b1 is empty & b1 is bounded_above holds
ex b2 being real number st
( ( for b3 being real number st b3 in b1 holds
b3 <= b2 ) & ( for b3 being real number st 0 < b3 holds
ex b4 being real number st
( b4 in b1 & b2 - b3 < b4 ) ) )
proof end;

theorem Th17: :: SEQ_4:17
for b1, b2 being real number
for b3 being real-membered set st ( for b4 being real number st b4 in b3 holds
b4 <= b1 ) & ( for b4 being real number st 0 < b4 holds
ex b5 being real number st
( b5 in b3 & b1 - b4 < b5 ) ) & ( for b4 being real number st b4 in b3 holds
b4 <= b2 ) & ( for b4 being real number st 0 < b4 holds
ex b5 being real number st
( b5 in b3 & b2 - b4 < b5 ) ) holds
b1 = b2
proof end;

theorem Th18: :: SEQ_4:18
for b1 being real-membered set st not b1 is empty & b1 is bounded_below holds
ex b2 being real number st
( ( for b3 being real number st b3 in b1 holds
b2 <= b3 ) & ( for b3 being real number st 0 < b3 holds
ex b4 being real number st
( b4 in b1 & b4 < b2 + b3 ) ) )
proof end;

theorem Th19: :: SEQ_4:19
for b1, b2 being real number
for b3 being real-membered set st ( for b4 being real number st b4 in b3 holds
b1 <= b4 ) & ( for b4 being real number st 0 < b4 holds
ex b5 being real number st
( b5 in b3 & b5 < b1 + b4 ) ) & ( for b4 being real number st b4 in b3 holds
b2 <= b4 ) & ( for b4 being real number st 0 < b4 holds
ex b5 being real number st
( b5 in b3 & b5 < b2 + b4 ) ) holds
b1 = b2
proof end;

definition
let c1 be real-membered set ;
assume E17: ( not c1 is empty & c1 is bounded_above ) ;
func upper_bound c1 -> real number means :Def4: :: SEQ_4:def 4
( ( for b1 being real number st b1 in a1 holds
b1 <= a2 ) & ( for b1 being real number st 0 < b1 holds
ex b2 being real number st
( b2 in a1 & a2 - b1 < b2 ) ) );
existence
ex b1 being real number st
( ( for b2 being real number st b2 in c1 holds
b2 <= b1 ) & ( for b2 being real number st 0 < b2 holds
ex b3 being real number st
( b3 in c1 & b1 - b2 < b3 ) ) )
by E17, Th16;
uniqueness
for b1, b2 being real number st ( for b3 being real number st b3 in c1 holds
b3 <= b1 ) & ( for b3 being real number st 0 < b3 holds
ex b4 being real number st
( b4 in c1 & b1 - b3 < b4 ) ) & ( for b3 being real number st b3 in c1 holds
b3 <= b2 ) & ( for b3 being real number st 0 < b3 holds
ex b4 being real number st
( b4 in c1 & b2 - b3 < b4 ) ) holds
b1 = b2
by Th17;
end;

:: deftheorem Def4 defines upper_bound SEQ_4:def 4 :
for b1 being real-membered set st not b1 is empty & b1 is bounded_above holds
for b2 being real number holds
( b2 = upper_bound b1 iff ( ( for b3 being real number st b3 in b1 holds
b3 <= b2 ) & ( for b3 being real number st 0 < b3 holds
ex b4 being real number st
( b4 in b1 & b2 - b3 < b4 ) ) ) );

definition
let c1 be real-membered set ;
assume E18: ( not c1 is empty & c1 is bounded_below ) ;
func lower_bound c1 -> real number means :Def5: :: SEQ_4:def 5
( ( for b1 being real number st b1 in a1 holds
a2 <= b1 ) & ( for b1 being real number st 0 < b1 holds
ex b2 being real number st
( b2 in a1 & b2 < a2 + b1 ) ) );
existence
ex b1 being real number st
( ( for b2 being real number st b2 in c1 holds
b1 <= b2 ) & ( for b2 being real number st 0 < b2 holds
ex b3 being real number st
( b3 in c1 & b3 < b1 + b2 ) ) )
by E18, Th18;
uniqueness
for b1, b2 being real number st ( for b3 being real number st b3 in c1 holds
b1 <= b3 ) & ( for b3 being real number st 0 < b3 holds
ex b4 being real number st
( b4 in c1 & b4 < b1 + b3 ) ) & ( for b3 being real number st b3 in c1 holds
b2 <= b3 ) & ( for b3 being real number st 0 < b3 holds
ex b4 being real number st
( b4 in c1 & b4 < b2 + b3 ) ) holds
b1 = b2
by Th19;
end;

:: deftheorem Def5 defines lower_bound SEQ_4:def 5 :
for b1 being real-membered set st not b1 is empty & b1 is bounded_below holds
for b2 being real number holds
( b2 = lower_bound b1 iff ( ( for b3 being real number st b3 in b1 holds
b2 <= b3 ) & ( for b3 being real number st 0 < b3 holds
ex b4 being real number st
( b4 in b1 & b4 < b2 + b3 ) ) ) );

definition
let c1 be Subset of REAL ;
redefine func upper_bound as upper_bound c1 -> Real;
coherence
upper_bound c1 is Real
by XREAL_0:def 1;
redefine func lower_bound as lower_bound c1 -> Real;
coherence
lower_bound c1 is Real
by XREAL_0:def 1;
end;

theorem Th20: :: SEQ_4:20
canceled;

theorem Th21: :: SEQ_4:21
canceled;

theorem Th22: :: SEQ_4:22
for b1 being real number holds
( lower_bound {b1} = b1 & upper_bound {b1} = b1 )
proof end;

theorem Th23: :: SEQ_4:23
for b1 being real number holds lower_bound {b1} = upper_bound {b1}
proof end;

theorem Th24: :: SEQ_4:24
for b1 being Subset of REAL st b1 is bounded & not b1 is empty holds
lower_bound b1 <= upper_bound b1
proof end;

theorem Th25: :: SEQ_4:25
for b1 being Subset of REAL st b1 is bounded & not b1 is empty holds
( ex b2, b3 being real number st
( b2 in b1 & b3 in b1 & b3 <> b2 ) iff lower_bound b1 < upper_bound b1 )
proof end;

theorem Th26: :: SEQ_4:26
for b1 being Real_Sequence st b1 is convergent holds
abs b1 is convergent
proof end;

theorem Th27: :: SEQ_4:27
for b1 being Real_Sequence st b1 is convergent holds
lim (abs b1) = abs (lim b1)
proof end;

theorem Th28: :: SEQ_4:28
for b1 being Real_Sequence st abs b1 is convergent & lim (abs b1) = 0 holds
( b1 is convergent & lim b1 = 0 )
proof end;

theorem Th29: :: SEQ_4:29
for b1, b2 being Real_Sequence st b1 is subsequence of b2 & b2 is convergent holds
b1 is convergent
proof end;

theorem Th30: :: SEQ_4:30
for b1, b2 being Real_Sequence st b1 is subsequence of b2 & b2 is convergent holds
lim b1 = lim b2
proof end;

theorem Th31: :: SEQ_4:31
for b1, b2 being Real_Sequence st b1 is convergent & ex b3 being Nat st
for b4 being Nat st b3 <= b4 holds
b2 . b4 = b1 . b4 holds
b2 is convergent
proof end;

theorem Th32: :: SEQ_4:32
for b1, b2 being Real_Sequence st b1 is convergent & ex b3 being Nat st
for b4 being Nat st b3 <= b4 holds
b2 . b4 = b1 . b4 holds
lim b1 = lim b2
proof end;

theorem Th33: :: SEQ_4:33
for b1 being Nat
for b2 being Real_Sequence st b2 is convergent holds
( b2 ^\ b1 is convergent & lim (b2 ^\ b1) = lim b2 )
proof end;

theorem Th34: :: SEQ_4:34
canceled;

theorem Th35: :: SEQ_4:35
for b1, b2 being Real_Sequence st b1 is convergent & ex b3 being Nat st b1 = b2 ^\ b3 holds
b2 is convergent
proof end;

theorem Th36: :: SEQ_4:36
for b1, b2 being Real_Sequence st b1 is convergent & ex b3 being Nat st b1 = b2 ^\ b3 holds
lim b2 = lim b1
proof end;

theorem Th37: :: SEQ_4:37
for b1 being Real_Sequence st b1 is convergent & lim b1 <> 0 holds
ex b2 being Nat st b1 ^\ b2 is_not_0
proof end;

theorem Th38: :: SEQ_4:38
for b1 being Real_Sequence st b1 is convergent & lim b1 <> 0 holds
ex b2 being Real_Sequence st
( b2 is subsequence of b1 & b2 is_not_0 )
proof end;

theorem Th39: :: SEQ_4:39
for b1 being Real_Sequence st b1 is constant holds
b1 is convergent
proof end;

registration
cluster constant -> convergent M5( NAT , REAL );
coherence
for b1 being Real_Sequence st b1 is constant holds
b1 is convergent
by Th39;
end;

theorem Th40: :: SEQ_4:40
for b1 being real number
for b2 being Real_Sequence st ( ( b2 is constant & b1 in rng b2 ) or ( b2 is constant & ex b3 being Nat st b2 . b3 = b1 ) ) holds
lim b2 = b1
proof end;

theorem Th41: :: SEQ_4:41
for b1 being Real_Sequence st b1 is constant holds
for b2 being Nat holds lim b1 = b1 . b2 by Th40;

theorem Th42: :: SEQ_4:42
for b1 being Real_Sequence st b1 is convergent & lim b1 <> 0 holds
for b2 being Real_Sequence st b2 is subsequence of b1 & b2 is_not_0 holds
lim (b2 " ) = (lim b1) "
proof end;

theorem Th43: :: SEQ_4:43
for b1 being real number
for b2 being Real_Sequence st 0 < b1 & ( for b3 being Nat holds b2 . b3 = 1 / (b3 + b1) ) holds
b2 is convergent
proof end;

theorem Th44: :: SEQ_4:44
for b1 being real number
for b2 being Real_Sequence st 0 < b1 & ( for b3 being Nat holds b2 . b3 = 1 / (b3 + b1) ) holds
lim b2 = 0
proof end;

theorem Th45: :: SEQ_4:45
for b1 being Real_Sequence st ( for b2 being Nat holds b1 . b2 = 1 / (b2 + 1) ) holds
( b1 is convergent & lim b1 = 0 ) by Th43, Th44;

theorem Th46: :: SEQ_4:46
for b1, b2 being real number
for b3 being Real_Sequence st 0 < b1 & ( for b4 being Nat holds b3 . b4 = b2 / (b4 + b1) ) holds
( b3 is convergent & lim b3 = 0 )
proof end;

theorem Th47: :: SEQ_4:47
for b1 being real number
for b2 being Real_Sequence st 0 < b1 & ( for b3 being Nat holds b2 . b3 = 1 / ((b3 * b3) + b1) ) holds
b2 is convergent
proof end;

theorem Th48: :: SEQ_4:48
for b1 being real number
for b2 being Real_Sequence st 0 < b1 & ( for b3 being Nat holds b2 . b3 = 1 / ((b3 * b3) + b1) ) holds
lim b2 = 0
proof end;

theorem Th49: :: SEQ_4:49
for b1 being Real_Sequence st ( for b2 being Nat holds b1 . b2 = 1 / ((b2 * b2) + 1) ) holds
( b1 is convergent & lim b1 = 0 ) by Th47, Th48;

theorem Th50: :: SEQ_4:50
for b1, b2 being real number
for b3 being Real_Sequence st 0 < b1 & ( for b4 being Nat holds b3 . b4 = b2 / ((b4 * b4) + b1) ) holds
( b3 is convergent & lim b3 = 0 )
proof end;

theorem Th51: :: SEQ_4:51
for b1 being Real_Sequence st b1 is non-decreasing & b1 is bounded_above holds
b1 is convergent
proof end;

theorem Th52: :: SEQ_4:52
for b1 being Real_Sequence st b1 is non-increasing & b1 is bounded_below holds
b1 is convergent
proof end;

theorem Th53: :: SEQ_4:53
for b1 being Real_Sequence st b1 is monotone & b1 is bounded holds
b1 is convergent
proof end;

theorem Th54: :: SEQ_4:54
for b1 being Real_Sequence st b1 is bounded_above & b1 is non-decreasing holds
for b2 being Nat holds b1 . b2 <= lim b1
proof end;

theorem Th55: :: SEQ_4:55
for b1 being Real_Sequence st b1 is bounded_below & b1 is non-increasing holds
for b2 being Nat holds lim b1 <= b1 . b2
proof end;

theorem Th56: :: SEQ_4:56
for b1 being Real_Sequence ex b2 being increasing Seq_of_Nat st b1 * b2 is monotone
proof end;

theorem Th57: :: SEQ_4:57
for b1 being Real_Sequence st b1 is bounded holds
ex b2 being Real_Sequence st
( b2 is subsequence of b1 & b2 is convergent )
proof end;

theorem Th58: :: SEQ_4:58
for b1 being Real_Sequence holds
( b1 is convergent iff for b2 being real number st 0 < b2 holds
ex b3 being Nat st
for b4 being Nat st b3 <= b4 holds
abs ((b1 . b4) - (b1 . b3)) < b2 )
proof end;

theorem Th59: :: SEQ_4:59
for b1, b2 being Real_Sequence st b1 is constant & b2 is convergent holds
( lim (b1 + b2) = (b1 . 0) + (lim b2) & lim (b1 - b2) = (b1 . 0) - (lim b2) & lim (b2 - b1) = (lim b2) - (b1 . 0) & lim (b1 (#) b2) = (b1 . 0) * (lim b2) )
proof end;

theorem Th60: :: SEQ_4:60
for b1 being non empty real-membered set
for b2 being real number st ( for b3 being real number st b3 in b1 holds
b3 >= b2 ) holds
lower_bound b1 >= b2
proof end;

theorem Th61: :: SEQ_4:61
for b1 being real number
for b2 being non empty real-membered set st ( for b3 being real number st b3 in b2 holds
b3 >= b1 ) & ( for b3 being real number st ( for b4 being real number st b4 in b2 holds
b4 >= b3 ) holds
b1 >= b3 ) holds
b1 = lower_bound b2
proof end;

theorem Th62: :: SEQ_4:62
for b1 being non empty real-membered set
for b2, b3 being real number st ( for b4 being real number st b4 in b1 holds
b4 <= b3 ) holds
upper_bound b1 <= b3
proof end;

theorem Th63: :: SEQ_4:63
for b1 being non empty real-membered set
for b2 being real number st ( for b3 being real number st b3 in b1 holds
b3 <= b2 ) & ( for b3 being real number st ( for b4 being real number st b4 in b1 holds
b4 <= b3 ) holds
b2 <= b3 ) holds
b2 = upper_bound b1
proof end;

theorem Th64: :: SEQ_4:64
for b1 being non empty real-membered set
for b2 being real-membered set st b1 c= b2 & b2 is bounded_below holds
lower_bound b2 <= lower_bound b1
proof end;

theorem Th65: :: SEQ_4:65
for b1 being non empty real-membered set
for b2 being real-membered set st b1 c= b2 & b2 is bounded_above holds
upper_bound b1 <= upper_bound b2
proof end;