:: Contracting Mapping on Normed Linear Space
:: by Keiichi Miyajima , Artur Korni{\l}owicz and Yasunari Shidama
::
:: Received August 19, 2012
:: Copyright (c) 2012-2019 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 PRE_TOPC, NORMSP_1, FUNCT_1, ARYTM_1, NAT_1, SUBSET_1, NUMBERS,
CARD_1, XXREAL_0, FUNCT_7, REAL_1, ARYTM_3, RELAT_1, ORDINAL2, SEQ_1,
SEQ_2, POWER, RSSPACE3, LOPBAN_1, ORDEQ_01, STRUCT_0, COMPLEX1, VALUED_1,
ALI2, SUPINF_2, XBOOLE_0, ABIAN, INTEGRA1, FINSEQ_1, TARSKI, INTEGRA5,
CARD_3, XXREAL_1, PARTFUN1, RLVECT_1, SEQ_4, FUNCT_2, RCOMP_1, VALUED_0,
XXREAL_2, FCONT_1, ALGSTR_0, CFCONT_1, MEASURE5, RLSUB_1, RELAT_2,
REWRITE1, NFCONT_1, C0SP2, RSSPACE, RSSPACE4, FUNCOP_1, REALSET1,
FDIFF_1, PREPOWER, INTEGRA7, METRIC_1, SERIES_1, SIN_COS, SEQFUNC,
REAL_NS1, FINSEQ_2, EUCLID, NEWTON, XCMPLX_0;
notations TARSKI, XBOOLE_0, SUBSET_1, RELAT_1, FUNCT_1, ORDINAL1, RELSET_1,
PARTFUN1, FUNCT_2, PARTFUN2, NUMBERS, XXREAL_0, XREAL_0, REAL_1, NAT_1,
VALUED_0, COMPLEX1, XCMPLX_0, XXREAL_2, FUNCOP_1, FINSEQ_1, VALUED_1,
FINSEQ_2, SEQ_1, SEQ_2, NEWTON, SEQ_4, RCOMP_1, FCONT_1, FDIFF_1,
FUNCT_7, ABIAN, PREPOWER, POWER, SERIES_1, SEQFUNC, MEASURE5, SIN_COS,
TAYLOR_1, INTEGRA1, INTEGRA5, INTEGRA7, STRUCT_0, ALGSTR_0, PRE_TOPC,
RLVECT_1, RLSUB_1, NORMSP_0, NORMSP_1, VFUNCT_1, RSSPACE, EUCLID,
RSSPACE3, LOPBAN_1, NFCONT_1, INTEGR19, RSSPACE4, REAL_NS1, PDIFF_1,
INTEGR15, INTEGR18, NFCONT_3, NDIFF_3, NFCONT_2, NFCONT_4;
constructors REAL_1, ABIAN, SEQ_1, SEQ_2, RSSPACE3, RELSET_1, SEQ_4, VFUNCT_1,
PDIFF_1, INTEGRA5, NFCONT_3, RLSUB_1, PARTFUN2, FCONT_1, NFCONT_1,
NDIFF_1, NDIFF_3, RSSPACE4, SEQFUNC, INTEGR18, RVSUM_1, BINOP_2,
INTEGR19, INTEGR15, NFCONT_4, FDIFF_1, VALUED_2, PREPOWER, INTEGRA7,
COMSEQ_2, COMSEQ_3, SIN_COS, TAYLOR_1, NFCONT_2, C0SP2;
registrations STRUCT_0, NAT_1, VALUED_1, NORMSP_0, XXREAL_0, NUMBERS,
XBOOLE_0, FUNCT_1, FUNCT_2, XREAL_0, MEMBERED, NORMSP_1, RELAT_1,
FINSEQ_2, RELSET_1, INTEGRA1, ORDINAL1, FUNCOP_1, NEWTON, NFCONT_3,
XXREAL_2, RSSPACE4, RCOMP_1, RLVECT_1, REAL_NS1, VALUED_0, FINSEQ_1,
FDIFF_1, FCONT_1, EUCLID, MEASURE5, VALUED_2, FCONT_3, POWER, NFCONT_4,
PREPOWER;
requirements SUBSET, REAL, BOOLE, NUMERALS, ARITHM;
begin :: The Principle of Contracting Mapping on Normed Linear Space
reserve n for non zero Element of NAT;
reserve a,b,r,t for Real;
definition
let f be Function;
attr f is with_unique_fixpoint means
:: ORDEQ_01:def 1
ex x being set st x is_a_fixpoint_of f &
for y being set st y is_a_fixpoint_of f holds x = y;
end;
theorem :: ORDEQ_01:1
for x being set holds x is_a_fixpoint_of {[x,x]};
theorem :: ORDEQ_01:2
for x,y,z being set st x is_a_fixpoint_of {[y,z]} holds x = y;
registration
let x be set;
cluster {[x,x]} -> with_unique_fixpoint;
end;
theorem :: ORDEQ_01:3
for X being RealNormSpace, x being Point of X holds
(for e being Real st e > 0 holds ||.x.|| < e) implies x = 0.X;
theorem :: ORDEQ_01:4
for X being RealNormSpace, x,y being Point of X holds
(for e being Real st e > 0 holds ||.x-y.|| < e) implies x = y;
theorem :: ORDEQ_01:5
for K, L, e being Real st 0 < K & K < 1 & 0 < e
ex n being Nat st |. L*(K to_power n) .| < e;
registration
let X be RealNormSpace;
cluster constant -> contraction for Function of X,X;
end;
registration
let X be RealBanachSpace;
cluster contraction -> with_unique_fixpoint for Function of X,X;
end;
::$CT
theorem :: ORDEQ_01:7
for X being RealBanachSpace, f being Function of X,X st
ex n0 being Nat st iter(f,n0) is contraction holds
f is with_unique_fixpoint;
theorem :: ORDEQ_01:8
for X being RealBanachSpace, f being Function of X,X st
ex n0 being Element of NAT st iter(f,n0) is contraction holds
ex xp being Point of X st f.xp = xp &
for x being Point of X st f.x = x holds xp = x;
begin :: The Real Banach Space C([a,b],X)
theorem :: ORDEQ_01:9
for X be non empty closed_interval Subset of REAL,
Y be RealNormSpace,
f be continuous PartFunc of REAL,Y
st dom f = X holds
f is bounded Function of X,Y;
definition
let X be non empty closed_interval Subset of REAL;
let Y be RealNormSpace;
func ContinuousFunctions(X,Y)
-> Subset of R_VectorSpace_of_BoundedFunctions(X,Y) means
:: ORDEQ_01:def 2
for x being set holds x in it iff
ex f be continuous PartFunc of REAL,Y st x = f & dom f = X;
end;
registration
let X be non empty closed_interval Subset of REAL;
let Y be RealNormSpace;
cluster ContinuousFunctions(X,Y) -> non empty;
end;
registration
let X be non empty closed_interval Subset of REAL, Y be RealNormSpace;
cluster ContinuousFunctions(X,Y) -> linearly-closed;
end;
definition
let X be non empty closed_interval Subset of REAL;
let Y be RealNormSpace;
func R_VectorSpace_of_ContinuousFunctions(X,Y) -> strict RealLinearSpace
equals
:: ORDEQ_01:def 3
RLSStruct (# ContinuousFunctions(X,Y), Zero_(ContinuousFunctions(X,Y),
R_VectorSpace_of_BoundedFunctions (X,Y)), Add_(ContinuousFunctions(X,Y),
R_VectorSpace_of_BoundedFunctions (X,Y)), Mult_(ContinuousFunctions(X,Y),
R_VectorSpace_of_BoundedFunctions(X,Y)) #);
end;
registration
let X be non empty closed_interval Subset of REAL;
let Y be RealNormSpace;
cluster R_VectorSpace_of_ContinuousFunctions(X,Y) ->
Abelian add-associative
right_zeroed right_complementable vector-distributive
scalar-distributive scalar-associative scalar-unital;
end;
theorem :: ORDEQ_01:10
for X be non empty closed_interval Subset of REAL, Y be RealNormSpace,
f,g,h be VECTOR of R_VectorSpace_of_ContinuousFunctions(X,Y),
f9,g9,h9 be continuous PartFunc of REAL,Y
st f9=f & g9=g & h9=h & dom f9=X & dom g9=X & dom h9=X
holds (h = f+g iff for x
be Element of X holds h9/.x = f9/.x + g9/.x );
theorem :: ORDEQ_01:11
for X be non empty closed_interval Subset of REAL, Y be RealNormSpace,
f,h be VECTOR of R_VectorSpace_of_ContinuousFunctions(X,Y),
f9,h9 be continuous PartFunc of REAL,Y
st f9=f & h9=h & dom f9=X & dom h9=X
holds h = a*f iff for x be Element of X holds h9/.x = a*f9/.x;
theorem :: ORDEQ_01:12
for X be non empty closed_interval Subset of REAL, Y be RealNormSpace holds
0. R_VectorSpace_of_ContinuousFunctions(X,Y) = X -->0.Y;
definition
let X be non empty closed_interval Subset of REAL;
let Y be RealNormSpace;
func ContinuousFunctionsNorm(X,Y) ->
Function of ContinuousFunctions(X,Y),REAL equals
:: ORDEQ_01:def 4
(BoundedFunctionsNorm(X,Y)) | (ContinuousFunctions(X,Y));
end;
definition
let X be non empty closed_interval Subset of REAL;
let Y be RealNormSpace;
let f be set such that
f in ContinuousFunctions(X,Y);
func modetrans(f,X,Y) -> continuous PartFunc of REAL,Y means
:: ORDEQ_01:def 5
it = f & dom it = X;
end;
definition
let X be non empty closed_interval Subset of REAL;
let Y be RealNormSpace;
func R_NormSpace_of_ContinuousFunctions(X,Y) -> strict non empty NORMSTR
equals
:: ORDEQ_01:def 6
NORMSTR (# ContinuousFunctions(X,Y),
Zero_(ContinuousFunctions(X,Y),R_VectorSpace_of_BoundedFunctions (X,Y)),
Add_(ContinuousFunctions(X,Y),R_VectorSpace_of_BoundedFunctions (X,Y)),
Mult_(ContinuousFunctions(X,Y),R_VectorSpace_of_BoundedFunctions (X,Y)),
ContinuousFunctionsNorm(X,Y) #);
end;
theorem :: ORDEQ_01:13
for X be non empty closed_interval Subset of REAL,Y be RealNormSpace,
f be continuous PartFunc of REAL,Y
st dom f=X holds modetrans(f,X,Y)=f;
theorem :: ORDEQ_01:14
for X be non empty closed_interval Subset of REAL,
Y be RealNormSpace holds (X --> 0.Y)
= 0.R_NormSpace_of_ContinuousFunctions(X,Y);
theorem :: ORDEQ_01:15
for X be non empty closed_interval Subset of REAL,
Y be RealNormSpace, f,g,h be Point of
R_NormSpace_of_ContinuousFunctions(X,Y),
f9,g9,h9 be continuous PartFunc of REAL,Y
st f9=f & g9=g & h9=h & dom f9=X & dom g9=X & dom h9=X
holds (h = f+g iff for x be Element of X
holds h9/.x = f9/.x + g9/.x);
theorem :: ORDEQ_01:16
for X be non empty closed_interval Subset of REAL,
Y be RealNormSpace,
f,h be Point of R_NormSpace_of_ContinuousFunctions(X,Y),
f9,h9 be continuous PartFunc of REAL,Y
st f9=f & h9=h & dom f9=X & dom h9=X
holds (h = a*f iff for x be Element of X
holds h9/.x = a*f9/.x);
theorem :: ORDEQ_01:17
for X be non empty closed_interval Subset of REAL for Y be RealNormSpace,
f be Point of R_NormSpace_of_ContinuousFunctions(X,Y),
g be Point of R_NormSpace_of_BoundedFunctions(X,Y)
st f=g holds ||.f.|| = ||.g.||;
theorem :: ORDEQ_01:18
for X be non empty closed_interval Subset of REAL for Y be RealNormSpace,
f,g be Point of R_NormSpace_of_ContinuousFunctions(X,Y),
f1,g1 be Point of R_NormSpace_of_BoundedFunctions(X,Y)
st f1=f & g1=g holds f+g = f1+g1;
theorem :: ORDEQ_01:19
for X be non empty closed_interval Subset of REAL for Y be RealNormSpace,
f be Point of R_NormSpace_of_ContinuousFunctions(X,Y),
f1 be Point of R_NormSpace_of_BoundedFunctions(X,Y) st f1=f
holds a*f = a*f1;
registration
let X be non empty closed_interval Subset of REAL;
let Y be RealNormSpace;
cluster R_NormSpace_of_ContinuousFunctions(X,Y) ->
reflexive discerning RealNormSpace-like vector-distributive
scalar-distributive scalar-associative scalar-unital
Abelian add-associative right_zeroed right_complementable;
end;
theorem :: ORDEQ_01:20
for X be non empty closed_interval Subset of REAL
for Y be RealNormSpace
for f,g,h be Point of R_NormSpace_of_ContinuousFunctions(X,Y)
for f9,g9,h9 be continuous PartFunc of REAL,Y
st f9=f & g9=g & h9=h & dom f9=X & dom g9=X & dom h9=X
holds (h = f-g iff for x be Element of X holds h9/.x = f9/.x - g9/.x );
theorem :: ORDEQ_01:21
for X be non empty closed_interval Subset of REAL for Y be RealNormSpace,
f,g be Point of R_NormSpace_of_ContinuousFunctions(X,Y),
f1,g1 be Point of R_NormSpace_of_BoundedFunctions(X,Y)
st f1=f & g1=g
holds f-g = f1-g1;
registration
let X be non empty closed_interval Subset of REAL,
Y be RealNormSpace;
cluster closed for Subset of R_NormSpace_of_BoundedFunctions(X,Y);
end;
theorem :: ORDEQ_01:22
for X be non empty closed_interval Subset of REAL,
Y be RealNormSpace holds
ContinuousFunctions(X,Y)
is closed Subset of R_NormSpace_of_BoundedFunctions(X,Y);
theorem :: ORDEQ_01:23
for X be non empty closed_interval Subset of REAL,
Y be RealNormSpace,
seq be sequence of R_NormSpace_of_ContinuousFunctions(X,Y)
st Y is complete &
seq is Cauchy_sequence_by_Norm holds seq is convergent;
registration
let X be non empty closed_interval Subset of REAL;
let Y be RealBanachSpace;
cluster R_NormSpace_of_ContinuousFunctions(X,Y) -> complete;
end;
theorem :: ORDEQ_01:24
for X be non empty closed_interval Subset of REAL,
Y be RealNormSpace,
v be Point of R_NormSpace_of_ContinuousFunctions(X,Y),
g be PartFunc of REAL,Y st g=v
holds for t be Real st t in X holds ||.g/.t.|| <= ||.v.||;
theorem :: ORDEQ_01:25
for X be non empty closed_interval Subset of REAL,
Y be RealNormSpace,
K be Real,
v being Point of R_NormSpace_of_ContinuousFunctions(X,Y),
g be PartFunc of REAL,Y st g=v &
for t be Real st t in X holds ||.g/.t.|| <= K
holds ||.v.|| <= K;
theorem :: ORDEQ_01:26
for X be non empty closed_interval Subset of REAL,
Y be RealNormSpace,
v1,v2 be Point of R_NormSpace_of_ContinuousFunctions(X,Y),
g1,g2 be PartFunc of REAL,Y
st g1=v1 & g2=v2
holds for t be Real st t in X holds
||.g1/.t - g2/.t .|| <= ||.v1-v2.||;
theorem :: ORDEQ_01:27
for X be non empty closed_interval Subset of REAL,
Y be RealNormSpace,
K be Real,
v1,v2 being Point of R_NormSpace_of_ContinuousFunctions(X,Y),
g1,g2 be PartFunc of REAL,Y
st g1=v1 & g2=v2 &
for t be Real st t in X holds
||.g1/.t - g2/.t .|| <= K
holds ||.v1-v2.|| <= K;
begin :: Differential Equations
theorem :: ORDEQ_01:28
for n,i be Nat, f be PartFunc of REAL,REAL n,
A be Subset of REAL holds proj(i,n)*(f|A) = (proj(i,n)*f)|A;
theorem :: ORDEQ_01:29
for g be continuous PartFunc of REAL, REAL n st dom g = [' a,b ']
holds g | [' a,b '] is bounded;
theorem :: ORDEQ_01:30
for g be continuous PartFunc of REAL,REAL n
st dom g =[' a,b ']
holds g is_integrable_on [' a,b '];
theorem :: ORDEQ_01:31
for f,F be PartFunc of REAL,REAL n
st a <= b
& dom f =[' a,b '] & dom F =[' a,b ']
& f is continuous
& for t be Real st t in [.a,b.] holds F.t = integral(f,a,t)
holds
for x be Real st x in [.a,b.] holds F is_continuous_in x;
theorem :: ORDEQ_01:32
for f be continuous PartFunc of REAL,REAL-NS n st dom f = [' a,b ']
holds f|([' a,b ']) is bounded;
theorem :: ORDEQ_01:33
for f be continuous PartFunc of REAL,REAL-NS n st dom f = [' a,b ']
holds f is_integrable_on [' a,b '];
theorem :: ORDEQ_01:34
for f be continuous PartFunc of REAL,REAL-NS n,
F be PartFunc of REAL,REAL-NS n
st a <= b
& dom f =[' a,b '] & dom F =[' a,b ']
& for t be Real st t in [.a,b.] holds F.t = integral(f,a,t)
holds
for x be Real st x in [.a,b.] holds F is_continuous_in x;
theorem :: ORDEQ_01:35
for R be PartFunc of REAL, REAL
st R is total holds R is RestFunc-like iff
for r be Real st r > 0 ex d be Real st d > 0 & for z be Real
st z <> 0 & |. z .| < d holds |.z.|"* |. R/.z .| < r;
reserve
Z for open Subset of REAL,
y0 for VECTOR of REAL-NS n,
G for Function of REAL-NS n,REAL-NS n;
theorem :: ORDEQ_01:36
for f be continuous PartFunc of REAL,REAL-NS n,
g be PartFunc of REAL,REAL-NS n st a <= b
& dom f = [' a,b '] & dom g = [' a,b '] & Z = ]. a,b .[
& for t be Real st t in [' a,b ']
holds g.t = y0+ integral(f,a,t) holds
g is continuous & g/.a=y0 &
g is_differentiable_on Z
& for t be Real st t in Z holds diff(g,t) = f/.t;
theorem :: ORDEQ_01:37
for i be Nat,
y1,y2 be Point of REAL-NS n holds
proj(i,n).(y1 + y2) = proj(i,n).y1 + proj(i,n).y2;
theorem :: ORDEQ_01:38
for i be Nat,
y1 be Point of REAL-NS n, r being Real holds
proj(i,n).(r*y1) = r*(proj(i,n).y1);
theorem :: ORDEQ_01:39
for g be PartFunc of REAL,REAL-NS n,
x0 be Real,
i be Nat st
1 <= i & i <= n & g is_differentiable_in x0 holds
(proj(i,n)*g) is_differentiable_in x0 &
proj(i,n).(diff(g,x0)) = diff((proj(i,n)*g),x0);
theorem :: ORDEQ_01:40
for f be PartFunc of REAL,REAL-NS n,
X be set st
for i be Nat st 1 <= i & i <= n
holds (proj(i,n)*f) | X is constant
holds
f| X is constant;
theorem :: ORDEQ_01:41
for f be PartFunc of REAL,REAL-NS n
st ].a,b.[ c= dom f
& f is_differentiable_on ].a,b.[
& for x be Real
st x in ].a,b.[ holds diff(f,x) = 0.(REAL-NS n)
holds f| (].a,b.[) is constant;
theorem :: ORDEQ_01:42
for f be continuous PartFunc of REAL,REAL-NS n st a < b
& [.a,b.] = dom f & f | ].a,b.[ is constant holds
for x be Real st x in [.a,b.] holds f.x = f.a;
theorem :: ORDEQ_01:43
for y,Gf be continuous PartFunc of REAL,REAL-NS n,
g be PartFunc of REAL,REAL-NS n st a** Function of
R_NormSpace_of_ContinuousFunctions([' a,b '],REAL-NS n),
R_NormSpace_of_ContinuousFunctions([' a,b '],REAL-NS n) means
:: ORDEQ_01:def 7
for x be VECTOR of R_NormSpace_of_ContinuousFunctions([' a,b '],REAL-NS n)
ex f,g,Gf be continuous PartFunc of REAL,REAL-NS n
st x=f & it.x = g & dom f =[' a,b '] & dom g =[' a,b '] & Gf = G*f
& for t be Real st t in [' a,b '] holds g.t = y0 + integral(Gf,a,t);
end;
theorem :: ORDEQ_01:49
a <= b & 0 < r &
(for y1,y2 be VECTOR of REAL-NS n holds ||.G/.y1-G/.y2.|| <= r*||.y1-y2.||)
implies
for u,v be VECTOR of R_NormSpace_of_ContinuousFunctions([' a,b '],REAL-NS n),
g,h be continuous PartFunc of REAL,REAL-NS n
st g= Fredholm(G,a,b,y0).u & h= Fredholm(G,a,b,y0).v holds
for t be Real st t in [' a,b '] holds
||. g/.t - h/.t .|| <= r*(t-a) * ||.u-v.||;
theorem :: ORDEQ_01:50
a <= b & 0 < r &
(for y1,y2 be VECTOR of REAL-NS n holds ||.G/.y1-G/.y2.|| <= r*||.y1-y2.||)
implies
for u,v be VECTOR of R_NormSpace_of_ContinuousFunctions([' a,b '],REAL-NS n),
m be Element of NAT,
g,h be continuous PartFunc of REAL,REAL-NS n
st g = iter(Fredholm(G,a,b,y0),(m+1)).u
& h = iter(Fredholm(G,a,b,y0),(m+1)).v holds
for t be Real st t in [' a,b ']
holds ||. g/.t - h/.t .|| <= ((r*(t-a))|^(m+1) )/((m+1)!) * ||.u-v.||
;
theorem :: ORDEQ_01:51
for m be Nat st a <= b & 0 < r &
(for y1,y2 be VECTOR of REAL-NS n holds ||.G/.y1-G/.y2.|| <= r*||.y1-y2.||)
holds
for u,v be VECTOR of R_NormSpace_of_ContinuousFunctions([' a,b '],REAL-NS n)
holds ||. iter(Fredholm(G,a,b,y0),(m+1)).u
- iter(Fredholm(G,a,b,y0),(m+1)).v .||
<= ((r*(b-a))|^(m+1) )/((m+1)!) * ||.u-v.||;
theorem :: ORDEQ_01:52
a**