:: SEQ_4 semantic presentation

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

Lemma2: for b1 being real number holds
not ( 0 < b1 & not 0 < b1 / 3 )
by XREAL_1:224;

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

Lemma4: for b1, b2, b3, b4 being real number holds
( 0 <= b1 & 0 <= b2 & b1 <= b3 & b2 <= b4 implies 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 holds
not ( ( for b3, b4 being real number holds
not ( b3 in b1 & b4 in b2 & not b3 < b4 ) ) & ( for b3 being real number holds
ex b4, b5 being real number st
( b4 in b1 & b5 in b2 & not ( b4 <= b3 & b3 <= b5 ) ) ) )
proof end;

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

theorem Th10: :: SEQ_4:10
for b1 being real number holds
not for b2 being Nat holds not 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 holds
( b2 in a1 implies b2 <= b1 );
attr a1 is bounded_below means :Def2: :: SEQ_4:def 2
ex b1 being real number st
for b2 being real number holds
( b2 in a1 implies 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 holds
( b3 in b1 implies 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 holds
( b3 in b1 implies 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 holds
not ( b3 in b1 & not 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 holds
not ( not b1 is empty & b1 is bounded_above & ( for b2 being real number holds
not ( ( for b3 being real number holds
( b3 in b1 implies b3 <= b2 ) ) & ( for b3 being real number holds
not ( 0 < b3 & ( for b4 being real number holds
not ( 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 holds
( ( for b4 being real number holds
( b4 in b3 implies b4 <= b1 ) ) & ( for b4 being real number holds
not ( 0 < b4 & ( for b5 being real number holds
not ( b5 in b3 & b1 - b4 < b5 ) ) ) ) & ( for b4 being real number holds
( b4 in b3 implies b4 <= b2 ) ) & ( for b4 being real number holds
not ( 0 < b4 & ( for b5 being real number holds
not ( b5 in b3 & b2 - b4 < b5 ) ) ) ) implies b1 = b2 )
proof end;

theorem Th18: :: SEQ_4:18
for b1 being real-membered set holds
not ( not b1 is empty & b1 is bounded_below & ( for b2 being real number holds
not ( ( for b3 being real number holds
( b3 in b1 implies b2 <= b3 ) ) & ( for b3 being real number holds
not ( 0 < b3 & ( for b4 being real number holds
not ( 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 holds
( ( for b4 being real number holds
( b4 in b3 implies b1 <= b4 ) ) & ( for b4 being real number holds
not ( 0 < b4 & ( for b5 being real number holds
not ( b5 in b3 & b5 < b1 + b4 ) ) ) ) & ( for b4 being real number holds
( b4 in b3 implies b2 <= b4 ) ) & ( for b4 being real number holds
not ( 0 < b4 & ( for b5 being real number holds
not ( b5 in b3 & b5 < b2 + b4 ) ) ) ) implies 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 holds
( b1 in a1 implies b1 <= a2 ) ) & ( for b1 being real number holds
not ( 0 < b1 & ( for b2 being real number holds
not ( b2 in a1 & a2 - b1 < b2 ) ) ) ) );
existence
ex b1 being real number st
( ( for b2 being real number holds
( b2 in c1 implies b2 <= b1 ) ) & ( for b2 being real number holds
not ( 0 < b2 & ( for b3 being real number holds
not ( b3 in c1 & b1 - b2 < b3 ) ) ) ) )
by E17, Th16;
uniqueness
for b1, b2 being real number holds
( ( for b3 being real number holds
( b3 in c1 implies b3 <= b1 ) ) & ( for b3 being real number holds
not ( 0 < b3 & ( for b4 being real number holds
not ( b4 in c1 & b1 - b3 < b4 ) ) ) ) & ( for b3 being real number holds
( b3 in c1 implies b3 <= b2 ) ) & ( for b3 being real number holds
not ( 0 < b3 & ( for b4 being real number holds
not ( b4 in c1 & b2 - b3 < b4 ) ) ) ) implies b1 = b2 )
by Th17;
end;

:: deftheorem Def4 defines upper_bound SEQ_4:def 4 :
for b1 being real-membered set holds
( not b1 is empty & b1 is bounded_above implies for b2 being real number holds
( b2 = upper_bound b1 iff ( ( for b3 being real number holds
( b3 in b1 implies b3 <= b2 ) ) & ( for b3 being real number holds
not ( 0 < b3 & ( for b4 being real number holds
not ( 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 holds
( b1 in a1 implies a2 <= b1 ) ) & ( for b1 being real number holds
not ( 0 < b1 & ( for b2 being real number holds
not ( b2 in a1 & b2 < a2 + b1 ) ) ) ) );
existence
ex b1 being real number st
( ( for b2 being real number holds
( b2 in c1 implies b1 <= b2 ) ) & ( for b2 being real number holds
not ( 0 < b2 & ( for b3 being real number holds
not ( b3 in c1 & b3 < b1 + b2 ) ) ) ) )
by E18, Th18;
uniqueness
for b1, b2 being real number holds
( ( for b3 being real number holds
( b3 in c1 implies b1 <= b3 ) ) & ( for b3 being real number holds
not ( 0 < b3 & ( for b4 being real number holds
not ( b4 in c1 & b4 < b1 + b3 ) ) ) ) & ( for b3 being real number holds
( b3 in c1 implies b2 <= b3 ) ) & ( for b3 being real number holds
not ( 0 < b3 & ( for b4 being real number holds
not ( b4 in c1 & b4 < b2 + b3 ) ) ) ) implies b1 = b2 )
by Th19;
end;

:: deftheorem Def5 defines lower_bound SEQ_4:def 5 :
for b1 being real-membered set holds
( not b1 is empty & b1 is bounded_below implies for b2 being real number holds
( b2 = lower_bound b1 iff ( ( for b3 being real number holds
( b3 in b1 implies b2 <= b3 ) ) & ( for b3 being real number holds
not ( 0 < b3 & ( for b4 being real number holds
not ( 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 holds
( b1 is bounded & not b1 is empty implies lower_bound b1 <= upper_bound b1 )
proof end;

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

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

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

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

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

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

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

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

theorem Th33: :: SEQ_4:33
for b1 being Nat
for b2 being Real_Sequence holds
( b2 is convergent implies ( 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 holds
( b1 is convergent & ex b3 being Nat st b1 = b2 ^\ b3 implies b2 is convergent )
proof end;

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

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

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

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

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

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

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

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

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

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

theorem Th45: :: SEQ_4:45
for b1 being Real_Sequence holds
( ( for b2 being Nat holds b1 . b2 = 1 / (b2 + 1) ) implies ( 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 holds
( 0 < b1 & ( for b4 being Nat holds b3 . b4 = b2 / (b4 + b1) ) implies ( b3 is convergent & lim b3 = 0 ) )
proof end;

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

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

theorem Th49: :: SEQ_4:49
for b1 being Real_Sequence holds
( ( for b2 being Nat holds b1 . b2 = 1 / ((b2 * b2) + 1) ) implies ( 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 holds
( 0 < b1 & ( for b4 being Nat holds b3 . b4 = b2 / ((b4 * b4) + b1) ) implies ( b3 is convergent & lim b3 = 0 ) )
proof end;

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

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

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

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

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

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

theorem Th57: :: SEQ_4:57
for b1 being Real_Sequence holds
not ( b1 is bounded & ( for b2 being Real_Sequence holds
not ( 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 holds
not ( 0 < b2 & ( for b3 being Nat holds
ex b4 being Nat st
( b3 <= b4 & not abs ((b1 . b4) - (b1 . b3)) < b2 ) ) ) )
proof end;

theorem Th59: :: SEQ_4:59
for b1, b2 being Real_Sequence holds
( b1 is constant & b2 is convergent implies ( 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 holds
( ( for b3 being real number holds
( b3 in b1 implies b3 >= b2 ) ) implies lower_bound b1 >= b2 )
proof end;

theorem Th61: :: SEQ_4:61
for b1 being real number
for b2 being non empty real-membered set holds
( ( for b3 being real number holds
( b3 in b2 implies b3 >= b1 ) ) & ( for b3 being real number holds
( ( for b4 being real number holds
( b4 in b2 implies b4 >= b3 ) ) implies b1 >= b3 ) ) implies 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 holds
( ( for b4 being real number holds
( b4 in b1 implies b4 <= b3 ) ) implies upper_bound b1 <= b3 )
proof end;

theorem Th63: :: SEQ_4:63
for b1 being non empty real-membered set
for b2 being real number holds
( ( for b3 being real number holds
( b3 in b1 implies b3 <= b2 ) ) & ( for b3 being real number holds
( ( for b4 being real number holds
( b4 in b1 implies b4 <= b3 ) ) implies b2 <= b3 ) ) implies 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 holds
( b1 c= b2 & b2 is bounded_below implies 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 holds
( b1 c= b2 & b2 is bounded_above implies upper_bound b1 <= upper_bound b2 )
proof end;