let L be complete Lattice; for C being FormalContext holds
( ConceptLattice C,L are_isomorphic iff ex g being Function of the carrier of C, the carrier of L ex d being Function of the carrier' of C, the carrier of L st
( rng g is supremum-dense & rng d is infimum-dense & ( for o being Object of C
for a being Attribute of C holds
( o is-connected-with a iff g . o [= d . a ) ) ) )
let C be FormalContext; ( ConceptLattice C,L are_isomorphic iff ex g being Function of the carrier of C, the carrier of L ex d being Function of the carrier' of C, the carrier of L st
( rng g is supremum-dense & rng d is infimum-dense & ( for o being Object of C
for a being Attribute of C holds
( o is-connected-with a iff g . o [= d . a ) ) ) )
given g being Function of the carrier of C, the carrier of L, d being Function of the carrier' of C, the carrier of L such that A33:
rng g is supremum-dense
and
A34:
rng d is infimum-dense
and
A35:
for o being Object of C
for a being Attribute of C holds
( o is-connected-with a iff g . o [= d . a )
; ConceptLattice C,L are_isomorphic
set fi = { [x,ConceptStr(# O,A #)] where x is Element of L, O is Subset of the carrier of C, A is Subset of the carrier' of C : ( O = { o where o is Object of C : g . o [= x } & A = { a where a is Attribute of C : x [= d . a } ) } ;
set f = { [ConceptStr(# O,A #),x] where O is Subset of the carrier of C, A is Subset of the carrier' of C, x is Element of L : ( ConceptStr(# O,A #) is FormalConcept of C & x = "\/" ( { (g . o) where o is Object of C : o in O } ,L) ) } ;
A36:
ConceptLattice C = LattStr(# (B-carrier C),(B-join C),(B-meet C) #)
by CONLAT_1:def 20;
A37:
{ [ConceptStr(# O,A #),x] where O is Subset of the carrier of C, A is Subset of the carrier' of C, x is Element of L : ( ConceptStr(# O,A #) is FormalConcept of C & x = "\/" ( { (g . o) where o is Object of C : o in O } ,L) ) } c= [: the carrier of (ConceptLattice C), the carrier of L:]
proof
let y be
object ;
TARSKI:def 3 ( not y in { [ConceptStr(# O,A #),x] where O is Subset of the carrier of C, A is Subset of the carrier' of C, x is Element of L : ( ConceptStr(# O,A #) is FormalConcept of C & x = "\/" ( { (g . o) where o is Object of C : o in O } ,L) ) } or y in [: the carrier of (ConceptLattice C), the carrier of L:] )
assume
y in { [ConceptStr(# O,A #),x] where O is Subset of the carrier of C, A is Subset of the carrier' of C, x is Element of L : ( ConceptStr(# O,A #) is FormalConcept of C & x = "\/" ( { (g . o) where o is Object of C : o in O } ,L) ) }
;
y in [: the carrier of (ConceptLattice C), the carrier of L:]
then consider O being
Subset of the
carrier of
C,
A being
Subset of the
carrier' of
C,
x being
Element of
L such that A38:
y = [ConceptStr(# O,A #),x]
and A39:
ConceptStr(#
O,
A #) is
FormalConcept of
C
and
x = "\/" (
{ (g . o) where o is Object of C : o in O } ,
L)
;
ConceptStr(#
O,
A #)
in the
carrier of
(ConceptLattice C)
by A36, A39, CONLAT_1:31;
hence
y in [: the carrier of (ConceptLattice C), the carrier of L:]
by A38, ZFMISC_1:def 2;
verum
end;
{ [x,ConceptStr(# O,A #)] where x is Element of L, O is Subset of the carrier of C, A is Subset of the carrier' of C : ( O = { o where o is Object of C : g . o [= x } & A = { a where a is Attribute of C : x [= d . a } ) } c= [: the carrier of L, the carrier of (ConceptLattice C):]
proof
let y be
object ;
TARSKI:def 3 ( not y in { [x,ConceptStr(# O,A #)] where x is Element of L, O is Subset of the carrier of C, A is Subset of the carrier' of C : ( O = { o where o is Object of C : g . o [= x } & A = { a where a is Attribute of C : x [= d . a } ) } or y in [: the carrier of L, the carrier of (ConceptLattice C):] )
assume
y in { [x,ConceptStr(# O,A #)] where x is Element of L, O is Subset of the carrier of C, A is Subset of the carrier' of C : ( O = { o where o is Object of C : g . o [= x } & A = { a where a is Attribute of C : x [= d . a } ) }
;
y in [: the carrier of L, the carrier of (ConceptLattice C):]
then consider x being
Element of
L,
O being
Subset of the
carrier of
C,
A being
Subset of the
carrier' of
C such that A40:
y = [x,ConceptStr(# O,A #)]
and A41:
O = { o where o is Object of C : g . o [= x }
and A42:
A = { a where a is Attribute of C : x [= d . a }
;
A43:
(AttributeDerivation C) . the
Intent of
ConceptStr(#
O,
A #)
= the
Extent of
ConceptStr(#
O,
A #)
proof
thus
(AttributeDerivation C) . the
Intent of
ConceptStr(#
O,
A #)
c= the
Extent of
ConceptStr(#
O,
A #)
XBOOLE_0:def 10 the Extent of ConceptStr(# O,A #) c= (AttributeDerivation C) . the Intent of ConceptStr(# O,A #)proof
let u be
object ;
TARSKI:def 3 ( not u in (AttributeDerivation C) . the Intent of ConceptStr(# O,A #) or u in the Extent of ConceptStr(# O,A #) )
A44:
"/\" (
{ (d . a9) where a9 is Attribute of C : x [= d . a9 } ,
L)
= x
assume
u in (AttributeDerivation C) . the
Intent of
ConceptStr(#
O,
A #)
;
u in the Extent of ConceptStr(# O,A #)
then
u in { o where o is Object of C : for a being Attribute of C st a in the Intent of ConceptStr(# O,A #) holds
o is-connected-with a }
by CONLAT_1:def 4;
then consider u9 being
Object of
C such that A51:
u9 = u
and A52:
for
a being
Attribute of
C st
a in the
Intent of
ConceptStr(#
O,
A #) holds
u9 is-connected-with a
;
A53:
for
v being
Attribute of
C st
v in { a where a is Attribute of C : x [= d . a } holds
g . u9 [= d . v
by A35, A42, A52;
g . u9 is_less_than { (d . a) where a is Attribute of C : x [= d . a }
then
g . u9 [= x
by A44, LATTICE3:34;
hence
u in the
Extent of
ConceptStr(#
O,
A #)
by A41, A51;
verum
end;
let u be
object ;
TARSKI:def 3 ( not u in the Extent of ConceptStr(# O,A #) or u in (AttributeDerivation C) . the Intent of ConceptStr(# O,A #) )
assume
u in the
Extent of
ConceptStr(#
O,
A #)
;
u in (AttributeDerivation C) . the Intent of ConceptStr(# O,A #)
then consider u9 being
Object of
C such that A56:
u9 = u
and A57:
g . u9 [= x
by A41;
A58:
for
v being
Attribute of
C st
v in { a where a is Attribute of C : x [= d . a } holds
g . u9 [= d . v
for
v being
Attribute of
C st
v in { a where a is Attribute of C : x [= d . a } holds
u9 is-connected-with v
then
u9 in { o where o is Object of C : for a being Attribute of C st a in the Intent of ConceptStr(# O,A #) holds
o is-connected-with a }
by A42;
hence
u in (AttributeDerivation C) . the
Intent of
ConceptStr(#
O,
A #)
by A56, CONLAT_1:def 4;
verum
end;
(ObjectDerivation C) . the
Extent of
ConceptStr(#
O,
A #)
= the
Intent of
ConceptStr(#
O,
A #)
proof
thus
(ObjectDerivation C) . the
Extent of
ConceptStr(#
O,
A #)
c= the
Intent of
ConceptStr(#
O,
A #)
XBOOLE_0:def 10 the Intent of ConceptStr(# O,A #) c= (ObjectDerivation C) . the Extent of ConceptStr(# O,A #)proof
let u be
object ;
TARSKI:def 3 ( not u in (ObjectDerivation C) . the Extent of ConceptStr(# O,A #) or u in the Intent of ConceptStr(# O,A #) )
A59:
"\/" (
{ (g . a9) where a9 is Object of C : g . a9 [= x } ,
L)
= x
assume
u in (ObjectDerivation C) . the
Extent of
ConceptStr(#
O,
A #)
;
u in the Intent of ConceptStr(# O,A #)
then
u in { o where o is Attribute of C : for a being Object of C st a in the Extent of ConceptStr(# O,A #) holds
a is-connected-with o }
by CONLAT_1:def 3;
then consider u9 being
Attribute of
C such that A66:
u9 = u
and A67:
for
a being
Object of
C st
a in the
Extent of
ConceptStr(#
O,
A #) holds
a is-connected-with u9
;
A68:
for
v being
Object of
C st
v in { a where a is Object of C : g . a [= x } holds
g . v [= d . u9
by A35, A41, A67;
{ (g . a) where a is Object of C : g . a [= x } is_less_than d . u9
then
x [= d . u9
by A59, LATTICE3:def 21;
hence
u in the
Intent of
ConceptStr(#
O,
A #)
by A42, A66;
verum
end;
let u be
object ;
TARSKI:def 3 ( not u in the Intent of ConceptStr(# O,A #) or u in (ObjectDerivation C) . the Extent of ConceptStr(# O,A #) )
assume
u in the
Intent of
ConceptStr(#
O,
A #)
;
u in (ObjectDerivation C) . the Extent of ConceptStr(# O,A #)
then consider u9 being
Attribute of
C such that A71:
u9 = u
and A72:
x [= d . u9
by A42;
A73:
for
v being
Object of
C st
v in { a where a is Object of C : g . a [= x } holds
g . v [= d . u9
for
v being
Object of
C st
v in { a where a is Object of C : g . a [= x } holds
v is-connected-with u9
then
u9 in { o where o is Attribute of C : for a being Object of C st a in the Extent of ConceptStr(# O,A #) holds
a is-connected-with o }
by A41;
hence
u in (ObjectDerivation C) . the
Extent of
ConceptStr(#
O,
A #)
by A71, CONLAT_1:def 3;
verum
end;
then
ConceptStr(#
O,
A #) is
FormalConcept of
C
by A43, Lm3, CONLAT_1:def 10;
then
ConceptStr(#
O,
A #)
in the
carrier of
(ConceptLattice C)
by A36, CONLAT_1:31;
hence
y in [: the carrier of L, the carrier of (ConceptLattice C):]
by A40, ZFMISC_1:def 2;
verum
end;
then reconsider fi = { [x,ConceptStr(# O,A #)] where x is Element of L, O is Subset of the carrier of C, A is Subset of the carrier' of C : ( O = { o where o is Object of C : g . o [= x } & A = { a where a is Attribute of C : x [= d . a } ) } as Relation of the carrier of L, the carrier of (ConceptLattice C) ;
A74:
for x, y1, y2 being object st [x,y1] in fi & [x,y2] in fi holds
y1 = y2
proof
let x,
y1,
y2 be
object ;
( [x,y1] in fi & [x,y2] in fi implies y1 = y2 )
assume that A75:
[x,y1] in fi
and A76:
[x,y2] in fi
;
y1 = y2
consider z being
Element of
L,
O being
Subset of the
carrier of
C,
A being
Subset of the
carrier' of
C such that A77:
[x,y1] = [z,ConceptStr(# O,A #)]
and A78:
(
O = { o where o is Object of C : g . o [= z } &
A = { a where a is Attribute of C : z [= d . a } )
by A75;
consider z9 being
Element of
L,
O9 being
Subset of the
carrier of
C,
A9 being
Subset of the
carrier' of
C such that A79:
[x,y2] = [z9,ConceptStr(# O9,A9 #)]
and A80:
(
O9 = { o where o is Object of C : g . o [= z9 } &
A9 = { a where a is Attribute of C : z9 [= d . a } )
by A76;
A81:
z =
x
by A77, XTUPLE_0:1
.=
z9
by A79, XTUPLE_0:1
;
thus y1 =
[x,y1] `2
.=
[x,y2] `2
by A77, A78, A79, A80, A81
.=
y2
;
verum
end;
the carrier of L c= dom fi
then A82:
the carrier of L = dom fi
;
reconsider f = { [ConceptStr(# O,A #),x] where O is Subset of the carrier of C, A is Subset of the carrier' of C, x is Element of L : ( ConceptStr(# O,A #) is FormalConcept of C & x = "\/" ( { (g . o) where o is Object of C : o in O } ,L) ) } as Relation of the carrier of (ConceptLattice C), the carrier of L by A37;
the carrier of (ConceptLattice C) c= dom f
then A85:
the carrier of (ConceptLattice C) = dom f
;
reconsider fi = fi as Function of the carrier of L, the carrier of (ConceptLattice C) by A82, A74, FUNCT_1:def 1, FUNCT_2:def 1;
for x, y1, y2 being object st [x,y1] in f & [x,y2] in f holds
y1 = y2
proof
let x,
y1,
y2 be
object ;
( [x,y1] in f & [x,y2] in f implies y1 = y2 )
assume that A86:
[x,y1] in f
and A87:
[x,y2] in f
;
y1 = y2
consider O being
Subset of the
carrier of
C,
A being
Subset of the
carrier' of
C,
z being
Element of
L such that A88:
[x,y1] = [ConceptStr(# O,A #),z]
and
ConceptStr(#
O,
A #) is
FormalConcept of
C
and A89:
z = "\/" (
{ (g . o) where o is Object of C : o in O } ,
L)
by A86;
consider O9 being
Subset of the
carrier of
C,
A9 being
Subset of the
carrier' of
C,
z9 being
Element of
L such that A90:
[x,y2] = [ConceptStr(# O9,A9 #),z9]
and
ConceptStr(#
O9,
A9 #) is
FormalConcept of
C
and A91:
z9 = "\/" (
{ (g . o) where o is Object of C : o in O9 } ,
L)
by A87;
A92:
ConceptStr(#
O,
A #) =
[ConceptStr(# O,A #),z] `1
.=
[x,y1] `1
by A88
.=
x
.=
[x,y2] `1
.=
[ConceptStr(# O9,A9 #),z9] `1
by A90
.=
ConceptStr(#
O9,
A9 #)
;
thus y1 =
[x,y1] `2
.=
[x,y2] `2
by A88, A89, A90, A91, A92
.=
y2
;
verum
end;
then reconsider f = f as Function of the carrier of (ConceptLattice C), the carrier of L by A85, FUNCT_1:def 1, FUNCT_2:def 1;
A93:
ConceptLattice C = LattStr(# (B-carrier C),(B-join C),(B-meet C) #)
by CONLAT_1:def 20;
A94:
for a being Element of L holds f . (fi . a) = a
proof
let a be
Element of
L;
f . (fi . a) = a
reconsider a =
a as
Element of
L ;
set A =
{ a9 where a9 is Attribute of C : a [= d . a9 } ;
{ a9 where a9 is Attribute of C : a [= d . a9 } c= the
carrier' of
C
then reconsider A =
{ a9 where a9 is Attribute of C : a [= d . a9 } as
Subset of the
carrier' of
C ;
set O =
{ o where o is Object of C : g . o [= a } ;
{ o where o is Object of C : g . o [= a } c= the
carrier of
C
then reconsider O =
{ o where o is Object of C : g . o [= a } as
Subset of the
carrier of
C ;
set b =
"\/" (
{ (g . o) where o is Object of C : o in the Extent of ConceptStr(# O,A #) } ,
L);
A95:
"\/" (
{ (g . o) where o is Object of C : o in { o9 where o9 is Object of C : g . o9 [= a } } ,
L)
= a
A104:
[a,ConceptStr(# O,A #)] in fi
;
then
ConceptStr(#
O,
A #)
in rng fi
by XTUPLE_0:def 13;
then
ConceptStr(#
O,
A #) is
FormalConcept of
C
by A93, CONLAT_1:31;
then
[ConceptStr(# O,A #),("\/" ( { (g . o) where o is Object of C : o in the Extent of ConceptStr(# O,A #) } ,L))] in f
;
then
f . ConceptStr(#
O,
A #)
= "\/" (
{ (g . o) where o is Object of C : o in the Extent of ConceptStr(# O,A #) } ,
L)
by FUNCT_1:1;
hence
f . (fi . a) = a
by A104, A95, FUNCT_1:1;
verum
end;
the carrier of L c= rng f
then A108:
rng f = the carrier of L
;
A109:
for x being Element of (ConceptLattice C) holds f . x = "/\" ( { (d . a) where a is Attribute of C : a in the Intent of (x @) } ,L)
proof
let x be
Element of
(ConceptLattice C);
f . x = "/\" ( { (d . a) where a is Attribute of C : a in the Intent of (x @) } ,L)
set y =
"\/" (
{ (g . o) where o is Object of C : o in the Extent of (x @) } ,
L);
A110:
[(x @),("\/" ( { (g . o) where o is Object of C : o in the Extent of (x @) } ,L))] in f
;
A111:
for
o being
object st
o in { (d . a9) where a9 is Attribute of C : "\/" ( { (g . o) where o is Object of C : o in the Extent of (x @) } ,L) [= d . a9 } holds
o in { (d . a) where a is Attribute of C : a in the Intent of (x @) }
A115:
for
o9 being
Object of
C st
o9 in the
Extent of
(x @) holds
for
a9 being
Attribute of
C st
a9 in the
Intent of
(x @) holds
g . o9 [= d . a9
A117:
for
o being
object st
o in { (d . a) where a is Attribute of C : a in the Intent of (x @) } holds
o in { (d . a9) where a9 is Attribute of C : "\/" ( { (g . o) where o is Object of C : o in the Extent of (x @) } ,L) [= d . a9 }
A120:
"/\" (
{ (d . a9) where a9 is Attribute of C : "\/" ( { (g . o) where o is Object of C : o in the Extent of (x @) } ,L) [= d . a9 } ,
L)
= "\/" (
{ (g . o) where o is Object of C : o in the Extent of (x @) } ,
L)
proof
consider D being
Subset of
(rng d) such that A121:
"/\" (
D,
L)
= "\/" (
{ (g . o) where o is Object of C : o in the Extent of (x @) } ,
L)
by A34;
A122:
"\/" (
{ (g . o) where o is Object of C : o in the Extent of (x @) } ,
L)
is_less_than D
by A121, LATTICE3:34;
D c= { (d . a9) where a9 is Attribute of C : "\/" ( { (g . o) where o is Object of C : o in the Extent of (x @) } ,L) [= d . a9 }
then A126:
"/\" (
{ (d . a9) where a9 is Attribute of C : "\/" ( { (g . o) where o is Object of C : o in the Extent of (x @) } ,L) [= d . a9 } ,
L)
[= "\/" (
{ (g . o) where o is Object of C : o in the Extent of (x @) } ,
L)
by A121, LATTICE3:45;
"\/" (
{ (g . o) where o is Object of C : o in the Extent of (x @) } ,
L)
is_less_than { (d . a9) where a9 is Attribute of C : "\/" ( { (g . o) where o is Object of C : o in the Extent of (x @) } ,L) [= d . a9 }
then
"\/" (
{ (g . o) where o is Object of C : o in the Extent of (x @) } ,
L)
[= "/\" (
{ (d . a9) where a9 is Attribute of C : "\/" ( { (g . o) where o is Object of C : o in the Extent of (x @) } ,L) [= d . a9 } ,
L)
by LATTICE3:39;
hence
"/\" (
{ (d . a9) where a9 is Attribute of C : "\/" ( { (g . o) where o is Object of C : o in the Extent of (x @) } ,L) [= d . a9 } ,
L)
= "\/" (
{ (g . o) where o is Object of C : o in the Extent of (x @) } ,
L)
by A126, LATTICES:8;
verum
end;
f . x =
f . (x @)
by CONLAT_1:def 21
.=
"\/" (
{ (g . o) where o is Object of C : o in the Extent of (x @) } ,
L)
by A110, FUNCT_1:1
;
hence
f . x = "/\" (
{ (d . a) where a is Attribute of C : a in the Intent of (x @) } ,
L)
by A111, A117, A120, TARSKI:2;
verum
end;
A127:
for a being Element of (ConceptLattice C) holds fi . (f . a) = a
proof
let a be
Element of
(ConceptLattice C);
fi . (f . a) = a
set x =
"/\" (
{ (d . u) where u is Attribute of C : u in the Intent of (a @) } ,
L);
set A =
{ a9 where a9 is Attribute of C : "/\" ( { (d . u) where u is Attribute of C : u in the Intent of (a @) } ,L) [= d . a9 } ;
{ a9 where a9 is Attribute of C : "/\" ( { (d . u) where u is Attribute of C : u in the Intent of (a @) } ,L) [= d . a9 } c= the
carrier' of
C
then reconsider A =
{ a9 where a9 is Attribute of C : "/\" ( { (d . u) where u is Attribute of C : u in the Intent of (a @) } ,L) [= d . a9 } as
Subset of the
carrier' of
C ;
set O =
{ o where o is Object of C : g . o [= "/\" ( { (d . u) where u is Attribute of C : u in the Intent of (a @) } ,L) } ;
{ o where o is Object of C : g . o [= "/\" ( { (d . u) where u is Attribute of C : u in the Intent of (a @) } ,L) } c= the
carrier of
C
then reconsider O =
{ o where o is Object of C : g . o [= "/\" ( { (d . u) where u is Attribute of C : u in the Intent of (a @) } ,L) } as
Subset of the
carrier of
C ;
A128:
O = { o where o is Object of C : for a9 being Attribute of C st a9 in the Intent of (a @) holds
g . o [= d . a9 }
{ o where o is Object of C : for a9 being Attribute of C st a9 in the Intent of (a @) holds
g . o [= d . a9 } = { o where o is Object of C : for a9 being Attribute of C st a9 in the Intent of (a @) holds
o is-connected-with a9 }
then A137:
O =
(AttributeDerivation C) . the
Intent of
(a @)
by A128, CONLAT_1:def 4
.=
the
Extent of
(a @)
by CONLAT_1:def 10
;
A138:
fi . ("/\" ( { (d . u) where u is Attribute of C : u in the Intent of (a @) } ,L)) = fi . (f . a)
by A109;
[("/\" ( { (d . u) where u is Attribute of C : u in the Intent of (a @) } ,L)),ConceptStr(# O,A #)] in fi
;
then A139:
fi . ("/\" ( { (d . u) where u is Attribute of C : u in the Intent of (a @) } ,L)) = ConceptStr(#
O,
A #)
by FUNCT_1:1;
then
ConceptStr(#
O,
A #) is
FormalConcept of
C
by A93, CONLAT_1:31;
then A =
(ObjectDerivation C) . the
Extent of
(a @)
by A137, CONLAT_1:def 10
.=
the
Intent of
(a @)
by CONLAT_1:def 10
;
hence
fi . (f . a) = a
by A138, A139, A137, CONLAT_1:def 21;
verum
end;
A140:
for a, b being Element of L st a [= b holds
fi . a [= fi . b
proof
let a,
b be
Element of
L;
( a [= b implies fi . a [= fi . b )
set ca =
fi . a;
set cb =
fi . b;
assume A141:
a [= b
;
fi . a [= fi . b
A142:
{ o where o is Object of C : g . o [= a } c= { o where o is Object of C : g . o [= b }
A145:
dom fi = the
carrier of
L
by FUNCT_2:def 1;
then consider ya being
object such that A146:
[a,ya] in fi
by XTUPLE_0:def 12;
consider yb being
object such that A147:
[b,yb] in fi
by A145, XTUPLE_0:def 12;
consider xb being
Element of
L,
Ob being
Subset of the
carrier of
C,
Ab being
Subset of the
carrier' of
C such that A148:
[b,yb] = [xb,ConceptStr(# Ob,Ab #)]
and A149:
Ob = { o where o is Object of C : g . o [= xb }
and
Ab = { a9 where a9 is Attribute of C : xb [= d . a9 }
by A147;
A150:
b =
[b,yb] `1
.=
[xb,ConceptStr(# Ob,Ab #)] `1
by A148
.=
xb
;
then
fi . b = ConceptStr(#
Ob,
Ab #)
by A147, A148, FUNCT_1:1;
then A151:
the
Extent of
((fi . b) @) = Ob
by CONLAT_1:def 21;
consider xa being
Element of
L,
Oa being
Subset of the
carrier of
C,
Aa being
Subset of the
carrier' of
C such that A152:
[a,ya] = [xa,ConceptStr(# Oa,Aa #)]
and A153:
Oa = { o where o is Object of C : g . o [= xa }
and
Aa = { a9 where a9 is Attribute of C : xa [= d . a9 }
by A146;
A154:
a =
[a,ya] `1
.=
[xa,ConceptStr(# Oa,Aa #)] `1
by A152
.=
xa
;
then
fi . a = ConceptStr(#
Oa,
Aa #)
by A146, A152, FUNCT_1:1;
then
the
Extent of
((fi . a) @) = Oa
by CONLAT_1:def 21;
then
(fi . a) @ is-SubConcept-of (fi . b) @
by A142, A153, A149, A154, A150, A151, CONLAT_1:def 16;
hence
fi . a [= fi . b
by CONLAT_1:43;
verum
end;
A155:
for a, b being Element of (ConceptLattice C) st f . a [= f . b holds
a [= b
for a, b being Element of (ConceptLattice C) st a [= b holds
f . a [= f . b
then reconsider f = f as Homomorphism of (ConceptLattice C),L by A155, A108, Lm1, Lm2;
A161:
f is onto
by A108, FUNCT_2:def 3;
f is one-to-one
by A155, Lm1;
hence
ConceptLattice C,L are_isomorphic
by A161, LATTICE4:def 3; verum