let X be non empty set ; for R being RMembership_Func of X,X holds (TrCl R) (#) (TrCl R) = "\/" { ((i iter R) (#) (j iter R)) where i, j is Element of NAT : ( i > 0 & j > 0 ) } ,(FuzzyLattice [:X,X:])
let R be RMembership_Func of X,X; (TrCl R) (#) (TrCl R) = "\/" { ((i iter R) (#) (j iter R)) where i, j is Element of NAT : ( i > 0 & j > 0 ) } ,(FuzzyLattice [:X,X:])
set Q = { (n iter R) where n is Element of NAT : n > 0 } ;
set FL = FuzzyLattice [:X,X:];
A1:
{ (n iter R) where n is Element of NAT : n > 0 } c= the carrier of (FuzzyLattice [:X,X:])
A3:
{ ("\/" { ((@ r) (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r is Element of : r in { (n iter R) where n is Element of NAT : n > 0 } } = { ("\/" { ([:X,X:],((@ r') (#) (@ s')) @ ) where s' is Element of : s' in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r' is Element of : r' in { (n iter R) where n is Element of NAT : n > 0 } }
proof
deffunc H1(
Element of )
-> Element of the
carrier of
(FuzzyLattice [:X,X:]) =
"\/" { ([:X,X:],((@ $1) (#) (@ s)) @ ) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,
(FuzzyLattice [:X,X:]);
deffunc H2(
Element of )
-> Element of the
carrier of
(FuzzyLattice [:X,X:]) =
"\/" { ((@ $1) (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,
(FuzzyLattice [:X,X:]);
defpred S1[
Element of ]
means $1
in { (n iter R) where n is Element of NAT : n > 0 } ;
for
r being
Element of holds
"\/" { ((@ r) (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,
(FuzzyLattice [:X,X:]) = "\/" { ([:X,X:],((@ r) (#) (@ s)) @ ) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,
(FuzzyLattice [:X,X:])
proof
let r be
Element of ;
"\/" { ((@ r) (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:]) = "\/" { ([:X,X:],((@ r) (#) (@ s)) @ ) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])
{ ((@ r) (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } = { ([:X,X:],((@ r) (#) (@ s)) @ ) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } }
hence
"\/" { ((@ r) (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,
(FuzzyLattice [:X,X:]) = "\/" { ([:X,X:],((@ r) (#) (@ s)) @ ) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,
(FuzzyLattice [:X,X:])
;
verum
end;
then A5:
for
r being
Element of holds
H2(
r)
= H1(
r)
;
{ H2(r) where r is Element of : S1[r] } = { H1(r) where r is Element of : S1[r] }
from FRAENKEL:sch 5(A5);
hence
{ ("\/" { ((@ r) (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r is Element of : r in { (n iter R) where n is Element of NAT : n > 0 } } = { ("\/" { ([:X,X:],((@ r') (#) (@ s')) @ ) where s' is Element of : s' in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r' is Element of : r' in { (n iter R) where n is Element of NAT : n > 0 } }
;
verum
end;
defpred S1[ Element of ] means $1 in { (n iter R) where n is Element of NAT : n > 0 } ;
defpred S2[ Element of ] means $1 in { (n iter R) where n is Element of NAT : n > 0 } ;
deffunc H1( Element of , Element of ) -> Element of the carrier of (FuzzyLattice [:X,X:]) = [:X,X:],((@ $1) (#) (@ $2)) @ ;
A6:
{ ((@ r) (#) (@ s)) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) } = { ((i iter R) (#) (j iter R)) where i, j is Element of NAT : ( i > 0 & j > 0 ) }
proof
set A =
{ ((@ r) (#) (@ s)) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) } ;
set B =
{ ((i iter R) (#) (j iter R)) where i, j is Element of NAT : ( i > 0 & j > 0 ) } ;
thus
{ ((@ r) (#) (@ s)) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) } c= { ((i iter R) (#) (j iter R)) where i, j is Element of NAT : ( i > 0 & j > 0 ) }
XBOOLE_0:def 10 { ((i iter R) (#) (j iter R)) where i, j is Element of NAT : ( i > 0 & j > 0 ) } c= { ((@ r) (#) (@ s)) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) }
thus
{ ((i iter R) (#) (j iter R)) where i, j is Element of NAT : ( i > 0 & j > 0 ) } c= { ((@ r) (#) (@ s)) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) }
verumproof
let b be
set ;
TARSKI:def 3 ( not b in { ((i iter R) (#) (j iter R)) where i, j is Element of NAT : ( i > 0 & j > 0 ) } or b in { ((@ r) (#) (@ s)) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) } )
assume
b in { ((i iter R) (#) (j iter R)) where i, j is Element of NAT : ( i > 0 & j > 0 ) }
;
b in { ((@ r) (#) (@ s)) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) }
then consider i,
j being
Element of
NAT such that A10:
b = (i iter R) (#) (j iter R)
and A11:
(
i > 0 &
j > 0 )
;
j iter R = [:X,X:],
(j iter R) @
by LFUZZY_0:def 6;
then reconsider s =
j iter R as
Element of ;
i iter R = [:X,X:],
(i iter R) @
by LFUZZY_0:def 6;
then reconsider r =
i iter R as
Element of ;
A12:
(
@ r = r &
@ s = s )
by LFUZZY_0:def 5;
(
i iter R in { (n iter R) where n is Element of NAT : n > 0 } &
j iter R in { (n iter R) where n is Element of NAT : n > 0 } )
by A11;
hence
b in { ((@ r) (#) (@ s)) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) }
by A10, A12;
verum
end;
end;
A13:
{ ([:X,X:],((@ r) (#) (@ s)) @ ) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) } = { ((@ r) (#) (@ s)) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) }
proof
deffunc H2(
Element of ,
Element of )
-> Element of
bool [:[:X,X:],REAL :] =
(@ $1) (#) (@ $2);
deffunc H3(
Element of ,
Element of )
-> Element of the
carrier of
(FuzzyLattice [:X,X:]) =
[:X,X:],
((@ $1) (#) (@ $2)) @ ;
defpred S3[
Element of ,
Element of ]
means ( $1
in { (n iter R) where n is Element of NAT : n > 0 } & $2
in { (n iter R) where n is Element of NAT : n > 0 } );
A14:
for
r,
s being
Element of holds
H3(
r,
s)
= H2(
r,
s)
by LFUZZY_0:def 6;
{ H3(r,s) where r, s is Element of : S3[r,s] } = { H2(r,s) where r, s is Element of : S3[r,s] }
from FRAENKEL:sch 7(A14);
hence
{ ([:X,X:],((@ r) (#) (@ s)) @ ) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) } = { ((@ r) (#) (@ s)) where r, s is Element of : ( r in { (n iter R) where n is Element of NAT : n > 0 } & s in { (n iter R) where n is Element of NAT : n > 0 } ) }
;
verum
end;
A15:
"\/" { (n iter R) where n is Element of NAT : n > 0 } ,(FuzzyLattice [:X,X:]) = @ ("\/" { (n iter R) where n is Element of NAT : n > 0 } ,(FuzzyLattice [:X,X:]))
by LFUZZY_0:def 5;
{ ((@ r) (#) (TrCl R)) where r is Element of : r in { (n iter R) where n is Element of NAT : n > 0 } } = { ("\/" { ((@ r') (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r' is Element of : r' in { (n iter R) where n is Element of NAT : n > 0 } }
proof
set A =
{ ((@ r) (#) (TrCl R)) where r is Element of : r in { (n iter R) where n is Element of NAT : n > 0 } } ;
set B =
{ ("\/" { ((@ r') (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r' is Element of : r' in { (n iter R) where n is Element of NAT : n > 0 } } ;
thus
{ ((@ r) (#) (TrCl R)) where r is Element of : r in { (n iter R) where n is Element of NAT : n > 0 } } c= { ("\/" { ((@ r') (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r' is Element of : r' in { (n iter R) where n is Element of NAT : n > 0 } }
XBOOLE_0:def 10 { ("\/" { ((@ r') (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r' is Element of : r' in { (n iter R) where n is Element of NAT : n > 0 } } c= { ((@ r) (#) (TrCl R)) where r is Element of : r in { (n iter R) where n is Element of NAT : n > 0 } } proof
let a be
set ;
TARSKI:def 3 ( not a in { ((@ r) (#) (TrCl R)) where r is Element of : r in { (n iter R) where n is Element of NAT : n > 0 } } or a in { ("\/" { ((@ r') (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r' is Element of : r' in { (n iter R) where n is Element of NAT : n > 0 } } )
assume
a in { ((@ r) (#) (TrCl R)) where r is Element of : r in { (n iter R) where n is Element of NAT : n > 0 } }
;
a in { ("\/" { ((@ r') (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r' is Element of : r' in { (n iter R) where n is Element of NAT : n > 0 } }
then consider r being
Element of
such that A16:
a = (@ r) (#) (TrCl R)
and A17:
r in { (n iter R) where n is Element of NAT : n > 0 }
;
a = "\/" { ((@ r) (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,
(FuzzyLattice [:X,X:])
by A15, A1, A16, Th34;
hence
a in { ("\/" { ((@ r') (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r' is Element of : r' in { (n iter R) where n is Element of NAT : n > 0 } }
by A17;
verum
end;
thus
{ ("\/" { ((@ r') (#) (@ s)) where s is Element of : s in { (n iter R) where n is Element of NAT : n > 0 } } ,(FuzzyLattice [:X,X:])) where r' is Element of : r' in { (n iter R) where n is Element of NAT : n > 0 } } c= { ((@ r) (#) (TrCl R)) where r is Element of : r in { (n iter R) where n is Element of NAT : n > 0 } }
verum
end;
hence (TrCl R) (#) (TrCl R) =
"\/" { ("\/" { H1(r,s) where s is Element of : S1[s] } ,(FuzzyLattice [:X,X:])) where r is Element of : S2[r] } ,(FuzzyLattice [:X,X:])
by A15, A1, A3, Th35
.=
"\/" { H1(r,s) where r, s is Element of : ( S2[r] & S1[s] ) } ,(FuzzyLattice [:X,X:])
from LFUZZY_0:sch 1()
.=
"\/" { ((i iter R) (#) (j iter R)) where i, j is Element of NAT : ( i > 0 & j > 0 ) } ,(FuzzyLattice [:X,X:])
by A6, A13
;
verum