Journal of Formalized Mathematics
Volume 2, 1990
University of Bialystok
Copyright (c) 1990
Association of Mizar Users
The abstract of the Mizar article:
-
- by
- Jaroslaw Kotowicz
- Received June 18, 1990
- MML identifier: RFUNCT_2
- [
Mizar article,
MML identifier index
]
environ
vocabulary SEQ_1, ORDINAL2, SEQM_3, PARTFUN1, FUNCT_1, RELAT_1, BOOLE,
ARYTM_1, ABSVALUE, SEQ_2, ARYTM, FINSEQ_1, LATTICES, SEQ_4, PARTFUN2,
RCOMP_1, RFUNCT_2;
notation TARSKI, XBOOLE_0, SUBSET_1, ORDINAL1, NUMBERS, XCMPLX_0, XREAL_0,
REAL_1, NAT_1, RELAT_1, FUNCT_1, SEQ_1, SEQ_2, SEQ_4, RELSET_1, ABSVALUE,
PARTFUN1, PARTFUN2, RCOMP_1, RFUNCT_1, SEQM_3;
constructors REAL_1, NAT_1, SEQ_2, SEQM_3, SEQ_4, ABSVALUE, PARTFUN1,
PARTFUN2, RCOMP_1, RFUNCT_1, MEMBERED, XBOOLE_0;
clusters FUNCT_1, RELSET_1, PARTFUN2, XREAL_0, SEQ_1, SEQM_3, MEMBERED,
ZFMISC_1, XBOOLE_0, ORDINAL2;
requirements REAL, NUMERALS, SUBSET, BOOLE, ARITHM;
begin
reserve x,y,X,X1,Y for set;
reserve g,r,r1,r2,p,p1,p2 for Element of REAL;
reserve R for Subset of REAL;
reserve seq,seq1,seq2,seq3 for Real_Sequence;
reserve Ns for increasing Seq_of_Nat;
reserve n,m for Element of NAT;
reserve h,h1,h2 for PartFunc of REAL,REAL;
canceled;
theorem :: RFUNCT_2:2
for F,G be Function, X holds (G|(F.:X))*(F|X) = (G*F)|X;
theorem :: RFUNCT_2:3
for F,G be Function, X,X1 holds (G|X1)*(F|X) = (G*F)|(X /\ (F"X1));
theorem :: RFUNCT_2:4
for F,G be Function,X holds X c= dom (G*F) iff X c= dom F & F.:X c= dom G;
theorem :: RFUNCT_2:5
for F be Function, X holds (F|X).:X=F.:X;
::
:: REAL SEQUENCES
::
definition let seq;
redefine func rng seq -> Subset of REAL;
end;
theorem :: RFUNCT_2:6
seq1=seq2-seq3 iff for n holds seq1.n=seq2.n-seq3.n;
theorem :: RFUNCT_2:7
rng (seq^\n) c= rng seq;
theorem :: RFUNCT_2:8
rng seq c= dom h implies seq.n in dom h;
theorem :: RFUNCT_2:9
x in rng seq iff ex n st x = seq.n;
theorem :: RFUNCT_2:10
seq.n in rng seq;
theorem :: RFUNCT_2:11
seq1 is_subsequence_of seq implies rng seq1 c= rng seq;
theorem :: RFUNCT_2:12
seq1 is_subsequence_of seq & seq is_not_0 implies seq1 is_not_0;
theorem :: RFUNCT_2:13
(seq1 + seq2)*Ns = (seq1*Ns) + (seq2*Ns) &
(seq1 - seq2)*Ns = (seq1*Ns) - (seq2*Ns) &
(seq1 (#) seq2)*Ns = (seq1*Ns) (#) (seq2*Ns);
theorem :: RFUNCT_2:14
(p(#)seq)*Ns = p(#)(seq*Ns);
theorem :: RFUNCT_2:15
(-seq)*Ns = -(seq*Ns) & (abs(seq))*Ns = abs((seq*Ns));
theorem :: RFUNCT_2:16
(seq*Ns)" = (seq")*Ns;
theorem :: RFUNCT_2:17
(seq1/"seq)*Ns = (seq1*Ns)/"(seq*Ns);
theorem :: RFUNCT_2:18
seq is convergent & (for n holds seq.n<=0) implies lim seq <= 0;
theorem :: RFUNCT_2:19
(for n holds seq.n in Y) implies rng seq c= Y;
definition let h,seq;
assume rng seq c= dom h;
func h*seq -> Real_Sequence equals
:: RFUNCT_2:def 1
(h qua Function)*seq;
end;
canceled;
theorem :: RFUNCT_2:21
rng seq c= dom h implies (h*seq).n = h.(seq.n);
theorem :: RFUNCT_2:22
rng seq c= dom h implies (h*seq)^\n=h*(seq^\n);
theorem :: RFUNCT_2:23
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 :: RFUNCT_2:24
for r being real number holds rng seq c= dom h implies (r(#)h)*seq = r(#)
(h*seq);
theorem :: RFUNCT_2:25
rng seq c= dom h implies abs(h*seq) = (abs(h))*seq & -(h*seq) = (-h)*seq;
theorem :: RFUNCT_2:26
rng seq c= dom (h^) implies h*seq is_not_0;
theorem :: RFUNCT_2:27
rng seq c= dom (h^) implies (h^)*seq =(h*seq)";
theorem :: RFUNCT_2:28
rng seq c= dom h implies (h*seq)*Ns = h * (seq*Ns);
theorem :: RFUNCT_2:29
rng seq1 c= dom h & seq2 is_subsequence_of seq1 implies
h*seq2 is_subsequence_of h*seq1;
theorem :: RFUNCT_2:30
h is total implies (h*seq).n = h.(seq.n);
theorem :: RFUNCT_2:31
h is total implies h*(seq^\n) = (h*seq)^\n;
theorem :: RFUNCT_2:32
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 :: RFUNCT_2:33
h is total implies (r(#)h)*seq = r(#)(h*seq);
theorem :: RFUNCT_2:34
rng seq c= dom (h|X) implies (h|X)*seq = h*seq;
theorem :: RFUNCT_2:35
rng seq c= dom (h|X) & (rng seq c= dom (h|Y) or X c= Y) implies
(h|X)*seq = (h|Y)*seq;
theorem :: RFUNCT_2:36
rng seq c= dom (h|X) implies abs((h|X)*seq) = ((abs(h))|X)*seq;
theorem :: RFUNCT_2:37
rng seq c= dom (h|X) & h"{0}={} implies ((h^)|X)*seq = ((h|X)*seq)";
theorem :: RFUNCT_2:38
rng seq c= dom h implies h.:(rng seq) = rng (h*seq);
theorem :: RFUNCT_2:39
rng seq c= dom (h2*h1) implies h2*(h1*seq) = h2*h1*seq;
::
:: MONOTONE FUNCTIONS
::
definition let Z be set;
let f be one-to-one Function;
cluster f|Z -> one-to-one;
end;
theorem :: RFUNCT_2:40
for h being one-to-one Function holds (h|X)" = (h")|(h.:X);
theorem :: RFUNCT_2:41
rng h is bounded & upper_bound (rng h) = lower_bound (rng h) implies
h is_constant_on dom h;
theorem :: RFUNCT_2:42
Y c= dom h & h.:Y is bounded & upper_bound (h.:Y) = lower_bound (h.:Y)
implies h is_constant_on Y;
definition let h,Y;
pred h is_increasing_on Y means
:: RFUNCT_2:def 2
for r1,r2 st r1 in Y /\ dom h & r2 in Y /\ dom h & r1<r2 holds h.r1 < h.r2;
pred h is_decreasing_on Y means
:: RFUNCT_2:def 3
for r1,r2 st r1 in Y /\ dom h & r2 in Y /\ dom h & r1<r2 holds h.r2 < h.r1;
pred h is_non_decreasing_on Y means
:: RFUNCT_2:def 4
for r1,r2 st r1 in Y /\ dom h & r2 in Y /\ dom h & r1<r2 holds h.r1 <= h.r2;
pred h is_non_increasing_on Y means
:: RFUNCT_2:def 5
for r1,r2 st r1 in Y /\ dom h & r2 in Y /\ dom h & r1<r2 holds h.r2 <= h.r1;
end;
definition let h,Y;
pred h is_monotone_on Y means
:: RFUNCT_2:def 6
h is_non_decreasing_on Y or h is_non_increasing_on Y;
end;
canceled 5;
theorem :: RFUNCT_2:48
h is_non_decreasing_on Y iff for r1,r2 st r1 in Y /\ dom h & r2 in Y /\ dom h &
r1<=r2 holds h.r1 <= h.r2;
theorem :: RFUNCT_2:49
h is_non_increasing_on Y iff for r1,r2 st r1 in Y /\ dom h & r2 in Y /\ dom h &
r1<=r2 holds h.r2 <= h.r1;
theorem :: RFUNCT_2:50
h is_increasing_on X iff h|X is_increasing_on X;
theorem :: RFUNCT_2:51
h is_decreasing_on X iff h|X is_decreasing_on X;
theorem :: RFUNCT_2:52
h is_non_decreasing_on X iff h|X is_non_decreasing_on X;
theorem :: RFUNCT_2:53
h is_non_increasing_on X iff h|X is_non_increasing_on X;
theorem :: RFUNCT_2:54
Y misses dom h implies h is_increasing_on Y & h is_decreasing_on Y &
h is_non_decreasing_on Y & h is_non_increasing_on Y &
h is_monotone_on Y;
theorem :: RFUNCT_2:55
h is_increasing_on Y implies h is_non_decreasing_on Y;
theorem :: RFUNCT_2:56
h is_decreasing_on Y implies h is_non_increasing_on Y;
theorem :: RFUNCT_2:57
h is_constant_on Y implies h is_non_decreasing_on Y;
theorem :: RFUNCT_2:58
h is_constant_on Y implies h is_non_increasing_on Y;
theorem :: RFUNCT_2:59
h is_non_decreasing_on Y & h is_non_increasing_on X implies
h is_constant_on (Y /\ X);
theorem :: RFUNCT_2:60
X c= Y & h is_increasing_on Y implies h is_increasing_on X;
theorem :: RFUNCT_2:61
X c= Y & h is_decreasing_on Y implies h is_decreasing_on X;
theorem :: RFUNCT_2:62
X c= Y & h is_non_decreasing_on Y implies h is_non_decreasing_on X;
theorem :: RFUNCT_2:63
X c= Y & h is_non_increasing_on Y implies h is_non_increasing_on X;
theorem :: RFUNCT_2:64
(h is_increasing_on Y & 0<r implies r(#)h is_increasing_on Y) &
(r = 0 implies r(#)h is_constant_on Y) &
(h is_increasing_on Y & r<0 implies r(#)h is_decreasing_on Y);
theorem :: RFUNCT_2:65
(h is_decreasing_on Y & 0<r implies r(#)h is_decreasing_on Y) &
(h is_decreasing_on Y & r<0 implies r(#)h is_increasing_on Y);
theorem :: RFUNCT_2:66
(h is_non_decreasing_on Y & 0<=r implies r(#)h is_non_decreasing_on Y) &
(h is_non_decreasing_on Y & r<=0 implies r(#)h is_non_increasing_on Y);
theorem :: RFUNCT_2:67
(h is_non_increasing_on Y & 0<=r implies r(#)h is_non_increasing_on Y) &
(h is_non_increasing_on Y & r<=0 implies r(#)h is_non_decreasing_on Y);
theorem :: RFUNCT_2:68
r in X /\ Y /\ dom (h1+h2) implies r in X /\ dom h1 & r in Y /\ dom h2;
theorem :: RFUNCT_2:69
(h1 is_increasing_on X & h2 is_increasing_on Y implies
h1+h2 is_increasing_on (X /\ Y)) &
(h1 is_decreasing_on X & h2 is_decreasing_on Y implies
h1+h2 is_decreasing_on (X /\ Y)) &
(h1 is_non_decreasing_on X & h2 is_non_decreasing_on Y implies
h1+h2 is_non_decreasing_on X /\ Y) &
(h1 is_non_increasing_on X & h2 is_non_increasing_on Y implies
h1+h2 is_non_increasing_on X /\ Y);
theorem :: RFUNCT_2:70
(h1 is_increasing_on X & h2 is_constant_on Y implies
h1+h2 is_increasing_on X /\ Y) &
(h1 is_decreasing_on X & h2 is_constant_on Y implies
h1+h2 is_decreasing_on X /\ Y);
theorem :: RFUNCT_2:71
h1 is_increasing_on X & h2 is_non_decreasing_on Y implies
h1 + h2 is_increasing_on X /\ Y;
theorem :: RFUNCT_2:72
h1 is_non_increasing_on X & h2 is_constant_on Y implies
h1 + h2 is_non_increasing_on X /\ Y;
theorem :: RFUNCT_2:73
h1 is_decreasing_on X & h2 is_non_increasing_on Y implies
h1 + h2 is_decreasing_on X /\ Y;
theorem :: RFUNCT_2:74
h1 is_non_decreasing_on X & h2 is_constant_on Y implies
h1 + h2 is_non_decreasing_on X /\ Y;
theorem :: RFUNCT_2:75
h is_increasing_on {x};
theorem :: RFUNCT_2:76
h is_decreasing_on {x};
theorem :: RFUNCT_2:77
h is_non_decreasing_on {x};
theorem :: RFUNCT_2:78
h is_non_increasing_on {x};
theorem :: RFUNCT_2:79
id R is_increasing_on R;
theorem :: RFUNCT_2:80
h is_increasing_on X implies -h is_decreasing_on X;
theorem :: RFUNCT_2:81
h is_non_decreasing_on X implies -h is_non_increasing_on X;
theorem :: RFUNCT_2:82
(h is_increasing_on [.p,g.] or h is_decreasing_on [.p,g.])
implies h|[.p,g.] is one-to-one;
theorem :: RFUNCT_2:83
for h being one-to-one PartFunc of REAL, REAL st h is_increasing_on [.p,g.]
holds (h|[.p,g.])" is_increasing_on h.:[.p,g.];
theorem :: RFUNCT_2:84
for h being one-to-one PartFunc of REAL, REAL st h is_decreasing_on [.p,g.]
holds (h|[.p,g.])" is_decreasing_on h.:[.p,g.];
Back to top