Journal of Formalized Mathematics
Volume 2, 1990
University of Bialystok
Copyright (c) 1990 Association of Mizar Users

### Real Function Differentiability

by

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

```environ

vocabulary PRE_TOPC, SEQ_1, PARTFUN1, SEQ_2, ORDINAL2, FUNCT_1, ARYTM_3,
RELAT_1, SEQM_3, INCSP_1, ARYTM_1, ARYTM, RCOMP_1, BOOLE, ABSVALUE,
PARTFUN2, FCONT_1, LATTICES, FDIFF_1;
notation TARSKI, XBOOLE_0, SUBSET_1, ORDINAL1, NUMBERS, XCMPLX_0, XREAL_0,
REAL_1, NAT_1, ABSVALUE, SEQ_1, SEQ_2, SEQM_3, RELSET_1, PARTFUN1,
PARTFUN2, RFUNCT_2, RCOMP_1, FCONT_1;
constructors REAL_1, NAT_1, ABSVALUE, SEQ_2, SEQM_3, PARTFUN1, PARTFUN2,
RFUNCT_2, RCOMP_1, FCONT_1, MEMBERED, XBOOLE_0;
clusters RCOMP_1, RELSET_1, XREAL_0, SEQ_1, NAT_1, MEMBERED, ZFMISC_1,
XBOOLE_0;
requirements REAL, NUMERALS, SUBSET, BOOLE, ARITHM;

begin
reserve y,X for set;
reserve x,x0,x1,x2,g,g1,g2,r,r1,s,p,p1,p2 for Real;
reserve n,m,k for Nat;
reserve Y for Subset of REAL;
reserve Z for open Subset of REAL;
reserve s1,s2,s3 for Real_Sequence;
reserve f,f1,f2 for PartFunc of REAL,REAL;

theorem :: FDIFF_1:1
(for r holds r in Y iff r in REAL) iff Y=REAL;

definition let IT be Real_Sequence;
attr IT is convergent_to_0 means
:: FDIFF_1:def 1
IT is_not_0 & IT is convergent & lim IT = 0;
end;

definition
cluster convergent_to_0 Real_Sequence;
end;

definition
cluster constant Real_Sequence;
end;

reserve h for convergent_to_0 Real_Sequence;
reserve c for constant Real_Sequence;

definition
let IT be PartFunc of REAL,REAL;
canceled;

attr IT is REST-like means
:: FDIFF_1:def 3
IT is total &
for h holds (h")(#)(IT*h) is convergent & lim ((h")(#)(IT*h)) = 0;
end;

definition
cluster REST-like PartFunc of REAL,REAL;
end;

definition
mode REST is REST-like PartFunc of REAL,REAL;
end;

definition let IT be PartFunc of REAL,REAL;
attr IT is linear means
:: FDIFF_1:def 4
IT is total & ex r st for p holds IT.p = r*p;
end;

definition
cluster linear PartFunc of REAL,REAL;
end;

definition
mode LINEAR is linear PartFunc of REAL,REAL;
end;

reserve R,R1,R2 for REST;
reserve L,L1,L2 for LINEAR;

canceled 4;

theorem :: FDIFF_1:6
for L1,L2 holds L1+L2 is LINEAR & L1-L2 is LINEAR;

theorem :: FDIFF_1:7
for r,L holds r(#)L is LINEAR;

theorem :: FDIFF_1:8
for R1,R2 holds R1+R2 is REST & R1-R2 is REST & R1(#)R2 is REST;

theorem :: FDIFF_1:9
for r,R holds r(#)R is REST;

theorem :: FDIFF_1:10
L1(#)L2 is REST-like;

theorem :: FDIFF_1:11
R(#)L is REST & L(#)R is REST;

definition let f; let x0 be real number;
pred f is_differentiable_in x0 means
:: FDIFF_1:def 5
ex N being Neighbourhood of x0 st N c= dom f &
ex L,R st for x st x in N holds f.x - f.x0 = L.(x-x0) + R.(x-x0);
end;

definition let f; let x0 be real number;
assume  f is_differentiable_in x0;
func diff(f,x0) -> Real means
:: FDIFF_1:def 6
ex N being Neighbourhood of x0 st N c= dom f &
ex L,R st it=L.1 & for x st x in N holds f.x-f.x0 = L.(x-x0) + R.(x-x0);
end;

definition let f,X;
pred f is_differentiable_on X means
:: FDIFF_1:def 7
X c=dom f & for x st x in X holds f|X is_differentiable_in x;
end;

canceled 3;

theorem :: FDIFF_1:15
f is_differentiable_on X implies X is Subset of REAL;

theorem :: FDIFF_1:16
f is_differentiable_on Z iff
Z c=dom f & for x st x in Z holds f is_differentiable_in x;

theorem :: FDIFF_1:17
f is_differentiable_on Y implies Y is open;

definition let f,X;
assume  f is_differentiable_on X;
func f`|X -> PartFunc of REAL,REAL means
:: FDIFF_1:def 8
dom it = X & for x st x in X holds it.x = diff(f,x);
end;

canceled;

theorem :: FDIFF_1:19
for f,Z st Z c= dom f & ex r st rng f = {r} holds
f is_differentiable_on Z & for x st x in Z holds (f`|Z).x = 0;

definition let h,n;
cluster h^\n -> convergent_to_0;
end;

definition let c,n;
cluster c^\n -> constant;
end;

theorem :: FDIFF_1:20
for x0 being real number for N being Neighbourhood of x0 st
f is_differentiable_in x0 &
N c= dom f holds
for h,c st rng c = {x0} & rng (h+c) c= N holds
h"(#)(f*(h+c) - f*c) is convergent & diff(f,x0) = lim (h"(#)(f*(h+c) - f*c));

theorem :: FDIFF_1:21
for f1,f2,x0 st f1 is_differentiable_in x0 & f2 is_differentiable_in x0
holds f1+f2 is_differentiable_in x0 & diff(f1+f2,x0)=diff(f1,x0)+diff(f2,x0);

theorem :: FDIFF_1:22
for f1,f2,x0 st f1 is_differentiable_in x0 & f2 is_differentiable_in x0
holds f1-f2 is_differentiable_in x0 & diff(f1-f2,x0)=diff(f1,x0)-diff(f2,x0);

theorem :: FDIFF_1:23
for r,f,x0 st f is_differentiable_in x0 holds
r(#)f is_differentiable_in x0 & diff((r(#)f),x0) = r*diff(f,x0);

theorem :: FDIFF_1:24
for f1,f2,x0 st f1 is_differentiable_in x0 & f2 is_differentiable_in x0 holds
f1(#)f2 is_differentiable_in x0 &
diff(f1(#)f2,x0)=(f2.x0)*diff(f1,x0)+(f1.x0)*diff(f2,x0);

theorem :: FDIFF_1:25
for f,Z st Z c= dom f & f|Z = id Z holds
f is_differentiable_on Z & for x st x in Z holds (f`|Z).x = 1;

theorem :: FDIFF_1:26
for f1,f2,Z st Z c= dom (f1+f2) & f1 is_differentiable_on Z &
f2 is_differentiable_on Z holds f1+f2 is_differentiable_on Z &
for x st x in Z holds ((f1+f2)`|Z).x = diff(f1,x) + diff(f2,x);

theorem :: FDIFF_1:27
for f1,f2,Z st Z c= dom (f1-f2) & f1 is_differentiable_on Z &
f2 is_differentiable_on Z holds f1-f2 is_differentiable_on Z &
for x st x in Z holds ((f1-f2)`|Z).x = diff(f1,x) - diff(f2,x);

theorem :: FDIFF_1:28
for r,f,Z st Z c= dom (r(#)f) & f is_differentiable_on Z holds
r(#)f is_differentiable_on Z & for x st x in Z holds ((r(#)
f)`|Z).x =r*diff(f,x);

theorem :: FDIFF_1:29
for f1,f2,Z st Z c= dom (f1(#)f2) & f1 is_differentiable_on Z &
f2 is_differentiable_on Z holds f1(#)f2 is_differentiable_on Z &
for x st x in Z holds ((f1(#)f2)`|Z).x = (f2.x)*diff(f1,x) + (f1.x)*diff(f2,x);

theorem :: FDIFF_1:30
Z c= dom f & f is_constant_on Z implies
f is_differentiable_on Z & for x st x in Z holds (f`|Z).x = 0;

theorem :: FDIFF_1:31
Z c= dom f & (for x st x in Z holds f.x = r*x + p) implies
f is_differentiable_on Z & for x st x in Z holds (f`|Z).x = r;

theorem :: FDIFF_1:32
for x0 being real number holds
f is_differentiable_in x0 implies f is_continuous_in x0;

theorem :: FDIFF_1:33
f is_differentiable_on X implies f is_continuous_on X;

theorem :: FDIFF_1:34
f is_differentiable_on X & Z c= X implies f is_differentiable_on Z;

theorem :: FDIFF_1:35
f is_differentiable_in x0 implies ex R st R.0=0 & R is_continuous_in 0;
```