begin
:: deftheorem CONLAT_1:def 1 :
canceled;
:: deftheorem Def2 defines quasi-empty CONLAT_1:def 2 :
for C being 2-sorted holds
( C is quasi-empty iff ( the carrier of C is empty or the carrier' of C is empty ) );
:: deftheorem CONLAT_1:def 3 :
canceled;
:: deftheorem CONLAT_1:def 4 :
canceled;
:: deftheorem Def5 defines is-connected-with CONLAT_1:def 5 :
for C being FormalContext
for o being Object of C
for a being Attribute of C holds
( o is-connected-with a iff [o,a] in the Information of C );
begin
:: deftheorem Def6 defines ObjectDerivation CONLAT_1:def 6 :
for C being FormalContext
for b2 being Function of (bool the carrier of C),(bool the carrier' of C) holds
( b2 = ObjectDerivation C iff for O being Subset of the carrier of C holds b2 . O = { a where a is Attribute of C : for o being Object of C st o in O holds
o is-connected-with a } );
:: deftheorem Def7 defines AttributeDerivation CONLAT_1:def 7 :
for C being FormalContext
for b2 being Function of (bool the carrier' of C),(bool the carrier of C) holds
( b2 = AttributeDerivation C iff for A being Subset of the carrier' of C holds b2 . A = { o where o is Object of C : for a being Attribute of C st a in A holds
o is-connected-with a } );
theorem
theorem
theorem Th3:
theorem Th4:
theorem Th5:
theorem Th6:
theorem Th7:
theorem Th8:
theorem Th9:
theorem Th10:
theorem
:: deftheorem defines phi CONLAT_1:def 8 :
for C being FormalContext holds phi C = ObjectDerivation C;
:: deftheorem defines psi CONLAT_1:def 9 :
for C being FormalContext holds psi C = AttributeDerivation C;
:: deftheorem Def10 defines co-Galois CONLAT_1:def 10 :
for P, R being non empty RelStr
for Con being Connection of P,R holds
( Con is co-Galois iff ex f being Function of P,R ex g being Function of R,P st
( Con = [f,g] & f is antitone & g is antitone & ( for p1, p2 being Element of P
for r1, r2 being Element of R holds
( p1 <= g . (f . p1) & r1 <= f . (g . r1) ) ) ) );
theorem
canceled;
theorem Th13:
theorem
theorem
theorem Th16:
theorem Th17:
theorem Th18:
theorem Th19:
begin
:: deftheorem Def11 defines empty CONLAT_1:def 11 :
for C being 2-sorted
for CP being ConceptStr of C holds
( CP is empty iff ( the Extent of CP is empty & the Intent of CP is empty ) );
:: deftheorem Def12 defines quasi-empty CONLAT_1:def 12 :
for C being 2-sorted
for CP being ConceptStr of C holds
( CP is quasi-empty iff ( the Extent of CP is empty or the Intent of CP is empty ) );
Lm1:
for C being FormalContext
for CS being ConceptStr of C st (ObjectDerivation C) . the Extent of CS = the Intent of CS holds
not CS is empty
:: deftheorem Def13 defines concept-like CONLAT_1:def 13 :
for C being FormalContext
for CP being ConceptStr of C holds
( CP is concept-like iff ( (ObjectDerivation C) . the Extent of CP = the Intent of CP & (AttributeDerivation C) . the Intent of CP = the Extent of CP ) );
theorem Th20:
theorem
theorem Th22:
theorem
:: deftheorem Def14 defines universal CONLAT_1:def 14 :
for C being FormalContext
for CP being ConceptStr of C holds
( CP is universal iff the Extent of CP = the carrier of C );
:: deftheorem Def15 defines co-universal CONLAT_1:def 15 :
for C being FormalContext
for CP being ConceptStr of C holds
( CP is co-universal iff the Intent of CP = the carrier' of C );
:: deftheorem Def16 defines Concept-with-all-Objects CONLAT_1:def 16 :
for C being FormalContext
for b2 being strict universal FormalConcept of C holds
( b2 = Concept-with-all-Objects C iff ex O being Subset of the carrier of C ex A being Subset of the carrier' of C st
( b2 = ConceptStr(# O,A #) & O = (AttributeDerivation C) . {} & A = (ObjectDerivation C) . ((AttributeDerivation C) . {}) ) );
:: deftheorem Def17 defines Concept-with-all-Attributes CONLAT_1:def 17 :
for C being FormalContext
for b2 being strict co-universal FormalConcept of C holds
( b2 = Concept-with-all-Attributes C iff ex O being Subset of the carrier of C ex A being Subset of the carrier' of C st
( b2 = ConceptStr(# O,A #) & O = (AttributeDerivation C) . ((ObjectDerivation C) . {}) & A = (ObjectDerivation C) . {} ) );
theorem Th24:
theorem
theorem Th26:
theorem
theorem
:: deftheorem Def18 defines Set-of-FormalConcepts CONLAT_1:def 18 :
for C being FormalContext
for b2 being non empty set holds
( b2 is Set-of-FormalConcepts of C iff for X being set st X in b2 holds
X is FormalConcept of C );
:: deftheorem Def19 defines is-SubConcept-of CONLAT_1:def 19 :
for C being FormalContext
for CP1, CP2 being FormalConcept of C holds
( CP1 is-SubConcept-of CP2 iff the Extent of CP1 c= the Extent of CP2 );
theorem
canceled;
theorem
canceled;
theorem Th31:
theorem
canceled;
theorem
theorem
begin
:: deftheorem defines B-carrier CONLAT_1:def 20 :
for C being FormalContext holds B-carrier C = { ConceptStr(# E,I #) where E is Subset of the carrier of C, I is Subset of the carrier' of C : ( not ConceptStr(# E,I #) is empty & (ObjectDerivation C) . E = I & (AttributeDerivation C) . I = E ) } ;
theorem Th35:
definition
let C be
FormalContext;
func B-meet C -> BinOp of
(B-carrier C) means :
Def21:
for
CP1,
CP2 being
strict FormalConcept of
C ex
O being
Subset of the
carrier of
C ex
A being
Subset of the
carrier' of
C st
(
it . (
CP1,
CP2)
= ConceptStr(#
O,
A #) &
O = the
Extent of
CP1 /\ the
Extent of
CP2 &
A = (ObjectDerivation C) . ((AttributeDerivation C) . ( the Intent of CP1 \/ the Intent of CP2)) );
existence
ex b1 being BinOp of (B-carrier C) st
for CP1, CP2 being strict FormalConcept of C ex O being Subset of the carrier of C ex A being Subset of the carrier' of C st
( b1 . (CP1,CP2) = ConceptStr(# O,A #) & O = the Extent of CP1 /\ the Extent of CP2 & A = (ObjectDerivation C) . ((AttributeDerivation C) . ( the Intent of CP1 \/ the Intent of CP2)) )
uniqueness
for b1, b2 being BinOp of (B-carrier C) st ( for CP1, CP2 being strict FormalConcept of C ex O being Subset of the carrier of C ex A being Subset of the carrier' of C st
( b1 . (CP1,CP2) = ConceptStr(# O,A #) & O = the Extent of CP1 /\ the Extent of CP2 & A = (ObjectDerivation C) . ((AttributeDerivation C) . ( the Intent of CP1 \/ the Intent of CP2)) ) ) & ( for CP1, CP2 being strict FormalConcept of C ex O being Subset of the carrier of C ex A being Subset of the carrier' of C st
( b2 . (CP1,CP2) = ConceptStr(# O,A #) & O = the Extent of CP1 /\ the Extent of CP2 & A = (ObjectDerivation C) . ((AttributeDerivation C) . ( the Intent of CP1 \/ the Intent of CP2)) ) ) holds
b1 = b2
end;
:: deftheorem Def21 defines B-meet CONLAT_1:def 21 :
for C being FormalContext
for b2 being BinOp of (B-carrier C) holds
( b2 = B-meet C iff for CP1, CP2 being strict FormalConcept of C ex O being Subset of the carrier of C ex A being Subset of the carrier' of C st
( b2 . (CP1,CP2) = ConceptStr(# O,A #) & O = the Extent of CP1 /\ the Extent of CP2 & A = (ObjectDerivation C) . ((AttributeDerivation C) . ( the Intent of CP1 \/ the Intent of CP2)) ) );
definition
let C be
FormalContext;
func B-join C -> BinOp of
(B-carrier C) means :
Def22:
for
CP1,
CP2 being
strict FormalConcept of
C ex
O being
Subset of the
carrier of
C ex
A being
Subset of the
carrier' of
C st
(
it . (
CP1,
CP2)
= ConceptStr(#
O,
A #) &
O = (AttributeDerivation C) . ((ObjectDerivation C) . ( the Extent of CP1 \/ the Extent of CP2)) &
A = the
Intent of
CP1 /\ the
Intent of
CP2 );
existence
ex b1 being BinOp of (B-carrier C) st
for CP1, CP2 being strict FormalConcept of C ex O being Subset of the carrier of C ex A being Subset of the carrier' of C st
( b1 . (CP1,CP2) = ConceptStr(# O,A #) & O = (AttributeDerivation C) . ((ObjectDerivation C) . ( the Extent of CP1 \/ the Extent of CP2)) & A = the Intent of CP1 /\ the Intent of CP2 )
uniqueness
for b1, b2 being BinOp of (B-carrier C) st ( for CP1, CP2 being strict FormalConcept of C ex O being Subset of the carrier of C ex A being Subset of the carrier' of C st
( b1 . (CP1,CP2) = ConceptStr(# O,A #) & O = (AttributeDerivation C) . ((ObjectDerivation C) . ( the Extent of CP1 \/ the Extent of CP2)) & A = the Intent of CP1 /\ the Intent of CP2 ) ) & ( for CP1, CP2 being strict FormalConcept of C ex O being Subset of the carrier of C ex A being Subset of the carrier' of C st
( b2 . (CP1,CP2) = ConceptStr(# O,A #) & O = (AttributeDerivation C) . ((ObjectDerivation C) . ( the Extent of CP1 \/ the Extent of CP2)) & A = the Intent of CP1 /\ the Intent of CP2 ) ) holds
b1 = b2
end;
:: deftheorem Def22 defines B-join CONLAT_1:def 22 :
for C being FormalContext
for b2 being BinOp of (B-carrier C) holds
( b2 = B-join C iff for CP1, CP2 being strict FormalConcept of C ex O being Subset of the carrier of C ex A being Subset of the carrier' of C st
( b2 . (CP1,CP2) = ConceptStr(# O,A #) & O = (AttributeDerivation C) . ((ObjectDerivation C) . ( the Extent of CP1 \/ the Extent of CP2)) & A = the Intent of CP1 /\ the Intent of CP2 ) );
Lm2:
for C being FormalContext
for CP1, CP2 being strict FormalConcept of C holds (B-meet C) . (CP1,CP2) in rng (B-meet C)
Lm3:
for C being FormalContext
for CP1, CP2 being strict FormalConcept of C holds (B-join C) . (CP1,CP2) in rng (B-join C)
theorem Th36:
theorem Th37:
theorem Th38:
theorem Th39:
theorem Th40:
theorem Th41:
theorem
theorem Th43:
theorem
theorem
:: deftheorem defines ConceptLattice CONLAT_1:def 23 :
for C being FormalContext holds ConceptLattice C = LattStr(# (B-carrier C),(B-join C),(B-meet C) #);
theorem Th46:
:: deftheorem defines @ CONLAT_1:def 24 :
for C being FormalContext
for CP being Element of (ConceptLattice C) holds CP @ = CP;
theorem Th47:
theorem Th48: