Journal of Formalized Mathematics
Volume 5, 1993
University of Bialystok
Copyright (c) 1993 Association of Mizar Users

The abstract of the Mizar article:

Properties of Partial Functions from a Domain to the Set of Real Numbers

by
Jaroslaw Kotowicz, and
Yuji Sakai

Received March 15, 1993

MML identifier: RFUNCT_3
[ Mizar article, MML identifier index ]


environ

 vocabulary SQUARE_1, ARYTM, ARYTM_1, ABSVALUE, FINSEQ_1, RELAT_1, FUNCT_1,
      BOOLE, PARTFUN1, ARYTM_3, SEQ_1, RFINSEQ, CARD_1, FUNCOP_1, BINOP_1,
      SUBSET_1, SETWISEO, RLVECT_1, FUNCT_3, TDGROUP, LIMFUNC1, FINSET_1,
      RCOMP_1, PROB_1, FINSEQ_2, RVSUM_1, VECTSP_1, RFUNCT_3;
 notation TARSKI, XBOOLE_0, SUBSET_1, ORDINAL1, NUMBERS, XCMPLX_0, XREAL_0,
      RELAT_1, FUNCT_1, FINSEQ_1, BINOP_1, CARD_1, REAL_1, NAT_1, ABSVALUE,
      FUNCOP_1, SETWISEO, FINSEQ_2, SQUARE_1, RELSET_1, PARTFUN1, FINSEQOP,
      SEQ_1, RFUNCT_1, FINSEQ_4, SETWOP_2, FINSET_1, RVSUM_1, RCOMP_1,
      PARTFUN2, LIMFUNC1, TOPREAL1, RFINSEQ;
 constructors MONOID_1, PROB_1, REAL_1, NAT_1, SETWISEO, FINSEQOP, RFUNCT_1,
      RCOMP_1, PARTFUN2, LIMFUNC1, TOPREAL1, RFINSEQ, FINSOP_1, FINSEQ_4,
      SEQ_1, SEQ_4, MEMBERED, XBOOLE_0;
 clusters FINSET_1, RFINSEQ, PRELAMB, RELSET_1, FINSEQ_2, XREAL_0, PARTFUN1,
      MONOID_1, NAT_1, MEMBERED, ZFMISC_1, XBOOLE_0, ORDINAL2, FINSEQ_1;
 requirements REAL, NUMERALS, BOOLE, SUBSET, ARITHM;


begin

reserve n,m for Nat,
        r,s for Real,
        x,y for set;
::
::  Nonnegative and Nonpositive Part of a Real Number
::

definition let n,m be Nat;
redefine func min(n,m)->Nat;
end;

definition let r be real number;
func max+ (r) -> Real equals
:: RFUNCT_3:def 1
 max(r,0);
func max- (r) -> Real equals
:: RFUNCT_3:def 2
 max(-r,0);
end;

theorem :: RFUNCT_3:1
for r be real number holds r = max+(r) - max-(r);

theorem :: RFUNCT_3:2
for r be real number holds abs(r) = max+(r) + max-(r);

theorem :: RFUNCT_3:3
for r be real number holds 2*max+(r) = r + abs(r);

theorem :: RFUNCT_3:4
for r,s be real number st 0<=r holds max+(r*s) = r*(max+ s);

theorem :: RFUNCT_3:5
for r,s be real number holds max+(r+s) <= max+(r) + max+(s);

theorem :: RFUNCT_3:6
  for r be real number holds 0 <= max+(r) & 0 <=max-(r);

theorem :: RFUNCT_3:7
for r1,r2, s1,s2 be real number st r1<=s1 & r2<=s2 holds
 max(r1,r2) <= max(s1,s2);

begin
::
:: Partial Functions from a Domain to the Set of Real Numbers
::

theorem :: RFUNCT_3:8
for D be non empty set, F be PartFunc of D,REAL, r,s be real number st
 r <> 0 holds F"{s/r} = (r(#)F)"{s};

theorem :: RFUNCT_3:9
for D be non empty set, F be PartFunc of D,REAL holds (0(#)F)"{0} = dom F;

theorem :: RFUNCT_3:10
for D be non empty set, F be PartFunc of D,REAL, r be Real st 0<r holds
 abs(F)"{r} = F"{-r,r};

theorem :: RFUNCT_3:11
for D be non empty set, F be PartFunc of D,REAL holds abs(F)"{0} = F"{0};

theorem :: RFUNCT_3:12
for D be non empty set, F be PartFunc of D,REAL, r be Real st r<0 holds
 abs(F)"{r} = {};

theorem :: RFUNCT_3:13
for D,C be non empty set, F be PartFunc of D,REAL, G be PartFunc of C,REAL,
 r be Real st r <> 0 holds
      F,G are_fiberwise_equipotent iff r(#)F, r(#)G are_fiberwise_equipotent;

theorem :: RFUNCT_3:14
  for D,C be non empty set, F be PartFunc of D,REAL, G be PartFunc of C,REAL
  holds F,G are_fiberwise_equipotent iff -F, -G are_fiberwise_equipotent;

theorem :: RFUNCT_3:15
  for D,C be non empty set, F be PartFunc of D,REAL, G be PartFunc of C,REAL
 st F,G are_fiberwise_equipotent holds abs(F), abs(G) are_fiberwise_equipotent;

definition let X,Y be set;
mode PartFunc-set of X,Y means
:: RFUNCT_3:def 3
for x being Element of it holds x is PartFunc of X,Y;
end;

definition let X,Y be set;
 cluster non empty PartFunc-set of X,Y;
end;

definition let X,Y be set;
 mode PFUNC_DOMAIN of X,Y is non empty PartFunc-set of X,Y;
end;

definition let X,Y be set;
redefine func PFuncs(X,Y) -> PartFunc-set of X,Y;
 let P be non empty PartFunc-set of X,Y;
  mode Element of P -> PartFunc of X,Y;
end;

definition let D,C be non empty set,
               X be Subset of D,
               c be Element of C;
redefine func X --> c -> Element of PFuncs(D,C);
end;

definition let D be non empty set,
               F1,F2 be Element of PFuncs(D,REAL);
redefine func F1+F2 -> Element of PFuncs(D,REAL);
 func F1-F2 -> Element of PFuncs(D,REAL);
 func F1(#)F2 -> Element of PFuncs(D,REAL);
 func F1/F2 -> Element of PFuncs(D,REAL);
end;

definition let D be non empty set,
               F be Element of PFuncs(D,REAL);
redefine func abs(F) -> Element of PFuncs(D,REAL);
 func - F -> Element of PFuncs(D,REAL);
 func F^ -> Element of PFuncs(D,REAL);
end;

definition let D be non empty set,
               F be Element of PFuncs(D,REAL),
               r be real number;
redefine func r(#)F -> Element of PFuncs(D,REAL);
end;

definition let D be non empty set;
func addpfunc(D) -> BinOp of PFuncs(D,REAL) means
:: RFUNCT_3:def 4
for F1,F2 be Element of PFuncs(D,REAL) holds it.(F1,F2) = F1 + F2;
end;

theorem :: RFUNCT_3:16
for D be non empty set holds addpfunc(D) is commutative;

theorem :: RFUNCT_3:17
for D be non empty set holds addpfunc(D) is associative;

theorem :: RFUNCT_3:18
for D be non empty set holds
  [#](D) --> (0 qua Real) is_a_unity_wrt addpfunc(D);

theorem :: RFUNCT_3:19
for D be non empty set holds
  the_unity_wrt addpfunc(D) = [#](D) --> (0 qua Real);

theorem :: RFUNCT_3:20
for D be non empty set holds addpfunc(D) has_a_unity;

definition let D be non empty set,
               f be FinSequence of PFuncs(D,REAL);
func Sum(f) -> Element of PFuncs(D,REAL) equals
:: RFUNCT_3:def 5
 (addpfunc(D)) $$ f;
end;

theorem :: RFUNCT_3:21
for D be non empty set holds Sum(<*> PFuncs(D,REAL) ) = [#](D)-->(0 qua Real);

theorem :: RFUNCT_3:22
for D be non empty set, G be Element of PFuncs(D,REAL) holds Sum <*G*> = G;

theorem :: RFUNCT_3:23
for D be non empty set, f be FinSequence of PFuncs(D,REAL),
   G be Element of PFuncs(D,REAL) holds Sum(f^<*G*>) = Sum f + G;

theorem :: RFUNCT_3:24
for D be non empty set, f1,f2 be FinSequence of PFuncs(D,REAL) holds
  Sum(f1^f2) = Sum f1 + Sum f2;

theorem :: RFUNCT_3:25
  for D be non empty set, f be FinSequence of PFuncs(D,REAL),
   G be Element of PFuncs(D,REAL) holds Sum(<*G*>^f) = G + Sum f;

theorem :: RFUNCT_3:26
for D be non empty set, G1,G2 be Element of PFuncs(D,REAL) holds
   Sum<*G1,G2*> = G1 + G2;

theorem :: RFUNCT_3:27
  for D be non empty set, G1,G2,G3 be Element of PFuncs(D,REAL) holds
   Sum<*G1,G2,G3*> = G1 + G2 + G3;

theorem :: RFUNCT_3:28
  for D be non empty set, f,g be FinSequence of PFuncs(D,REAL)
  st f,g are_fiberwise_equipotent holds Sum f = Sum g;

definition let D be non empty set,
               f be FinSequence;
func CHI(f,D) -> FinSequence of PFuncs(D,REAL) means
:: RFUNCT_3:def 6
len it = len f & for n st n in dom it holds it.n = chi(f.n,D);
end;

definition let D be non empty set,
               f be FinSequence of PFuncs(D,REAL),
               R be FinSequence of REAL;
func R (#) f -> FinSequence of PFuncs(D,REAL) means
:: RFUNCT_3:def 7
len it = min(len R,len f) &
for n st n in dom it
 for F be PartFunc of D,REAL, r st r = R.n & F = f.n holds it.n = r(#)F;
end;

definition let D be non empty set,
               f be FinSequence of PFuncs(D,REAL),
               d be Element of D;
func f#d -> FinSequence of REAL means
:: RFUNCT_3:def 8
len it = len f & for n be Nat, G be Element of PFuncs(D,REAL) st
                          n in dom it & f.n = G holds it.n = G.d;
end;

definition let D,C be non empty set,
               f be FinSequence of PFuncs(D,C),
               d be Element of D;
pred d is_common_for_dom f means
:: RFUNCT_3:def 9
for G be Element of PFuncs(D,C), n be Nat
  st n in dom f & f.n = G holds d in dom G;
end;

theorem :: RFUNCT_3:29
for D,C be non empty set, f be FinSequence of PFuncs(D,C), d be Element of D,
 n be Nat st d is_common_for_dom f & n <> 0 holds d is_common_for_dom f|n;

theorem :: RFUNCT_3:30
  for D,C be non empty set, f be FinSequence of PFuncs(D,C), d be Element of D,
  n be Nat st d is_common_for_dom f holds d is_common_for_dom f /^ n;

theorem :: RFUNCT_3:31
for D be non empty set, d be Element of D, f be FinSequence of PFuncs(D,REAL)
  st len f <> 0 holds d is_common_for_dom f iff d in dom Sum(f);

theorem :: RFUNCT_3:32
for D be non empty set, f be FinSequence of PFuncs(D,REAL), d be Element of D,
    n be Nat holds (f|n)#d = (f#d)|n;

theorem :: RFUNCT_3:33
for D be non empty set, f be FinSequence, d be Element of D
  holds d is_common_for_dom CHI(f,D);

theorem :: RFUNCT_3:34
for D be non empty set, d be Element of D, f be FinSequence of PFuncs(D,REAL),
 R be FinSequence of REAL
 st d is_common_for_dom f holds d is_common_for_dom R(#)f;

theorem :: RFUNCT_3:35
  for D be non empty set, f be FinSequence, R be FinSequence of REAL,
  d be Element of D holds d is_common_for_dom R(#)CHI(f,D);

theorem :: RFUNCT_3:36
  for D be non empty set, d be Element of D, f be FinSequence of PFuncs(D,REAL)
  st d is_common_for_dom f holds (Sum(f)).d = Sum (f#d);

definition let D be non empty set,
               F be PartFunc of D,REAL;
func max+(F) -> PartFunc of D,REAL means
:: RFUNCT_3:def 10
dom it = dom F & for d be Element of D st d in dom it holds it.d = max+(F.d);
func max-(F) -> PartFunc of D,REAL means
:: RFUNCT_3:def 11
dom it = dom F & for d be Element of D st d in dom it holds it.d = max-(F.d);
end;

theorem :: RFUNCT_3:37
  for D be non empty set, F be PartFunc of D,REAL holds
  F = max+(F) - max-(F) & abs(F) = max+(F) + max-(F) & 2 (#)
 max+(F) = F + abs(F);

theorem :: RFUNCT_3:38
for D be non empty set, F be PartFunc of D,REAL, r be Real
         st 0<r holds F"{r} = max+(F)"{r};

theorem :: RFUNCT_3:39
for D be non empty set, F be PartFunc of D,REAL
    holds F"(left_closed_halfline(0)) = max+(F)"{0};

theorem :: RFUNCT_3:40
for D be non empty set, F be PartFunc of D,REAL, d be Element of D
        st d in dom F holds 0<=(max+ F).d;

theorem :: RFUNCT_3:41
for D be non empty set, F be PartFunc of D,REAL, r be Real
         st 0<r holds F"{-r} = max-(F)"{r};

theorem :: RFUNCT_3:42
for D be non empty set, F be PartFunc of D,REAL
    holds F"(right_closed_halfline(0)) = max-(F)"{0};

theorem :: RFUNCT_3:43
for D be non empty set, F be PartFunc of D,REAL, d be Element of D
        st d in dom F holds 0<=(max- F).d;

theorem :: RFUNCT_3:44
  for D,C be non empty set, F be PartFunc of D,REAL, G be PartFunc of C,REAL
  st F,G are_fiberwise_equipotent holds
     max+(F), max+(G) are_fiberwise_equipotent;

theorem :: RFUNCT_3:45
  for D,C be non empty set, F be PartFunc of D,REAL, G be PartFunc of C,REAL
  st F,G are_fiberwise_equipotent holds
    max-(F), max-(G) are_fiberwise_equipotent;

definition let A,B be set;
 cluster finite PartFunc of A,B;
end;

definition let D be non empty set,
               F be finite PartFunc of D,REAL;
 cluster max+(F) -> finite;
 cluster max-(F) -> finite;
end;

theorem :: RFUNCT_3:46
  for D,C be non empty set,
    F be finite PartFunc of D,REAL, G be finite PartFunc of C,REAL
 st
 max+ F, max+ G are_fiberwise_equipotent &
 max- F, max- G are_fiberwise_equipotent holds F, G are_fiberwise_equipotent;

theorem :: RFUNCT_3:47
for D be non empty set, F be PartFunc of D,REAL, X be set
  holds (max+ F)|X = max+ (F|X);

theorem :: RFUNCT_3:48
  for D be non empty set, F be PartFunc of D,REAL, X be set
  holds (max- F)|X = max- (F|X);

theorem :: RFUNCT_3:49
for D be non empty set, F be PartFunc of D,REAL
 st (for d be Element of D st d in dom F holds F.d>=0) holds max+ F = F;

theorem :: RFUNCT_3:50
  for D be non empty set, F be PartFunc of D,REAL
 st (for d be Element of D st d in dom F holds F.d<=0) holds max- F = -F;

definition let D be non empty set,
               F be PartFunc of D,REAL,
               r be Real;
func F - r -> PartFunc of D,REAL means
:: RFUNCT_3:def 12
dom it = dom F &
for d be Element of D st d in dom it holds it.d = F.d - r;
end;

theorem :: RFUNCT_3:51
for D be non empty set, F be PartFunc of D,REAL holds F - 0 = F;

theorem :: RFUNCT_3:52
  for D be non empty set, F be PartFunc of D,REAL, r be Real, X be set holds
  (F|X) - r = (F-r)| X;

theorem :: RFUNCT_3:53
for D be non empty set, F be PartFunc of D,REAL, r,s be Real holds
  F"{s+r} = (F-r)"{s};

theorem :: RFUNCT_3:54
  for D,C be non empty set, F be PartFunc of D,REAL, G be PartFunc of C,REAL,
    r be Real holds
  F, G are_fiberwise_equipotent iff F-r ,G-r are_fiberwise_equipotent;

definition let F be PartFunc of REAL,REAL,
               X be set;
pred F is_convex_on X means
:: RFUNCT_3:def 13
 X c= dom F &
 for p be Real st 0<=p & p<=1 holds
  for r,s be Real st r in X & s in X & p*r + (1-p)*s in X holds
     F.(p*r + (1-p)*s) <= p*F.r + (1-p)*F.s;
end;

theorem :: RFUNCT_3:55
for a,b be Real, F be PartFunc of REAL,REAL holds
  F is_convex_on [.a,b.] iff
 [.a,b.] c= dom F & for p be Real st 0<=p & p<=1 holds
  for r,s be Real st r in [.a,b.] & s in [.a,b.] holds
     F.(p*r + (1-p)*s) <= p*F.r + (1-p)*F.s;

theorem :: RFUNCT_3:56
  for a,b be Real, F be PartFunc of REAL,REAL holds
  F is_convex_on [.a,b.] iff
  [.a,b.] c= dom F &
  for x1,x2,x3 be Real st x1 in [.a,b.] & x2 in [.a,b.] & x3 in [.a,b.] &
    x1<x2 & x2<x3 holds (F.x1-F.x2)/(x1-x2)<=(F.x2-F.x3)/(x2-x3);

theorem :: RFUNCT_3:57
  for F be PartFunc of REAL,REAL, X,Y be set st F is_convex_on X & Y c= X holds
 F is_convex_on Y;

theorem :: RFUNCT_3:58
  for F be PartFunc of REAL,REAL, X be set, r be Real holds
    F is_convex_on X iff F-r is_convex_on X;

theorem :: RFUNCT_3:59
  for F be PartFunc of REAL,REAL, X be set, r be Real st 0<r holds
        F is_convex_on X iff r(#)F is_convex_on X;

theorem :: RFUNCT_3:60
  for F be PartFunc of REAL,REAL, X be set st X c= dom F holds 0(#)
F is_convex_on X;

theorem :: RFUNCT_3:61
  for F,G be PartFunc of REAL,REAL, X be set st
 F is_convex_on X & G is_convex_on X holds F+G is_convex_on X;

theorem :: RFUNCT_3:62
for F be PartFunc of REAL,REAL, X be set, r be Real st
 F is_convex_on X holds max+(F-r) is_convex_on X;

theorem :: RFUNCT_3:63
  for F be PartFunc of REAL,REAL, X be set st F is_convex_on X
  holds max+ F is_convex_on X;

theorem :: RFUNCT_3:64
id [#](REAL) is_convex_on REAL;

theorem :: RFUNCT_3:65
  for r be Real holds max+(id [#](REAL) - r) is_convex_on REAL;

definition let D be non empty set,
               F be PartFunc of D,REAL,
               X be set;
assume  dom(F|X) is finite;
func FinS(F,X) -> non-increasing FinSequence of REAL means
:: RFUNCT_3:def 14
  F|X, it are_fiberwise_equipotent;
end;

theorem :: RFUNCT_3:66
for D be non empty set, F be PartFunc of D,REAL, X be set st
 dom(F|X) is finite holds FinS(F,dom(F|X)) = FinS(F,X);

theorem :: RFUNCT_3:67
for D be non empty set, F be PartFunc of D,REAL, X be set st
 dom(F|X) is finite holds FinS(F|X,X) = FinS(F,X);

definition let D be non empty set;
 let F be PartFunc of D,REAL; let X be finite set;
 redefine func F|X -> finite PartFunc of D,REAL;
end;

theorem :: RFUNCT_3:68
for D be non empty set, d be Element of D, X be set, F be PartFunc of D,REAL
  st X is finite & d in dom(F|X) holds
      FinS(F,X\{d})^<*F.d*>, F|X are_fiberwise_equipotent;

theorem :: RFUNCT_3:69
for D be non empty set, d be Element of D, X be set, F be PartFunc of D,REAL st
 dom(F|X) is finite & d in dom(F|X)
   holds FinS(F,X\{d})^<*F.d*>, F|X are_fiberwise_equipotent;

theorem :: RFUNCT_3:70
for D be non empty set, F be PartFunc of D,REAL, X be set,
    Y being finite set st Y = dom(F|X)
   holds len FinS(F,X) = card Y;

theorem :: RFUNCT_3:71
for D be non empty set, F be PartFunc of D,REAL holds FinS(F,{}) = <*>REAL;

theorem :: RFUNCT_3:72
for D be non empty set, F be PartFunc of D,REAL, d be Element of D
  st d in dom F holds FinS(F,{d}) = <* F.d *>;

theorem :: RFUNCT_3:73
for D be non empty set, F be PartFunc of D,REAL, X be set, d be Element of D
 st dom(F|X) is finite & d in dom(F|X) & FinS(F,X).(len FinS(F,X)) = F.d holds
  FinS(F,X) = FinS(F,X\{d}) ^ <*F.d*>;

theorem :: RFUNCT_3:74
  for D be non empty set, F be PartFunc of D,REAL, X,Y be set st
  dom(F|X) is finite & Y c= X &
  (for d1,d2 be Element of D st
  d1 in dom(F|Y) & d2 in dom(F|(X\Y)) holds F.d1>=F.d2)
   holds FinS(F,X) = FinS(F,Y) ^ FinS(F,X \ Y);

theorem :: RFUNCT_3:75
for D be non empty set, F be PartFunc of D,REAL, r be Real, X be set,
 d be Element of D st dom(F|X) is finite & d in dom(F|X) holds
FinS(F-r,X).(len FinS(F-r,X)) = (F-r).d iff FinS(F,X).(len FinS(F,X)) = F.d;

theorem :: RFUNCT_3:76
for D be non empty set, F be PartFunc of D,REAL, r be Real, X be set,
    Z being finite set st Z = dom(F|X)
     holds FinS(F-r, X) = FinS(F,X) - (card Z |->r);

theorem :: RFUNCT_3:77
  for D be non empty set, F be PartFunc of D,REAL, X be set st
 dom(F|X) is finite &
 (for d be Element of D st d in dom(F|X) holds F.d>=0) holds
 FinS(max+ F, X) = FinS(F, X);

theorem :: RFUNCT_3:78
  for D be non empty set, F be PartFunc of D,REAL, X be set, r be Real,
  Z be finite set st Z = dom(F|X)
   & rng(F|X) = {r} holds FinS(F, X) = card(Z) |-> r;

theorem :: RFUNCT_3:79
for D be non empty set, F be PartFunc of D,REAL, X,Y be set st
 dom(F|(X \/ Y)) is finite & X misses Y holds
 FinS(F,X \/ Y), FinS(F,X) ^ FinS(F,Y) are_fiberwise_equipotent;

definition let D be non empty set,
               F be PartFunc of D,REAL,
               X be set;
func Sum(F,X) -> Real equals
:: RFUNCT_3:def 15
  Sum(FinS(F,X));
end;

theorem :: RFUNCT_3:80
for D be non empty set, F be PartFunc of D,REAL, X be set, r be Real
   st dom(F|X) is finite holds Sum(r(#)F,X) = r * Sum(F,X);

theorem :: RFUNCT_3:81
for D be non empty set, F,G be PartFunc of D,REAL, X be set, Y being finite set
 st Y = dom(F|X) & dom(F|X) = dom(G|X) holds Sum(F+G,X) = Sum(F,X) + Sum(G,X);

theorem :: RFUNCT_3:82
  for D be non empty set, F,G be PartFunc of D,REAL, X be set st
 dom(F|X) is finite & dom(F|X) = dom(G|X) holds Sum(F-G,X) = Sum(F,X) - Sum
(G,X);

theorem :: RFUNCT_3:83
  for D be non empty set, F be PartFunc of D,REAL, X be set, r be Real,
  Y being finite set st Y = dom(F|X)
   holds Sum(F-r,X) = Sum(F,X) - r*card(Y);

theorem :: RFUNCT_3:84
  for D be non empty set, F be PartFunc of D,REAL holds Sum(F,{}) = 0;

theorem :: RFUNCT_3:85
  for D be non empty set, F be PartFunc of D,REAL, d be Element of D st
 d in dom F
  holds Sum(F,{d}) = F.d;

theorem :: RFUNCT_3:86
  for D be non empty set, F be PartFunc of D,REAL, X,Y be set st
 dom(F|(X \/ Y)) is finite & X misses Y holds Sum(F, X \/ Y) = Sum(F,X) + Sum
(F,Y);

theorem :: RFUNCT_3:87
  for D be non empty set, F be PartFunc of D,REAL, X,Y be set st
 dom(F|(X \/ Y)) is finite & dom(F|X) misses dom(F|Y) holds
   Sum(F, X \/ Y) = Sum(F,X) + Sum(F,Y);

Back to top