:: The Formal Construction of Fuzzy Numbers
:: by Adam Grabowski
::
:: Received December 31, 2014
:: Copyright (c) 2014-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 NUMBERS, XBOOLE_0, SUBSET_1, XXREAL_1, CARD_1, RELAT_1, TARSKI,
FUNCT_1, XXREAL_0, PARTFUN1, ARYTM_1, ARYTM_3, COMPLEX1, FUZZY_1,
GRAPH_2, MEASURE5, MSALIMIT, FUZNUM_1, REAL_1, ORDINAL2, XXREAL_2,
TREES_1, RCOMP_1, ZFMISC_1, NUMPOLY1, JGRAPH_2, FUNCT_4, PRE_TOPC,
FCONT_1;
notations TARSKI, XBOOLE_0, SUBSET_1, NUMBERS, XXREAL_0, XCMPLX_0, XXREAL_2,
COMPLEX1, XREAL_0, FUNCT_1, PARTFUN1, FCONT_1, RELSET_1, FUNCT_4,
RCOMP_1, MEASURE5, FUZZY_1;
constructors COMPLEX1, RFUNCT_1, INTEGRA1, SEQ_4, RELSET_1, FUZZY_1, FCONT_1,
FUNCT_4;
registrations RELSET_1, NUMBERS, XXREAL_0, MEMBERED, XBOOLE_0, VALUED_0,
FUNCT_2, XREAL_0, ORDINAL1, FCONT_1, RELAT_1, TOPREALB, FUNCT_4, FUNCT_1,
XCMPLX_0, NAT_1, RCOMP_1;
requirements NUMERALS, REAL, SUBSET, BOOLE, ARITHM;
definitions XBOOLE_0, TARSKI, XXREAL_2;
equalities FUZZY_1, RCOMP_1;
expansions TARSKI, FCONT_1;
theorems TARSKI, FUNCT_1, FUNCT_3, ABSVALUE, PARTFUN1, ZFMISC_1, XBOOLE_0,
XBOOLE_1, COMPLEX1, XREAL_1, XXREAL_0, XXREAL_1, FUNCT_2, RELAT_1,
MEASURE5, XREAL_0, XXREAL_2, FCONT_1, XCMPLX_1, FUZZY_2, FUNCT_4,
RCOMP_1, ENUMSET1;
begin :: Preliminaries: Affine Maps
theorem RealNon:
for a,b being Real st a <= b holds
REAL \ ].a,b.[ <> {}
proof
let a,b be Real;
assume a <= b;
consider c being Real such that
A1: c < a by XREAL_1:2;
A2: not c in ].a,b.[ by A1,XXREAL_1:4;
c in REAL by XREAL_0:def 1;
hence thesis by A2,XBOOLE_0:def 5;
end;
reserve a,b,c,x for Real;
theorem Ah1:
AffineMap (1/(b-a),-a/(b-a)).a = 0
proof
AffineMap (1/(b-a),-a/(b-a)).a = (1/(b-a))*a+-a/(b-a) by FCONT_1:def 4
.= (1/(b-a))*a+(-a)/(b-a) by XCMPLX_1:187
.= (1/(b-a))*a+a*((-1))/(b-a)
.= a*(1/(b-a))+a*((-1)/(b-a)) by XCMPLX_1:74
.= a*(1/(b-a)+(-1)/(b-a))
.= a*(1/(b-a)+-1/(b-a)) by XCMPLX_1:187
.= 0;
hence thesis;
end;
theorem Ab1:
b - a <> 0 implies
AffineMap (1/(b-a),-a/(b-a)).b = 1
proof
assume
A1: b - a <> 0;
AffineMap (1/(b-a),-a/(b-a)).b = (1/(b-a))*b+-a/(b-a) by FCONT_1:def 4
.= (b/(b-a))+-a/(b-a) by XCMPLX_1:99
.= (b/(b-a))+(-a)/(b-a) by XCMPLX_1:187
.= (b+-a)/(b-a) by XCMPLX_1:62
.= (1/(b-a))*(b+-a) by XCMPLX_1:99
.= 1 by XCMPLX_1:106,A1;
hence thesis;
end;
theorem Cb1:
c - b <> 0 implies
AffineMap (-1/(c-b),c/(c-b)).b = 1
proof
assume
A1: c - b <> 0;
AffineMap (-1/(c-b),c/(c-b)).b
= (-1/(c-b))*b+c/(c-b) by FCONT_1:def 4
.= ((-1)/(c-b))*b+c/(c-b) by XCMPLX_1:187
.= (((-1)*b)/(c-b))+c/(c-b) by XCMPLX_1:74
.= (-b+c)/(c-b) by XCMPLX_1:62
.= 1 by A1,XCMPLX_1:60;
hence thesis;
end;
theorem Cb2:
AffineMap (-1/(c-b),c/(c-b)).c = 0
proof
AffineMap (-1/(c-b),c/(c-b)).c
= (-1/(c-b))*c+c/(c-b) by FCONT_1:def 4
.= ((-1)/(c-b))*c+c/(c-b) by XCMPLX_1:187
.= (((-1)*c)/(c-b))+c/(c-b) by XCMPLX_1:74
.= (-c+c)/(c-b) by XCMPLX_1:62
.= 0;
hence thesis;
end;
theorem Hope3:
b - a <> 0 & AffineMap (1/(b-a),-a/(b-a)).x = 1 implies
x = b
proof
assume that
A0: b - a <> 0 and
A1: AffineMap (1/(b-a),-a/(b-a)).x = 1;
x in REAL & b in REAL by XREAL_0:def 1; then
A3: x in dom AffineMap (1/(b-a),-a/(b-a)) &
b in dom AffineMap (1/(b-a),-a/(b-a)) by FUNCT_2:def 1;
AffineMap (1/(b-a),-a/(b-a)).b = 1 by A0,Ab1;
hence thesis by A1,FUNCT_1:def 4,A3,A0;
end;
theorem Hope4:
c - b <> 0 & AffineMap (-1/(c-b),c/(c-b)).x = 1 implies
x = b
proof
assume that
A0: c - b <> 0 and
A1: AffineMap (-1/(c-b),c/(c-b)).x = 1;
x in REAL & b in REAL by XREAL_0:def 1; then
A3: x in dom AffineMap (-1/(c-b),c/(c-b)) &
b in dom AffineMap (-1/(c-b),c/(c-b)) by FUNCT_2:def 1;
AffineMap (-1/(c-b),c/(c-b)).b = 1 by A0,Cb1;
hence thesis by A1,FUNCT_1:def 4,A3,A0;
end;
theorem
rng AffineMap (0,a) = {a}
proof
set f = AffineMap (0,a);
thus rng f c= {a}
proof
let y be object;
assume y in rng f; then
consider x being object such that
A1: x in dom f & y = f.x by FUNCT_1:def 3;
reconsider x as Real by A1;
y = 0 * x + a by A1,FCONT_1:def 4 .= a;
hence thesis by TARSKI:def 1;
end;
let y be object;
assume
a0: y in {a};
0 in REAL by XREAL_0:def 1; then
A1: 0 in dom f by FUNCT_2:def 1;
y = 0 * 0 + a by a0,TARSKI:def 1
.= f.0 by FCONT_1:def 4;
hence thesis by FUNCT_1:def 3,A1;
end;
theorem Andr1a:
for C being non empty Subset of REAL holds
rng (AffineMap (0,a) | C) = {a}
proof
let C be non empty Subset of REAL;
set f = AffineMap (0,a) | C;
thus rng f c= {a}
proof
let y be object;
assume y in rng f; then
consider x being object such that
A1: x in dom f & y = f.x by FUNCT_1:def 3;
reconsider x as Real by A1;
y = AffineMap (0,a).x by A1,FUNCT_1:49; then
y = 0 * x + a by FCONT_1:def 4 .= a;
hence thesis by TARSKI:def 1;
end;
let y be object;
assume
a0: y in {a};
reconsider o = the Element of C as Real;
C c= REAL; then
C c= dom AffineMap(0,a) by FUNCT_2:def 1; then
a1: dom f = C by RELAT_1:62;
y = 0 * o + a by a0,TARSKI:def 1
.= AffineMap (0,a).o by FCONT_1:def 4
.= f.o by FUNCT_1:49;
hence thesis by FUNCT_1:def 3,a1;
end;
theorem Hope1:
b - a > 0 implies
rng ((AffineMap (1/(b-a),-a/(b-a)) | [.a,b.])) = [.0,1.]
proof
set f = AffineMap (1/(b-a),-a/(b-a));
set g = f | [.a,b.];
assume
A0: b - a > 0;
thus rng g c= [.0,1.]
proof
let y be object;
assume
Y0: y in rng g; then
consider x being object such that
A1: x in dom g and
A2: y = g.x by FUNCT_1:def 3;
Y1: x in [.a,b.] by A1,RELAT_1:57;
reconsider xx = x as Real by A1;
reconsider yy = y as Real by Y0;
S4: y = f.xx by FUNCT_1:47,A1,A2;
A4: a <= xx by Y1,XXREAL_1:1;
S2: f.a = 0 by Ah1;
S5: f.a <= f.xx by A4,FCONT_1:53,A0;
xx <= b by Y1,XXREAL_1:1; then
S6: f.xx <= f.b by A0,FCONT_1:53;
f.b = 1 by Ab1,A0;
hence thesis by S4,S2,S5,S6;
end;
let y be object;
assume
V1: y in [.0,1.]; then
reconsider yy = y as Real;
set A = 1 / (b-a);
set B = -a / (b-a);
L2: (f qua Function)" = AffineMap (A",-B/A) by A0,FCONT_1:56; then
L3: (f qua Function)".0 = A" * 0 + -B/A by FCONT_1:def 4
.= -(((-a) / (b-a))/(1 / (b-a))) by XCMPLX_1:187
.= -((-a) / 1) by XCMPLX_1:55,A0
.= a;
set x = (f qua Function)".yy;
reconsider xx = x as Real by L2;
X1: -B/A = -(((-a) / (b-a))/(1 / (b-a))) by XCMPLX_1:187
.= -((-a) / 1) by XCMPLX_1:55,A0
.= a;
L4: (f qua Function)".1 = A" * 1 + -B/A by FCONT_1:def 4,L2
.= 1/A + -B/A by XCMPLX_1:215
.= b-a + a by XCMPLX_1:52,X1
.= b;
J2: 0 <= yy & yy <= 1 by XXREAL_1:1,V1; then
J3: a <= xx by FCONT_1:53,L2,A0,L3;
xx <= b by FCONT_1:53,L2,A0,J2,L4; then
J4: x in [.a,b.] by J3;
j5: dom f = REAL by FUNCT_2:def 1;
T1: x in dom g by J4,j5,RELAT_1:57;
rng f = REAL by FCONT_1:55,A0; then
S2: yy in rng f by XREAL_0:def 1;
g.((f qua Function)".yy) = f.((f qua Function)".yy) by FUNCT_1:49,J4
.= yy by A0,S2,FUNCT_1:35;
hence thesis by T1,FUNCT_1:def 3;
end;
theorem
c - b > 0 implies
rng ((AffineMap (-1/(c-b),c/(c-b)) | ].b,c.])) = [.0,1.[
proof
set f = AffineMap (-1/(c-b),c/(c-b));
set g = f | ].b,c.];
assume
A0: c - b > 0;
thus rng g c= [.0,1.[
proof
let y be object;
assume
Y0: y in rng g; then
consider x being object such that
A1: x in dom g and
A2: y = g.x by FUNCT_1:def 3;
Y1: x in ].b,c.] by A1,RELAT_1:57;
reconsider xx = x as Real by A1;
reconsider yy = y as Real by Y0;
S4: y = f.xx by FUNCT_1:47,A1,A2;
A4: b < xx by Y1,XXREAL_1:2;
S2: f.b = 1 by Cb1,A0;
S5: f.b > f.xx by A4,FCONT_1:52,A0;
xx <= c by Y1,XXREAL_1:2; then
S6: f.xx >= f.c by A0,FCONT_1:54;
f.c = 0 by Cb2;
hence thesis by S4,S2,S5,S6;
end;
let y be object;
assume
V1: y in [.0,1.[; then
reconsider yy = y as Real;
set A = -1 / (c-b);
set B = c / (c-b);
L2: (f qua Function)" = AffineMap (A",-B/A) by A0,FCONT_1:56; then
L3: (f qua Function)".0 = A" * 0 + -B/A by FCONT_1:def 4
.= -((c / (c-b))/((-1) / (c-b))) by XCMPLX_1:187
.= -(c / -1) by XCMPLX_1:55,A0
.= c;
X1: -B/A = -((c / (c-b))/((-1) / (c-b))) by XCMPLX_1:187
.= -(c / -1) by XCMPLX_1:55,A0
.= c;
L4: (f qua Function)".1 = A" * 1 + -B/A by FCONT_1:def 4,L2
.= 1/A + -B/A by XCMPLX_1:215
.= 1/((-1)/(c-b)) + c by XCMPLX_1:187,X1
.= (c-b)/(-1) + c by XCMPLX_1:57
.= b;
set x = (f qua Function)".yy;
reconsider xx = x as Real by L2;
J2: 0 <= yy & yy < 1 by XXREAL_1:3,V1; then
J3: c >= xx by FCONT_1:54,L2,A0,L3;
xx > b by FCONT_1:52,L2,A0,J2,L4; then
J4: x in ].b,c.] by J3;
j5: dom f = REAL by FUNCT_2:def 1;
T1: x in dom g by J4,j5,RELAT_1:57;
rng f = REAL by FCONT_1:55,A0; then
S2: yy in rng f by XREAL_0:def 1;
set ff = (f qua Function)";
g.(ff.yy) = f.(ff.yy) by FUNCT_1:49,J4
.= yy by A0,S2,FUNCT_1:35;
hence thesis by T1,FUNCT_1:def 3;
end;
theorem Hope2a:
c - b > 0 implies
rng ((AffineMap (-1/(c-b),c/(c-b)) | [.b,c.])) = [.0,1.]
proof
set f = AffineMap (-1/(c-b),c/(c-b));
set g = f | [.b,c.];
assume
A0: c - b > 0;
thus rng g c= [.0,1.]
proof
let y be object;
assume
Y0: y in rng g; then
consider x being object such that
A1: x in dom g and
A2: y = g.x by FUNCT_1:def 3;
Y1: x in [.b,c.] by A1,RELAT_1:57;
reconsider xx = x as Real by A1;
reconsider yy = y as Real by Y0;
S4: y = f.xx by FUNCT_1:47,A1,A2;
A4: b <= xx by Y1,XXREAL_1:1;
S2: f.b = 1 by Cb1,A0;
S5: f.b >= f.xx by A4,FCONT_1:54,A0;
xx <= c by Y1,XXREAL_1:1; then
S6: f.xx >= f.c by A0,FCONT_1:54;
f.c = 0 by Cb2;
hence thesis by S4,S2,S5,S6;
end;
let y be object;
assume
V1: y in [.0,1.]; then
reconsider yy = y as Real;
set A = -1 / (c-b);
set B = c / (c-b);
L2: (f qua Function)" = AffineMap (A",-B/A) by FCONT_1:56,A0; then
L3: (f qua Function)".0 = A" * 0 + -B/A by FCONT_1:def 4
.= -((c / (c-b))/((-1) / (c-b))) by XCMPLX_1:187
.= -(c / -1) by XCMPLX_1:55,A0
.= c;
X1: -B/A = -((c / (c-b))/((-1) / (c-b))) by XCMPLX_1:187
.= -(c / -1) by XCMPLX_1:55,A0
.= c;
L4: (f qua Function)".1 = A" * 1 + -B/A by FCONT_1:def 4,L2
.= 1/A + -B/A by XCMPLX_1:215
.= 1/((-1)/(c-b)) + c by XCMPLX_1:187,X1
.= (c-b)/(-1) + c by XCMPLX_1:57
.= b;
set x = (f qua Function)".yy;
reconsider xx = x as Real by L2;
J2: 0 <= yy & yy <= 1 by XXREAL_1:1,V1; then
J3: c >= xx by FCONT_1:54,L2,A0,L3;
xx >= b by FCONT_1:54,L2,A0,J2,L4; then
J4: x in [.b,c.] by J3;
jj: dom f = REAL by FUNCT_2:def 1;
T1: x in dom g by J4,jj,RELAT_1:57;
rng f = REAL by FCONT_1:55,A0; then
S2: yy in rng f by XREAL_0:def 1;
set ff = (f qua Function)";
g.(ff.yy) = f.(ff.yy) by FUNCT_1:49,J4
.= yy by A0,S2,FUNCT_1:35;
hence thesis by T1,FUNCT_1:def 3;
end;
theorem Hope5:
(AffineMap (0,0)).x <> 1
proof
(AffineMap (0,0)).x = 0 * x + 0 by FCONT_1:def 4 .= 0;
hence thesis;
end;
theorem
AffineMap (0,1).b = 1
proof
AffineMap (0,1).b = 0*b + 1 by FCONT_1:def 4 .= 1;
hence thesis;
end;
theorem Kici1:
for a being Real holds AffineMap (0,b).a = b
proof
let a be Real;
AffineMap (0,b).a = 0 * a + b by FCONT_1:def 4 .= b;
hence thesis;
end;
begin :: Towards Development of Fuzzy Numbers
reserve C for non empty set;
definition let C be non empty set;
mode FuzzySet of C is Membership_Func of C;
end;
definition let C be non empty set;
let F be FuzzySet of C;
attr F is normalized means
ex x being Element of C st
F.x = 1;
end;
notation let C be non empty set;
let F be FuzzySet of C;
synonym F is normal for F is normalized;
end;
notation let C be non empty set;
let F be FuzzySet of C;
antonym F is subnormal for F is normal;
end;
definition let C be non empty set;
let F be FuzzySet of C;
attr F is strictly-normalized means
ex x being Element of C st
F.x = 1 &
for y being Element of C st F.y = 1 holds y = x;
end;
registration let C be non empty set;
cluster strictly-normalized -> normalized for FuzzySet of C;
coherence;
end;
definition let C be non empty set;
let F be FuzzySet of C;
let alpha be Real;
func alpha-cut F -> Subset of C equals
{ x where x is Element of C : F.x >= alpha };
coherence
proof
set H = { x where x is Element of C : F.x >= alpha };
H c= C
proof
let y be object;
assume y in H; then
consider x being Element of C such that
A1: y = x & F.x >= alpha;
thus thesis by A1;
end;
hence thesis;
end;
end;
theorem AlphaCut1:
for F being FuzzySet of C,
alpha being Real holds
alpha-cut F = F " ([. alpha, 1 .])
proof
let F be FuzzySet of C,
alpha be Real;
thus alpha-cut F c= F " ([. alpha, 1 .])
proof
let x be object;
assume x in alpha-cut F; then
consider y being Element of C such that
A1: x = y & F.y >= alpha;
x in C by A1; then
A2: x in dom F by FUNCT_2:def 1; then
F.y in [. 0, 1 .] by A1,PARTFUN1:4; then
0 <= F.y & F.y <= 1 by XXREAL_1:1; then
F.y in [. alpha, 1 .] by A1;
hence thesis by A1,FUNCT_1:def 7,A2;
end;
let x be object;
assume
c2: x in F"([. alpha, 1 .]); then
x in dom F & F.x in [. alpha, 1 .] by FUNCT_1:def 7; then
alpha <= F.x & F.x <= 1 by XXREAL_1:1;
hence thesis by c2;
end;
registration let C;
cluster UMF C -> normalized;
coherence
proof
ex x being Element of C st (UMF C).x = 1
proof
take x = the Element of C;
thus thesis by FUNCT_3:def 3;
end;
hence thesis;
end;
end;
registration let C;
cluster normalized for FuzzySet of C;
existence
proof
take UMF C;
thus thesis;
end;
end;
definition let C;
let F be FuzzySet of C;
func Core F -> Subset of C equals
{ x where x is Element of C : F.x = 1 };
coherence
proof
set H = { x where x is Element of C : F.x = 1 };
H c= C
proof
let y be object;
assume y in H; then
consider x being Element of C such that
A1: y = x & F.x = 1;
thus thesis by A1;
end;
hence thesis;
end;
end;
theorem
Core UMF C = C
proof
thus Core UMF C c= C;
let x be object;
assume x in C; then
reconsider xx = x as Element of C;
(UMF C).xx = 1 by FUNCT_3:def 3;
hence thesis;
end;
theorem CEmpty:
Core EMF C = {}
proof
thus Core EMF C c= {}
proof
let x be object;
assume x in Core EMF C; then
consider xx being Element of C such that
A1: x = xx & (EMF C).xx = 1;
thus thesis by A1,FUNCT_3:def 3;
end;
thus thesis;
end;
registration let C;
cluster Core EMF C -> empty;
coherence by CEmpty;
end;
theorem CCounter:
for F being FuzzySet of C holds
Core F = F " {1}
proof
let F be FuzzySet of C;
thus Core F c= F " {1}
proof
let x be object;
assume x in Core F; then
consider xx being Element of C such that
A1: x = xx & F.xx = 1;
A2: F.xx in {1} by TARSKI:def 1,A1;
dom F = C by FUNCT_2:def 1;
hence thesis by A1,FUNCT_1:def 7,A2;
end;
let x be object;
assume
a1: x in F " {1}; then
A1: x in dom F & F.x in {1} by FUNCT_1:def 7;
reconsider xx = x as Element of C by a1;
F.xx = 1 by A1,TARSKI:def 1;
hence thesis;
end;
theorem
for F being FuzzySet of C holds
Core F = 1-cut F
proof
let F be FuzzySet of C;
1-cut F = F " ([. 1, 1 .]) by AlphaCut1
.= F " {1} by XXREAL_1:17;
hence thesis by CCounter;
end;
begin :: Convexity and the Height of a Fuzzy Set
definition let F be FuzzySet of REAL;
attr F is f-convex means
for x1, x2 being Real,
l being Real st 0 <= l & l <= 1 holds
F.(l*x1 + (1-l)*x2) >= min(F.x1,F.x2);
end;
UCon:
UMF REAL is f-convex
proof
for x1, x2 being Real,
l being Real st 0 <= l & l <= 1 holds
(UMF REAL).(l*x1 + (1-l)*x2) >= min((UMF REAL).x1,(UMF REAL).x2)
proof
let x1, x2 be Real,
l be Real;
set F = UMF REAL;
assume 0 <= l & l <= 1;
x1 in REAL & x2 in REAL by XREAL_0:def 1; then
A1: F.x1 = 1 & F.x2 = 1 by FUNCT_3:def 3;
l*x1 + (1-l)*x2 in REAL by XREAL_0:def 1;
hence thesis by A1,FUNCT_3:def 3;
end;
hence thesis;
end;
ECon:
EMF REAL is f-convex
proof
for x1, x2 being Real,
l being Real st 0 <= l & l <= 1 holds
(EMF REAL).(l*x1 + (1-l)*x2) >= min((EMF REAL).x1,(EMF REAL).x2)
proof
let x1, x2 be Real,
l be Real;
set F = EMF REAL;
assume 0 <= l & l <= 1;
A3: x1 in REAL & x2 in REAL by XREAL_0:def 1;
A1: F.x1 = {} & F.x2 = {} by FUNCT_3:def 3,A3;
l*x1 + (1-l)*x2 in REAL by XREAL_0:def 1;
hence thesis by A1,FUNCT_3:def 3;
end;
hence thesis;
end;
registration
cluster UMF REAL -> f-convex;
coherence by UCon;
cluster EMF REAL -> f-convex;
coherence by ECon;
end;
definition let C be non empty set;
let F be FuzzySet of C;
func height F -> ExtReal equals
sup rng F;
coherence;
end;
theorem HgtBnd:
for F being FuzzySet of C holds
0 <= height F & height F <= 1
proof
let F be FuzzySet of C;
B0: 0 is LowerBound of rng F
proof
let x be ExtReal;
assume x in rng F; then
consider xx being object such that
B1: xx in dom F & x = F.xx by FUNCT_1:def 3;
reconsider xx as Element of C by B1;
thus thesis by B1,FUZZY_2:1;
end;
b2: 1 is UpperBound of rng F
proof
let x be ExtReal;
assume x in rng F; then
consider xx being object such that
B1: xx in dom F & x = F.xx by FUNCT_1:def 3;
reconsider xx as Element of C by B1;
thus thesis by B1,FUZZY_2:1;
end;
inf rng F <= sup rng F by XXREAL_2:40;
hence thesis by b2,B0,XXREAL_2:def 4,XXREAL_2:def 3;
end;
theorem
for F being FuzzySet of C st
F is normalized holds height F = 1
proof
let F be FuzzySet of C;
assume F is normalized; then
consider x being Element of C such that
A1: F.x = 1;
x in C; then
x in dom F by FUNCT_2:def 1; then
A2: 1 <= height F by XXREAL_2:4,FUNCT_1:3,A1;
height F <= 1 by HgtBnd;
hence height F = 1 by A2,XXREAL_0:1;
end;
begin :: Pasting aka Glueing Lemmas
theorem
for f,g being PartFunc of REAL, REAL st
f is continuous & g is continuous &
ex x being object st dom f /\ dom g = {x} &
for x being object st x in dom f /\ dom g holds f.x = g.x holds
ex h being PartFunc of REAL, REAL st
h = f +* g & for x being Real st
x in dom f /\ dom g holds h is_continuous_in x
proof
let f,g be PartFunc of REAL, REAL;
assume
A1: f is continuous & g is continuous &
ex x being object st dom f /\ dom g = {x} &
for x being object st x in dom f /\ dom g holds f.x = g.x;
reconsider h = f +* g as PartFunc of REAL, REAL;
take h;
thus h = f +* g;
let x be Real;
J2: h | dom f = (g +* f) | dom f by FUNCT_4:34,PARTFUN1:def 4,A1
.= f;
assume x in dom f /\ dom g; then
ZR: x in dom f & x in dom g by XBOOLE_0:def 4; then
JJ: x in dom h by FUNCT_4:12;
for r being Real st 0 < r
ex s being Real st 0 < s &
for x1 being Real st x1 in dom h & |.x1-x.|~~ {} & dom gg <> {}; then
Ab: a <= b & b <= c by XXREAL_1:29,AB;
AA: dom f /\ dom g = {b} by XXREAL_1:418,Ab,AB;
reconsider h = f +* g as PartFunc of REAL, REAL;
take h;
thus h = f +* g;
let x be Real;
J2: h | dom f = (g +* f) | dom f by FUNCT_4:34,A1
.= f;
assume
JJ: x in dom h; then
per cases by FUNCT_4:12;
suppose
J1: x in dom f;
set hf = h |dom f;
set hg = h |dom g;
for r being Real st 0 < r
ex s being Real st 0 < s &
for x1 being Real st x1 in dom h & |.x1-x.| < s holds |.h.x1-h.x.| < r
proof
let r be Real;
dom f c= dom h & dom g c= dom h by FUNCT_4:10; then
XX: dom hf = dom f & dom hg = dom g by RELAT_1:62;
SF: x in dom hf by RELAT_1:57,J1,JJ;
assume
R0: 0 < r; then
consider s2 being Real such that
SB: 0 < s2 & for x1 being Real st x1 in dom hf & |.x1-x.|= b by XXREAL_1:1,J1,AB;
M7: a <= x1 & x1 <= b by XXREAL_1:1,P1,AB;
m0: x1 + 0 <= x by M7,XXREAL_0:2,M3;
b - 0 >= x1 by XXREAL_1:1,P1,AB; then
M1: |.b - x1.| = b - x1 by ABSVALUE:def 1,XREAL_1:11;
M2: |.x - b.| = x - b by ABSVALUE:def 1,M3,XREAL_1:11;
M8: |.x - x1.| = |.b-x1.| + |.x-b.|
by M1,M2,m0,ABSVALUE:def 1,XREAL_1:19; then
|.b - x1.| <= |.x - x1.| by COMPLEX1:46,XREAL_1:31; then
|.b - x1.| < s1 by P6,XXREAL_0:2; then
|.x1 - b.| < s1 by COMPLEX1:60; then
KJ: |.hf.x1 - hf.b.| < r / 2 by Sb,P1,RELAT_1:57,SC;
LK: |.b - x.| = |.x - b.| by COMPLEX1:60;
|.x - b.| <= |.x - x1.| by M8,XREAL_1:31,COMPLEX1:46; then
|.b - x.| <= |.x1 - x.| by COMPLEX1:60,LK; then
|.b - x.| < s2 by H1,XXREAL_0:2; then
|.hg.b - hg.x.| < r / 2 by SB,KI; then
WW: |.hf.x1 - hf.b.| + |.hg.b - hg.x.| < r / 2 + r / 2
by KJ,XREAL_1:8;
|.hf.x1-hg.x.| <= |.hf.x1-hf.b.| + |.hf.b-hg.x.| by COMPLEX1:63;
hence thesis by P2,P3,WA,XXREAL_0:2,WW;
end;
end;
hence thesis by FCONT_1:3;
end;
end;
theorem Glue:
for f,g being PartFunc of REAL, REAL st
f is continuous non empty &
g is continuous non empty &
(ex a,b,c being Real st dom f = [.a,b.] & dom g = [.b,c.]) &
f tolerates g holds
f +* g is continuous
proof
let f,g be PartFunc of REAL, REAL;
assume f is continuous non empty & g is continuous non empty &
(ex a,b,c being Real st dom f = [.a,b.] & dom g = [.b,c.]) &
f tolerates g; then
consider h being PartFunc of REAL, REAL such that
A2: h = f +* g & for x being Real st x in dom h holds h is_continuous_in x
by LemGlue;
thus thesis by A2;
end;
theorem Asi1:
for f, g being PartFunc of REAL, REAL st
g is non empty &
f = AffineMap (0,0) | (REAL \ ].a,b.[) &
dom g = [.a,b.] & g.a = 0 & g.b = 0 holds
f tolerates g
proof
let f, g be PartFunc of REAL, REAL;
assume
A1: g is non empty & f = (AffineMap (0,0)) | (REAL \ ].a,b.[) &
dom g = [.a,b.] & g.a = 0 & g.b = 0;
REAL \ ].a,b.[ c= REAL; then
REAL \ ].a,b.[ c= dom AffineMap (0,0) by FUNCT_2:def 1; then
A2: dom f = REAL \ ].a,b.[ by RELAT_1:62,A1
.= ].-infty,a.] \/ [.b,+infty.[ by XXREAL_1:398;
for x being object st x in dom f /\ dom g holds f.x = g.x
proof
let x be object;
K2: b < +infty by XXREAL_0:9,XREAL_0:def 1;
K3: -infty < a by XXREAL_0:12,XREAL_0:def 1;
assume
P1: x in dom f /\ dom g; then
x in ([.a,b.] /\ ].-infty,a.]) \/ ([.a,b.] /\ [.b,+infty.[)
by XBOOLE_1:23,A1,A2; then
x in {a} \/ ([.a,b.] /\ [.b,+infty.[)
by XXREAL_1:417,A1,XXREAL_1:29,K3; then
x in {a} \/ {b} by XXREAL_1:416,A1,XXREAL_1:29,K2; then
x in {a,b} by ENUMSET1:1; then
W1: g.x = 0 by A1,TARSKI:def 2;
reconsider xx = x as Real by P1;
x in dom f by P1,XBOOLE_0:def 4; then
f.x = AffineMap(0,0).xx by A1,FUNCT_1:47;
hence thesis by Kici1, W1;
end;
hence thesis by PARTFUN1:def 4;
end;
theorem Kluczyk:
for f, g being PartFunc of REAL, REAL st
g is continuous non empty & f = AffineMap (0,0) | (REAL \ ].a,b.[) &
dom g = [.a,b.] & g.a = 0 & g.b = 0 holds
ex h being PartFunc of REAL, REAL st h = f +* g &
for x being Real st x in dom h holds h is_continuous_in x
proof
let f, g be PartFunc of REAL, REAL;
assume
A1: g is continuous non empty & f = (AffineMap (0,0)) | (REAL \ ].a,b.[) &
dom g = [.a,b.] & g.a = 0 & g.b = 0; then
KK: f tolerates g by Asi1;
set c = b;
take h = f +* g;
thus h = f +* g;
let x be Real;
U1: -infty < a by XXREAL_0:12,XREAL_0:def 1;
U3: b < +infty by XXREAL_0:9,XREAL_0:def 1;
REAL \ ].a,b.[ c= REAL; then
REAL \ ].a,b.[ c= dom AffineMap(0,0) by FUNCT_2:def 1; then
S1: dom f = REAL \ ].a,b.[ by A1,RELAT_1:62;
aa: (REAL \ ].a,b.[) /\ [.a,b.] = (].-infty,a.] \/ [.b,+infty.[) /\ [.a,b.]
by XXREAL_1:398
.= (].-infty,a.] /\ [.a,b.]) \/ ([.b,+infty.[ /\ [.a,b.])
by XBOOLE_1:23
.= {a} \/ ([.b,+infty.[ /\ [.a,b.]) by XXREAL_1:417,U1,XXREAL_1:29,A1
.= {a} \/ {b} by XXREAL_1:416,XXREAL_1:29,A1,U3
.= {a,b} by ENUMSET1:1;
a in dom f /\ dom g by aa,S1,A1,TARSKI:def 2; then
sx: a in dom f & a in dom g by XBOOLE_0:def 4;
nn: f.a = AffineMap(0,0).a by FUNCT_1:47,A1,sx
.= 0*a+0 by FCONT_1:def 4 .= 0;
b in dom f /\ dom g by aa,S1,A1,TARSKI:def 2; then
sy: b in dom f & b in dom g by XBOOLE_0:def 4; then
mn: f.b = AffineMap(0,0).b by FUNCT_1:47,A1
.= 0*b+0 by FCONT_1:def 4 .= 0;
Z7: dom f = ].-infty,a.] \/ [.b,+infty.[ by S1,XXREAL_1:398;
Z8: ].-infty,a.[ c= ].-infty,a.] by XXREAL_1:21;
xz: ].-infty,a.] c= dom f by XBOOLE_1:7,Z7; then
Z6: ].-infty,a.[ c= dom f by Z8;
z8: ].b,+infty.[ c= [.b,+infty.[ by XXREAL_1:22;
wz: [.b,+infty.[ c= dom f by XBOOLE_1:7,Z7; then
z6: ].b,+infty.[ c= dom f by z8;
assume x in dom h; then
R1: x in dom f or x in dom g by FUNCT_4:12;
set xx0 = x;
b2: ].a,b.[ c= [.a,b.] by XXREAL_1:25;
b1: ].a,b.[ c= dom g by A1,XXREAL_1:25;
x in ].-infty,a.] or x in [.b,+infty.[ or x in [.a,b.]
by A1,R1,Z7,XBOOLE_0:def 3; then
x in ].-infty,a.[ \/ {a} or x in [.b,+infty.[ or x in [.a,b.]
by XXREAL_1:423; then
x in ].-infty,a.[ or x in {a} or x in [.b,+infty.[ or x in [.a,b.]
by XBOOLE_0:def 3; then
x in ].-infty,a.[ or x = a or x in {b} \/ ].b,+infty.[ or x in [.a,b.]
by XXREAL_1:427,TARSKI:def 1; then
x in ].-infty,a.[ or x = a or x in {b} or x in ].b,+infty.[ or
x in [.a,b.] by XBOOLE_0:def 3; then
x in ].-infty,a.[ or x = a or x = b or x in ].b,+infty.[ or
x in {a,b} \/ ].a,b.[
by XXREAL_1:29,XXREAL_1:128,TARSKI:def 1; then
x in ].-infty,a.[ or x = a or x = b or x in ].b,+infty.[ or
x in {a,b} or x in {a,b} or x in ].a,b.[ by XBOOLE_0:def 3; then
per cases by TARSKI:def 2;
suppose
FT: x = a;
for r being Real st 0 < r
ex s being Real st 0 < s &
for x1 being Real st x1 in dom h & |.x1-x.|~~~~ 0 by XREAL_1:20;
set rr2 = rr / 2;
set P1 = ].xx0-rr2, xx0+rr2.[;
xx0 / 2 < a / 2 by Zz,XREAL_1:74; then
z5:xx0 / 2 + a / 2 < a / 2 + a / 2 by XREAL_1:8;
P1 c= ].-infty,a.[ by XXREAL_1:263,z5; then
Y1:P1 c= dom f by Z8,xz;
reconsider P1 as Neighbourhood of xx0 by Z1,RCOMP_1:def 6;
consider N being Neighbourhood of xx0 such that
Y2:N c= Nx & N c= P1 by RCOMP_1:17;
take N;
let x1 be Real;
assume
D1:x1 in dom h & x1 in N; then
f.x1 in N2 by D0,Y2,Y1;
hence thesis by FUNCT_4:15,Y2,Y1,D1,KK;
end;
hence thesis by FCONT_1:4;
end;
suppose
B0: xx0 in ].a,b.[;
for N1 being Neighbourhood of h.xx0
ex N being Neighbourhood of xx0 st
for x1 being Real st x1 in dom h &
x1 in N holds h.x1 in N1
proof
let N1 be Neighbourhood of h.xx0;
set r = h.xx0;
reconsider N2 = N1 as Neighbourhood of g.xx0 by B0,A1,b2,FUNCT_4:13;
consider Nx being Neighbourhood of xx0 such that
D0: for x1 being Real st x1 in dom g &
x1 in Nx holds g.x1 in N2 by FCONT_1:4,B0,b2,A1;
set rr = min (xx0-a,b-xx0);
Zw: a < xx0 & xx0 < b by B0,XXREAL_1:4;
a - a < xx0 - a & b - xx0 > xx0 - xx0 by XREAL_1:14,Zw; then
Z1: rr > 0 by XXREAL_0:15;
set rr2 = rr / 2;
set P1 = ].xx0-rr2, xx0+rr2.[;
u1: rr2 < rr by Z1,XREAL_1:216;
u2: rr <= b - xx0 by XXREAL_0:17;
u3: xx0 + rr2 < xx0 + rr by u1,XREAL_1:8;
xx0 + rr <= xx0 + (b - xx0) by u2,XREAL_1:7; then
Z5: xx0 + rr2 < b by u3,XXREAL_0:2;
rr <= xx0 - a by XXREAL_0:17; then
rr2 < xx0 - a by XXREAL_0:2,u1; then
h1: xx0 - rr2 > xx0 - (xx0 - a) by XREAL_1:15;
y1: P1 c= ].a,b.[ by XXREAL_1:46,Z5,h1;
reconsider P1 as Neighbourhood of xx0 by Z1,RCOMP_1:def 6;
consider N being Neighbourhood of xx0 such that
Y2: N c= Nx & N c= P1 by RCOMP_1:17;
XX: N c= dom g by Y2,y1,b1;
take N;
let x1 be Real;
assume
D1: x1 in dom h & x1 in N;
x1 in Nx & x1 in dom g by Y2,y1,b1,D1; then
g.x1 in N2 by D0;
hence thesis by FUNCT_4:13,XX,D1;
end;
hence thesis by FCONT_1:4;
end;
suppose
B0: xx0 in ].b,+infty.[;
for N1 being Neighbourhood of h.xx0
ex N being Neighbourhood of xx0 st
for x1 being Real st x1 in dom h & x1 in N holds h.x1 in N1
proof
let N1 be Neighbourhood of h.xx0;
set r = h.xx0;
reconsider N2 = N1 as Neighbourhood of f.xx0
by B0,z6,FUNCT_4:15,A1,Asi1;
T1: f is continuous by A1;
consider Nx being Neighbourhood of xx0 such that
D0: for x1 being Real st x1 in dom f &
x1 in Nx holds f.x1 in N2 by FCONT_1:4,B0,z6,T1;
set rr = xx0 - b;
Zz: b + 0 < xx0 by B0,XXREAL_1:235; then
Z1: rr > 0 by XREAL_1:20;
set rr2 = rr / 2;
set P1 = ].xx0-rr2, xx0+rr2.[;
Z3: b / 2 < xx0 / 2 by Zz,XREAL_1:74;
xx0 / 2 + b / 2 > b / 2 + b / 2 by Z3,XREAL_1:8; then
P1 c= ].b,+infty.[ by XXREAL_1:247; then
Y1: P1 c= dom f by z8,wz;
reconsider P1 as Neighbourhood of xx0 by Z1,RCOMP_1:def 6;
consider N being Neighbourhood of xx0 such that
Y2: N c= Nx & N c= P1 by RCOMP_1:17;
take N;
let x1 be Real;
assume
D1: x1 in dom h & x1 in N; then
f.x1 in N2 by D0,Y2,Y1;
hence thesis by FUNCT_4:15,Y2,Y1,D1,KK;
end;
hence thesis by FCONT_1:4;
end;
end;
theorem
for f, g being PartFunc of REAL, REAL st
g is continuous non empty &
f = AffineMap (0,0) | (REAL \ ].a,b.[) &
dom g = [.a,b.] & g.a = 0 & g.b = 0 holds
f +* g is continuous
proof
let f, g be PartFunc of REAL, REAL;
assume g is continuous non empty &
f = AffineMap (0,0) | (REAL \ ].a,b.[) &
dom g = [.a,b.] & g.a = 0 & g.b = 0; then
consider h being PartFunc of REAL, REAL such that
A2: h = f +* g &
for x being Real st x in dom h holds h is_continuous_in x by Kluczyk;
thus thesis by A2;
end;
registration
cluster non trivial closed_interval closed for Subset of REAL;
existence
proof
take A = [.0,1.];
0 in A & 1 in A;
hence thesis by MEASURE5:def 3,ZFMISC_1:def 10;
end;
end;
begin :: Triangular and Trapezoidal Fuzzy Sets
definition let a,b,c be Real;
assume that
Z1: a < b and
Z2: b < c;
func TriangularFS (a,b,c) -> FuzzySet of REAL equals :TrDef:
AffineMap (0,0) | (REAL \ ].a,c.[)
+* (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.])
+* (AffineMap (-1/(c-b),c/(c-b)) | [.b,c.]);
coherence
proof
k1: a + 0 < b by Z1;
k2: b + 0 < c by Z2;
set f1 = AffineMap (0,0) | (REAL \ ].a,c.[),
f2 = (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.]),
f3 = (AffineMap (-1/(c-b),c/(c-b)) | [.b,c.]);
set f = f1 +* f2 +* f3;
REAL \ ].a,c.[ <> {} by RealNon,Z1,Z2,XXREAL_0:2; then
L1: rng f1 = {0} by Andr1a;
L2: rng f2 = [.0,1.] by k1,Hope1,XREAL_1:20;
L3: rng f3 = [.0,1.] by Hope2a,k2,XREAL_1:20;
rng (f1 +* f2) c= rng f1 \/ rng f2 by FUNCT_4:17; then
L5: rng (f1 +* f2) \/ rng f3 c= ({0} \/ [.0,1.]) \/ rng f3
by XBOOLE_1:13,L1,L2;
l6: rng f c= rng (f1 +* f2) \/ rng f3 by FUNCT_4:17;
[.0,0.] c= [.0,1.] by XXREAL_1:34; then
{0} c= [.0,1.] by XXREAL_1:17; then
{0} \/ [.0,1.] = [.0,1.] by XBOOLE_1:12; then
I3: rng f c= [.0,1.] by l6,L3,L5;
I5: dom f = dom (f1 +* f2) \/ dom f3 by FUNCT_4:def 1
.= dom f1 \/ dom f2 \/ dom f3 by FUNCT_4:def 1;
REAL \ ].a,c.[ c= REAL; then
i7: REAL \ ].a,c.[ c= dom AffineMap (0,0) by FUNCT_2:def 1;
O4: a < +infty & c < +infty by XXREAL_0:9,XREAL_0:def 1;
O3: a < c by Z1,Z2,XXREAL_0:2;
O5: -infty < a by XXREAL_0:12,XREAL_0:def 1;
[.a,b.] c= REAL; then
O1: [.a,b.] c= dom AffineMap (1/(b-a),-a/(b-a)) by FUNCT_2:def 1;
[.b,c.] c= REAL; then
O2: [.b,c.] c= dom AffineMap (-1/(c-b),c/(c-b)) by FUNCT_2:def 1;
dom f2 \/ dom f3 = [.a,b.] \/ dom f3 by RELAT_1:62,O1
.= [.a,b.] \/ [.b,c.] by RELAT_1:62,O2
.= [.a,c.] by XXREAL_1:165,Z1,Z2; then
dom f1 \/ (dom f2 \/ dom f3) = (REAL \ ].a,c.[) \/ [.a,c.]
by i7,RELAT_1:62
.= (].-infty,a.] \/ [.c,+infty.[) \/ [.a,c.] by XXREAL_1:398
.= ].-infty,a.] \/ ([.c,+infty.[ \/ [.a,c.]) by XBOOLE_1:4
.= ].-infty,a.] \/ [.a,+infty.[ by XXREAL_1:176,O3,O4
.= ].-infty,+infty.[ by XXREAL_1:172,O4,O5; then
dom f1 \/ dom f2 \/ dom f3 = REAL by XBOOLE_1:4,XXREAL_1:224;
hence thesis by FUNCT_2:2,I5,I3;
end;
end;
::definition let C; let a,b,c be Real;
:: func TriangularFS (C,a,b,c) -> FuzzySet of C means
:: for x being Real st x in C holds
:: ((x <= a or c <= x) implies it.x = 0) &
:: (a <= x & x <= b implies it.x = (x-a)/(b-a)) &
:: (b <= x & x <= c implies it.x = (c-x)/(c-b));
:: correctness;
::end;
theorem
for a,b,c being Real st a < b & b < c holds
TriangularFS (a,b,c) is strictly-normalized
proof
let a,b,c be Real;
set F = TriangularFS (a,b,c);
reconsider bb = b as Element of REAL by XREAL_0:def 1;
assume
Z1: a < b & b < c;
s0: bb in [.b,c.] by Z1;
S1: F = AffineMap (0,0) | (REAL \ ].a,c.[)
+* (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.])
+* (AffineMap (-1/(c-b),c/(c-b)) | [.b,c.]) by Z1,TrDef;
s2: dom AffineMap (-1/(c-b),c/(c-b)) = REAL by FUNCT_2:def 1;
a + 0 < b by Z1; then
T1: b - a > 0 by XREAL_1:20;
b + 0 < c by Z1; then
t1: c - b > 0 by XREAL_1:20;
bb in [.b,c.] by Z1; then
bb in dom (AffineMap (-1/(c-b),c/(c-b)) | [.b,c.]) by s2,RELAT_1:57; then
A1: F.bb = (AffineMap (-1/(c-b),c/(c-b)) | [.b,c.]).bb by FUNCT_4:13,S1
.= (AffineMap (-1/(c-b),c/(c-b))).bb by FUNCT_1:49,s0
.= 1 by Cb1,t1;
for y being Element of REAL st F.y = 1 holds y = bb
proof
let y be Element of REAL;
assume
X0: F.y = 1;
per cases;
suppose
X1: y in [.a,b.]; then
per cases by XXREAL_1:7;
suppose
x1: y in [.a,b.[;
y in REAL; then
X3: y in dom AffineMap (1/(b-a),-a/(b-a)) by FUNCT_2:def 1;
X2: y in dom (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.])
by X3,X1,RELAT_1:57;
not y in [.b,c.] by x1,XBOOLE_0:3,XXREAL_1:95; then
not y in dom (AffineMap (-1/(c-b),c/(c-b)) | [.b,c.])
by RELAT_1:57; then
F.y = (AffineMap (0,0) | (REAL \ ].a,c.[)
+* (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.])).y by FUNCT_4:11,S1
.= (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.]).y by FUNCT_4:13,X2; then
(AffineMap (1/(b-a),-a/(b-a))).y = 1 by X1,FUNCT_1:49,X0;
hence thesis by Hope3,T1;
end;
suppose y = b;
hence thesis;
end;
end;
suppose
X1: y in [.b,c.];
y in REAL; then
y in dom AffineMap (-1/(c-b),c/(c-b)) by FUNCT_2:def 1; then
y in dom (AffineMap (-1/(c-b),c/(c-b)) | [.b,c.])
by X1,RELAT_1:57; then
F.y = (AffineMap (-1/(c-b),c/(c-b)) | [.b,c.]).y
by FUNCT_4:13,S1; then
(AffineMap (-1/(c-b),c/(c-b))).y = 1 by X1,FUNCT_1:49,X0;
hence thesis by Hope4,t1;
end;
suppose
so: not (y in [.a,b.] or y in [.b,c.]); then
s1: not y in dom (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.]) &
not y in dom (AffineMap (-1/(c-b),c/(c-b)) | [.b,c.]) by RELAT_1:57;
s8: ].a,c.[ c= [.a,c.] by XXREAL_1:25;
not y in [.a,b.] \/ [.b,c.] by so,XBOOLE_0:def 3; then
not y in [.a,c.] by XXREAL_1:165,Z1; then
s7: not y in ].a,c.[ by s8;
ss: y in REAL \ ].a,c.[ by s7,XBOOLE_0:def 5;
F.y = ((AffineMap (0,0) | (REAL \ ].a,c.[)
+* (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.]))).y by FUNCT_4:11,s1,S1
.= (AffineMap (0,0) | (REAL \ ].a,c.[)).y by FUNCT_4:11,s1
.= (AffineMap (0,0)).y by FUNCT_1:49,ss;
hence thesis by Hope5,X0;
end;
end;
hence thesis by A1;
end;
theorem
for a,b,c being Real st a < b & b < c holds
TriangularFS (a,b,c) is continuous
proof
let a,b,c be Real;
assume that
Z1: a < b and
Z2: b < c;
set F = TriangularFS (a,b,c);
S1: F = AffineMap (0,0) | (REAL \ ].a,c.[)
+* (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.])
+* (AffineMap (-1/(c-b),c/(c-b)) | [.b,c.]) by Z1,Z2,TrDef;
set f1 = AffineMap (0,0);
set f = f1 | (REAL \ ].a,c.[);
set g1 = AffineMap (1/(b-a),-a/(b-a));
reconsider g = g1 | [.a,b.] as PartFunc of REAL, REAL;
set h1 = AffineMap (-1/(c-b),c/(c-b));
reconsider h = h1 | [.b,c.] as PartFunc of REAL, REAL;
[.a,b.] c= REAL; then
[.a,b.] c= dom g1 by FUNCT_2:def 1; then
J2: dom g = [.a,b.] by RELAT_1:62;
[.b,c.] c= REAL; then
h1: [.b,c.] c= dom h1 by FUNCT_2:def 1; then
J3: dom h = [.b,c.] by RELAT_1:62;
b in dom g by J2,Z1; then
j2: g is non empty;
b in dom h by J3,Z2; then
j3: h is non empty;
ff: for x being object st x in dom g /\ dom h holds g.x = h.x
proof
let x be object;
assume x in dom g /\ dom h; then
i1: x in {b} by XXREAL_1:418,Z1,Z2,J2,J3;
II: b in [.a,b.] & b in [.b,c.] by Z1,Z2;
a + 0 < b by Z1; then
I0: b - a > 0 by XREAL_1:20;
b + 0 < c by Z2; then
I2: c - b > 0 by XREAL_1:20;
h.x = h.b by i1,TARSKI:def 1
.= h1.b by FUNCT_1:49,II
.= 1 by Cb1, I2
.= g1.b by I0,Ab1
.= g.b by FUNCT_1:49,II
.= g.x by i1,TARSKI:def 1;
hence thesis;
end; then
fF: g tolerates h by PARTFUN1:def 4;
set gh = g +* h;
z1: dom gh = dom g \/ dom h by FUNCT_4:def 1
.= [.a,b.] \/ [.b,c.] by J2,h1,RELAT_1:62
.= [.a,c.] by XXREAL_1:165,Z1,Z2;
K2: a in [.a,b.] by Z1; then
W3: gh.a = g.a by FUNCT_4:15,PARTFUN1:def 4,ff,J2
.= g1.a by FUNCT_1:49,K2
.= 0 by Ah1;
K1: c in [.b,c.] by Z2;
c in dom h by J3,Z2; then
gh.c = h.c by FUNCT_4:13
.= h1.c by K1,FUNCT_1:49
.= 0 by Cb2; then
consider hh being PartFunc of REAL, REAL such that
TT: hh = f +* gh &
for x being Real st x in dom hh holds hh is_continuous_in x
by W3,Kluczyk,fF,z1,Glue,J2,j2,j3,J3;
hh = F by TT,FUNCT_4:14,S1;
hence thesis by TT;
end;
definition let a,b,c,d be Real;
assume that
Z1: a < b and
Z2: b < c and
Z3: c < d;
func TrapezoidalFS (a,b,c,d) -> FuzzySet of REAL equals :TPDef:
AffineMap (0,0) | (REAL \ ].a,d.[)
+* (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.])
+* (AffineMap (0,1) | [.b,c.])
+* (AffineMap (-1/(d-c),d/(d-c)) | [.c,d.]);
coherence
proof
k1: a + 0 < b by Z1;
k3: b < d by Z2,Z3,XXREAL_0:2;
set f1 = AffineMap (0,0) | (REAL \ ].a,d.[),
f2 = (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.]),
f3 = (AffineMap (0,1) | [.b,c.]),
f4 = (AffineMap (-1/(d-c),d/(d-c)) | [.c,d.]);
set f = f1 +* f2 +* f3 +* f4;
a < c by Z1,Z2,XXREAL_0:2; then
REAL \ ].a,d.[ <> {} by RealNon,Z3,XXREAL_0:2; then
L1: rng f1 = {0} by Andr1a;
L2: rng f2 = [.0,1.] by k1,Hope1,XREAL_1:20;
b in [.b,c.] by Z2; then
L3: rng f3 = {1} by Andr1a;
c + 0 < d by Z3; then
L4: rng f4 = [.0,1.] by Hope2a,XREAL_1:20;
Ss: rng (f1 +* f2) c= rng f1 \/ rng f2 by FUNCT_4:17;
rng (f1 +* f2 +* f3) c= rng (f1 +* f2) \/ rng f3 by FUNCT_4:17; then
d6: rng (f1 +* f2 +* f3) \/ rng f4 c=
rng (f1 +* f2) \/ rng f3 \/ rng f4 by XBOOLE_1:13;
rng f c= rng (f1 +* f2 +* f3) \/ rng f4 by FUNCT_4:17; then
l6: rng f c= rng (f1 +* f2) \/ rng f3 \/ rng f4 by d6;
[.0,0.] c= [.0,1.] by XXREAL_1:34; then
Hh: {0} c= [.0,1.] by XXREAL_1:17;
[.1,1.] c= [.0,1.] by XXREAL_1:34; then
{1} c= [.0,1.] by XXREAL_1:17; then
hx: {1} \/ [.0,1.] = [.0,1.] by XBOOLE_1:12;
ss: rng (f1 +* f2) c= [.0,1.] by Hh,Ss,L1,L2,XBOOLE_1:12;
sk: rng f c= rng (f1 +* f2) \/ [.0,1.] by hx,L3,XBOOLE_1:4,L4,l6;
rng (f1 +* f2) \/ [.0,1.] c= [.0,1.] \/ [.0,1.] by ss,XBOOLE_1:13; then
I3: rng f c= [.0,1.] by sk;
I5: dom f = dom (f1 +* f2 +* f3) \/ dom f4 by FUNCT_4:def 1
.= dom (f1 +* f2) \/ dom f3 \/ dom f4 by FUNCT_4:def 1
.= dom f1 \/ dom f2 \/ dom f3 \/ dom f4 by FUNCT_4:def 1;
REAL \ ].a,d.[ c= REAL; then
i7: REAL \ ].a,d.[ c= dom AffineMap (0,0) by FUNCT_2:def 1;
O4: a < +infty & c < +infty & d < +infty by XXREAL_0:9,XREAL_0:def 1;
a < c by Z1,Z2,XXREAL_0:2; then
O6: a < d by Z3,XXREAL_0:2;
O5: -infty < a by XXREAL_0:12,XREAL_0:def 1;
[.a,b.] c= REAL; then
O1: [.a,b.] c= dom AffineMap (1/(b-a),-a/(b-a)) by FUNCT_2:def 1;
[.b,c.] c= REAL; then
j1: [.b,c.] c= dom AffineMap (0,1) by FUNCT_2:def 1;
[.c,d.] c= REAL; then
OO: [.c,d.] c= dom AffineMap (-1/(d-c),d/(d-c)) by FUNCT_2:def 1;
d2: dom f3 \/ dom f4 = [.b,c.] \/ dom f4 by j1,RELAT_1:62
.= [.b,c.] \/ [.c,d.] by RELAT_1:62,OO
.= [.b,d.] by XXREAL_1:165,Z2,Z3;
d3: dom f2 \/ dom f3 \/ dom f4 = dom f2 \/ (dom f3 \/ dom f4) by XBOOLE_1:4
.= [.a,b.] \/ [.b,d.] by d2,O1,RELAT_1:62
.= [.a,d.] by XXREAL_1:165,k3,Z1;
dom f1 \/ (dom f2 \/ dom f3) \/ dom f4 =
dom f1 \/ ((dom f2 \/ dom f3) \/ dom f4) by XBOOLE_1:4
.= (REAL \ ].a,d.[) \/ [.a,d.] by d3,i7,RELAT_1:62
.= (].-infty,a.] \/ [.d,+infty.[) \/ [.a,d.] by XXREAL_1:398
.= ].-infty,a.] \/ ([.d,+infty.[ \/ [.a,d.]) by XBOOLE_1:4
.= ].-infty,a.] \/ [.a,+infty.[ by XXREAL_1:176,O4,O6
.= ].-infty,+infty.[ by XXREAL_1:172,O4,O5; then
dom f1 \/ dom f2 \/ dom f3 \/ dom f4 = REAL by XBOOLE_1:4,XXREAL_1:224;
hence thesis by FUNCT_2:2,I5,I3;
end;
end;
theorem
for a,b,c,d being Real st a < b & b < c & c < d holds
TrapezoidalFS (a,b,c,d) is normalized
proof
let a,b,c,d be Real;
set F = TrapezoidalFS (a,b,c,d);
reconsider bb = c as Element of REAL by XREAL_0:def 1;
assume
Z1: a < b & b < c & c < d;
s0: bb in [.c,d.] by Z1;
S1: F = AffineMap (0,0) | (REAL \ ].a,d.[)
+* (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.])
+* (AffineMap (0,1) | [.b,c.])
+* (AffineMap (-1/(d-c),d/(d-c)) | [.c,d.]) by Z1,TPDef;
s2: dom AffineMap (-1/(d-c),d/(d-c)) = REAL by FUNCT_2:def 1;
c + 0 < d by Z1; then
t1: d - c > 0 by XREAL_1:20;
bb in [.c,d.] by Z1; then
bb in dom (AffineMap (-1/(d-c),d/(d-c)) | [.c,d.]) by s2,RELAT_1:57; then
F.bb = (AffineMap (-1/(d-c),d/(d-c)) | [.c,d.]).bb by FUNCT_4:13,S1
.= (AffineMap (-1/(d-c),d/(d-c))).bb by FUNCT_1:49,s0
.= 1 by Cb1,t1;
hence thesis;
end;
theorem
for a,b,c,d being Real st a < b & b < c & c < d holds
TrapezoidalFS (a,b,c,d) is continuous
proof
let a,b,c,d be Real;
assume that
Z1: a < b and
Z2: b < c and
Z3: c < d;
set F = TrapezoidalFS (a,b,c,d);
S1: F = AffineMap (0,0) | (REAL \ ].a,d.[)
+* (AffineMap (1/(b-a),-a/(b-a)) | [.a,b.])
+* (AffineMap (0,1) | [.b,c.])
+* (AffineMap (-1/(d-c),d/(d-c)) | [.c,d.]) by Z1,Z2,Z3,TPDef;
set f1 = AffineMap (0,0);
set f = f1 | (REAL \ ].a,d.[);
set g1 = AffineMap (1/(b-a),-a/(b-a));
reconsider g = g1 | [.a,b.] as PartFunc of REAL, REAL;
set h1 = AffineMap (-1/(d-c),d/(d-c));
reconsider h = h1 | [.c,d.] as PartFunc of REAL, REAL;
set i1 = AffineMap (0,1);
reconsider i = i1 | [.b,c.] as PartFunc of REAL, REAL;
[.a,b.] c= REAL; then
d9: [.a,b.] c= dom g1 by FUNCT_2:def 1; then
J2: dom g = [.a,b.] by RELAT_1:62;
[.c,d.] c= REAL; then
d3: [.c,d.] c= dom h1 by FUNCT_2:def 1; then
J3: dom h = [.c,d.] by RELAT_1:62;
[.b,c.] c= REAL; then
d8: [.b,c.] c= dom i1 by FUNCT_2:def 1; then
JW: dom i = [.b,c.] by RELAT_1:62;
b in dom g by J2,Z1; then
j2: g is non empty;
c in dom h by J3,Z3; then
j3: h is non empty;
ff: for x being object st x in dom g /\ dom i holds g.x = i.x
proof
let x be object;
assume x in dom g /\ dom i; then
i1: x in {b} by XXREAL_1:418,Z1,Z2,J2,JW;
II: b in [.a,b.] & b in [.b,c.] by Z1,Z2;
a + 0 < b by Z1; then
I0: b - a > 0 by XREAL_1:20;
i.x = i.b by i1,TARSKI:def 1
.= i1.b by FUNCT_1:49,II
.= 1 by Kici1
.= g1.b by I0,Ab1
.= g.b by FUNCT_1:49,II
.= g.x by i1,TARSKI:def 1;
hence thesis;
end;
set gh = g +* i;
z1: dom gh = dom g \/ dom i by FUNCT_4:def 1
.= [.a,b.] \/ [.b,c.] by d9,RELAT_1:62,JW
.= [.a,c.] by XXREAL_1:165,Z1,Z2;
V5: a < c by XXREAL_0:2,Z1,Z2; then
PS: a in dom gh by z1; then
reconsider gh as non empty PartFunc of REAL, REAL;
K2: a in [.a,b.] by Z1; then
W3: gh.a = g.a by FUNCT_4:15,PARTFUN1:def 4,ff,J2
.= g1.a by FUNCT_1:49,K2
.= 0 by Ah1;
P3: c in [.b,c.] by Z2;
K1: c in [.c,d.] by Z3;
N3: dom h = [.c,d.] by d3,RELAT_1:62;
c + 0 < d by Z3; then
MN: d - c > 0 by XREAL_1:20;
N4: h.c = h1.c by FUNCT_1:49,K1
.= 1 by Cb1,MN;
KK: d in [.c,d.] by Z3; then
N5: h.d = h1.d by FUNCT_1:49
.= 0 by Cb2;
NN: gh is continuous by Glue,ff,j2,J2,JW,d8,P3,PARTFUN1:def 4;
M1: for x being object st x in dom gh /\ dom h holds gh.x = h.x
proof
let x be object;
assume x in dom gh /\ dom h; then
ll: x in {c} by XXREAL_1:418,Z3,V5,J3,z1; then
gh.x = gh.c by TARSKI:def 1
.= i.c by FUNCT_4:13,P3,JW
.= i1.c by FUNCT_1:49,P3
.= h.c by N4,Kici1
.= h.x by ll,TARSKI:def 1;
hence thesis;
end; then
fG: gh tolerates h by PARTFUN1:def 4;
set ghi = gh +* h;
V3: dom ghi = dom gh \/ dom h by FUNCT_4:def 1
.= [.a,c.] \/ [.c,d.] by z1,d3,RELAT_1:62
.= [.a,d.] by XXREAL_1:165,Z3,V5;
V4: ghi.a = 0 by FUNCT_4:15,M1,PARTFUN1:def 4,PS,W3;
ghi.d = 0 by N3,FUNCT_4:13,KK,N5; then
consider hh being PartFunc of REAL, REAL such that
TT: hh = f +* ghi &
for x being Real st x in dom hh holds hh is_continuous_in x
by Kluczyk,V3,V4,Glue,NN,j3,z1,J3,fG;
hh = f +* (g +* i) +* h by FUNCT_4:14,TT
.= f +* g +* i +* h by FUNCT_4:14;
hence thesis by TT,S1;
end;
definition let F be FuzzySet of REAL;
attr F is triangular means
ex a,b,c being Real st F = TriangularFS (a,b,c);
attr F is trapezoidal means
ex a,b,c,d being Real st F = TrapezoidalFS (a,b,c,d);
end;
registration
cluster triangular for FuzzySet of REAL;
existence
proof
take TriangularFS (0,1,2);
thus thesis;
end;
cluster trapezoidal for FuzzySet of REAL;
existence
proof
take TrapezoidalFS (0,1,2,3);
thus thesis;
end;
end;
~~