:: Property of Complex Sequence and Continuity of Complex Function
:: by Takashi Mitsuishi , Katsumi Wasaki and Yasunari Shidama
::
:: Received December 7, 1999
:: Copyright (c) 1999-2017 Association of Mizar Users
:: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland).
:: This code can be distributed under the GNU General Public Licence
:: version 3.0 or later, or the Creative Commons Attribution-ShareAlike
:: License version 3.0 or later, subject to the binding interpretation
:: detailed in file COPYING.interpretation.
:: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these
:: licenses, or see http://www.gnu.org/licenses/gpl.html and
:: http://creativecommons.org/licenses/by-sa/3.0/.
environ
vocabularies NUMBERS, SUBSET_1, COMSEQ_1, PARTFUN1, REAL_1, ORDINAL2, NAT_1,
SEQ_1, FCONT_1, RELAT_1, TARSKI, SEQ_2, FUNCT_2, ARYTM_1, FUNCT_1,
ARYTM_3, VALUED_1, COMPLEX1, XBOOLE_0, ORDINAL4, VALUED_0, CARD_1,
XXREAL_0, XREAL_0, RCOMP_1, CFCONT_1, XCMPLX_0;
notations TARSKI, XBOOLE_0, SUBSET_1, FUNCT_1, ORDINAL1, NUMBERS, XCMPLX_0,
XREAL_0, COMPLEX1, REAL_1, NAT_1, PARTFUN1, FUNCT_2, SEQ_1, RELSET_1,
VALUED_0, VALUED_1, CFUNCT_1, COMSEQ_1, COMSEQ_2, COMSEQ_3, XXREAL_0,
RECDEF_1;
constructors PARTFUN1, XXREAL_0, REAL_1, NAT_1, COMSEQ_2, CFUNCT_1, COMSEQ_3,
RECDEF_1, SEQM_3, VALUED_1, RELSET_1;
registrations XBOOLE_0, FUNCT_1, ORDINAL1, RELSET_1, FUNCT_2, NUMBERS,
XREAL_0, NAT_1, MEMBERED, VALUED_0, VALUED_1, COMSEQ_2, XCMPLX_0;
requirements REAL, NUMERALS, SUBSET, BOOLE, ARITHM;
begin
reserve n,n1,m,m1,k for Nat;
reserve x,X,X1 for set;
reserve g,g1,g2,t,x0,x1,x2 for Complex;
reserve s1,s2,q1,seq,seq1,seq2,seq3 for Complex_Sequence;
reserve Y for Subset of COMPLEX;
reserve f,f1,f2,h,h1,h2 for PartFunc of COMPLEX,COMPLEX;
reserve p,r,s for Real;
reserve Ns,Nseq for increasing sequence of NAT;
::
:: COMPLEX SEQUENCE
::
definition
let f,x0;
pred f is_continuous_in x0 means
:: CFCONT_1:def 1
x0 in dom f & for s1 st rng s1 c=
dom f & s1 is convergent & lim s1 = x0 holds f/*s1 is convergent & f/.x0 = lim
(f/*s1);
end;
theorem :: CFCONT_1:1
seq1=seq2-seq3 iff for n holds seq1.n=seq2.n-seq3.n;
theorem :: CFCONT_1:2
(seq1 + seq2)*Ns = (seq1*Ns) + (seq2*Ns) & (seq1 - seq2)*Ns = (
seq1*Ns) - (seq2*Ns) & (seq1 (#) seq2)*Ns = (seq1*Ns) (#) (seq2*Ns);
theorem :: CFCONT_1:3
(g(#)seq)*Ns = g(#)(seq*Ns);
theorem :: CFCONT_1:4
(-seq)*Ns = -(seq*Ns) & (|.seq.|)*Ns = |.(seq*Ns).|;
theorem :: CFCONT_1:5
(seq*Ns)" = (seq")*Ns;
theorem :: CFCONT_1:6
(seq1/"seq)*Ns = (seq1*Ns)/"(seq*Ns);
theorem :: CFCONT_1:7
rng seq c= dom h1 /\ dom h2 implies (h1+h2)/*seq=h1/*seq+h2/*seq
& (h1-h2)/*seq=h1/*seq-h2/*seq & (h1(#)h2)/*seq=(h1/*seq)(#)(h2/*seq);
theorem :: CFCONT_1:8
rng seq c= dom h implies (g(#)h)/*seq = g(#)(h/*seq);
theorem :: CFCONT_1:9
rng seq c= dom h implies -(h/*seq) = (-h)/*seq;
theorem :: CFCONT_1:10
rng seq c= dom (h^) implies h/*seq is non-zero;
theorem :: CFCONT_1:11
rng seq c= dom (h^) implies (h^)/*seq =(h/*seq)";
theorem :: CFCONT_1:12
rng seq c= dom h implies Re ( (h/*seq)*Ns ) = Re (h/*(seq*Ns));
theorem :: CFCONT_1:13
rng seq c= dom h implies Im ( (h/*seq)*Ns ) = Im (h/*(seq*Ns));
theorem :: CFCONT_1:14
h1 is total & h2 is total implies (h1+h2)/*seq = h1/*seq + h2/*seq & (
h1-h2)/*seq = h1/*seq - h2/*seq & (h1(#)h2)/*seq = (h1/*seq) (#) (h2/*seq);
theorem :: CFCONT_1:15
h is total implies (g(#)h)/*seq = g(#)(h/*seq);
theorem :: CFCONT_1:16
rng seq c= dom (h|X) & h"{0}={} implies ((h^)|X)/*seq = ((h|X)/*seq)";
theorem :: CFCONT_1:17
seq1 is subsequence of seq & seq is convergent implies seq1 is convergent;
theorem :: CFCONT_1:18
seq1 is subsequence of seq & seq is convergent implies lim seq1= lim seq;
theorem :: CFCONT_1:19
seq is convergent & (ex k st for n st k<=n holds seq1.n=seq.n)
implies seq1 is convergent;
theorem :: CFCONT_1:20
seq is convergent & (ex k st for n st k<=n holds seq1.n=seq.n) implies
lim seq=lim seq1;
theorem :: CFCONT_1:21
seq is convergent implies (seq ^\k) is convergent & lim (seq ^\k)=lim
seq;
theorem :: CFCONT_1:22
seq is convergent & (ex k st seq=seq1 ^\k) implies seq1 is convergent;
theorem :: CFCONT_1:23
seq is convergent & (ex k st seq=seq1 ^\k) implies lim seq1 =lim seq;
theorem :: CFCONT_1:24
seq is convergent & lim seq<>0 implies ex k st (seq ^\k) is non-zero;
theorem :: CFCONT_1:25
seq is convergent & lim seq<>0 implies ex seq1 st seq1 is subsequence
of seq & seq1 is non-zero;
theorem :: CFCONT_1:26
seq is constant implies seq is convergent;
theorem :: CFCONT_1:27
(seq is constant & g in rng seq or seq is constant & ex n st seq
.n=g ) implies lim seq=g;
theorem :: CFCONT_1:28
seq is constant implies for n holds lim seq=seq.n;
theorem :: CFCONT_1:29
seq is convergent & lim seq<>0 implies for seq1 st seq1 is subsequence
of seq & seq1 is non-zero holds lim (seq1")=(lim seq)";
theorem :: CFCONT_1:30
seq is constant & seq1 is convergent implies lim (seq+seq1) =(seq.0) +
lim seq1 & lim (seq-seq1) =(seq.0) - lim seq1 & lim (seq1-seq) =(lim seq1) -seq
.0 & lim (seq(#)seq1) =(seq.0) * (lim seq1);
scheme :: CFCONT_1:sch 1
CompSeqChoice { P[object,object] }: ex s1 st for n holds P[n,s1.n]
provided
for n ex g st P[n,g];
begin
theorem :: CFCONT_1:31
f is_continuous_in x0 iff x0 in dom f & for s1 st rng s1 c= dom f & s1
is convergent & lim s1=x0 & (for n holds s1.n<>x0) holds f/*s1 is convergent &
f/.x0=lim(f/*s1);
theorem :: CFCONT_1:32
f is_continuous_in x0 iff x0 in dom f & for r st 00 implies f^ is_continuous_in x0;
theorem :: CFCONT_1:37
f1 is_continuous_in x0 & f1/.x0<>0 & f2 is_continuous_in x0 implies f2
/f1 is_continuous_in x0;
definition
let f,X;
pred f is_continuous_on X means
:: CFCONT_1:def 2
X c= dom f & for x0 st x0 in X holds f|X is_continuous_in x0;
end;
theorem :: CFCONT_1:38
for X,f holds f is_continuous_on X iff X c= dom f & for s1 st
rng s1 c= X & s1 is convergent & lim s1 in X holds f/*s1 is convergent & f/.(
lim s1) = lim (f/*s1);
theorem :: CFCONT_1:39
f is_continuous_on X iff X c= dom f & for x0,r st x0 in X & 0