Article CONLAT_1, MML version 4.99.1005
:: CONLAT_1:structnot 1 => CONLAT_1:struct 1
definition
struct() 2-sorted(#
Objects -> set,
Attributes -> set
#);
end;
:: CONLAT_1:attrnot 1 => CONLAT_1:attr 1
definition
let a1 be 2-sorted;
attr a1 is strict;
end;
:: CONLAT_1:exreg 1
registration
cluster strict 2-sorted;
end;
:: CONLAT_1:aggrnot 1 => CONLAT_1:aggr 1
definition
let a1, a2 be set;
aggr 2-sorted(#a1,a2#) -> strict 2-sorted;
end;
:: CONLAT_1:selnot 1 => CONLAT_1:sel 1
definition
let a1 be 2-sorted;
sel the Objects of a1 -> set;
end;
:: CONLAT_1:selnot 2 => CONLAT_1:sel 2
definition
let a1 be 2-sorted;
sel the Attributes of a1 -> set;
end;
:: CONLAT_1:attrnot 2 => CONLAT_1:attr 2
definition
let a1 be 2-sorted;
attr a1 is empty means
the Objects of a1 is empty & the Attributes of a1 is empty;
end;
:: CONLAT_1:dfs 1
definiens
let a1 be 2-sorted;
To prove
a1 is empty
it is sufficient to prove
thus the Objects of a1 is empty & the Attributes of a1 is empty;
:: CONLAT_1:def 1
theorem
for b1 being 2-sorted holds
b1 is empty
iff
the Objects of b1 is empty & the Attributes of b1 is empty;
:: CONLAT_1:attrnot 3 => CONLAT_1:attr 3
definition
let a1 be 2-sorted;
attr a1 is quasi-empty means
(the Objects of a1 is not empty) implies the Attributes of a1 is empty;
end;
:: CONLAT_1:dfs 2
definiens
let a1 be 2-sorted;
To prove
a1 is quasi-empty
it is sufficient to prove
thus (the Objects of a1 is not empty) implies the Attributes of a1 is empty;
:: CONLAT_1:def 2
theorem
for b1 being 2-sorted holds
b1 is quasi-empty
iff
(the Objects of b1 is empty or the Attributes of b1 is empty);
:: CONLAT_1:exreg 2
registration
cluster strict non empty 2-sorted;
end;
:: CONLAT_1:exreg 3
registration
cluster strict non quasi-empty 2-sorted;
end;
:: CONLAT_1:exreg 4
registration
cluster strict empty quasi-empty 2-sorted;
end;
:: CONLAT_1:structnot 2 => CONLAT_1:struct 2
definition
struct(2-sorted) ContextStr(#
Objects -> set,
Attributes -> set,
Information -> Relation of the Objects of it,the Attributes of it
#);
end;
:: CONLAT_1:attrnot 4 => CONLAT_1:attr 4
definition
let a1 be ContextStr;
attr a1 is strict;
end;
:: CONLAT_1:exreg 5
registration
cluster strict ContextStr;
end;
:: CONLAT_1:aggrnot 2 => CONLAT_1:aggr 2
definition
let a1, a2 be set;
let a3 be Relation of a1,a2;
aggr ContextStr(#a1,a2,a3#) -> strict ContextStr;
end;
:: CONLAT_1:selnot 3 => CONLAT_1:sel 3
definition
let a1 be ContextStr;
sel the Information of a1 -> Relation of the Objects of a1,the Attributes of a1;
end;
:: CONLAT_1:exreg 6
registration
cluster non empty strict ContextStr;
end;
:: CONLAT_1:exreg 7
registration
cluster non quasi-empty strict ContextStr;
end;
:: CONLAT_1:modenot 1
definition
mode FormalContext is non quasi-empty ContextStr;
end;
:: CONLAT_1:modenot 2
definition
let a1 be 2-sorted;
mode Object of a1 is Element of the Objects of a1;
end;
:: CONLAT_1:modenot 3
definition
let a1 be 2-sorted;
mode Attribute of a1 is Element of the Attributes of a1;
end;
:: CONLAT_1:funcreg 1
registration
let a1 be non quasi-empty 2-sorted;
cluster the Attributes of a1 -> non empty;
end;
:: CONLAT_1:funcreg 2
registration
let a1 be non quasi-empty 2-sorted;
cluster the Objects of a1 -> non empty;
end;
:: CONLAT_1:exreg 8
registration
let a1 be non quasi-empty 2-sorted;
cluster non empty Element of bool the Objects of a1;
end;
:: CONLAT_1:exreg 9
registration
let a1 be non quasi-empty 2-sorted;
cluster non empty Element of bool the Attributes of a1;
end;
:: CONLAT_1:prednot 1 => CONLAT_1:pred 1
definition
let a1 be non quasi-empty ContextStr;
let a2 be Element of the Objects of a1;
let a3 be Element of the Attributes of a1;
pred A2 is-connected-with A3 means
[a2,a3] in the Information of a1;
end;
:: CONLAT_1:dfs 3
definiens
let a1 be non quasi-empty ContextStr;
let a2 be Element of the Objects of a1;
let a3 be Element of the Attributes of a1;
To prove
a2 is-connected-with a3
it is sufficient to prove
thus [a2,a3] in the Information of a1;
:: CONLAT_1:def 5
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of the Objects of b1
for b3 being Element of the Attributes of b1 holds
b2 is-connected-with b3
iff
[b2,b3] in the Information of b1;
:: CONLAT_1:prednot 2 => not CONLAT_1:pred 1
notation
let a1 be non quasi-empty ContextStr;
let a2 be Element of the Objects of a1;
let a3 be Element of the Attributes of a1;
antonym a2 is-not-connected-with a3 for a2 is-connected-with a3;
end;
:: CONLAT_1:funcnot 1 => CONLAT_1:func 1
definition
let a1 be non quasi-empty ContextStr;
func ObjectDerivation A1 -> Function-like quasi_total Relation of bool the Objects of a1,bool the Attributes of a1 means
for b1 being Element of bool the Objects of a1 holds
it . b1 = {b2 where b2 is Element of the Attributes of a1: for b3 being Element of the Objects of a1
st b3 in b1
holds b3 is-connected-with b2};
end;
:: CONLAT_1:def 6
theorem
for b1 being non quasi-empty ContextStr
for b2 being Function-like quasi_total Relation of bool the Objects of b1,bool the Attributes of b1 holds
b2 = ObjectDerivation b1
iff
for b3 being Element of bool the Objects of b1 holds
b2 . b3 = {b4 where b4 is Element of the Attributes of b1: for b5 being Element of the Objects of b1
st b5 in b3
holds b5 is-connected-with b4};
:: CONLAT_1:funcnot 2 => CONLAT_1:func 2
definition
let a1 be non quasi-empty ContextStr;
func AttributeDerivation A1 -> Function-like quasi_total Relation of bool the Attributes of a1,bool the Objects of a1 means
for b1 being Element of bool the Attributes of a1 holds
it . b1 = {b2 where b2 is Element of the Objects of a1: for b3 being Element of the Attributes of a1
st b3 in b1
holds b2 is-connected-with b3};
end;
:: CONLAT_1:def 7
theorem
for b1 being non quasi-empty ContextStr
for b2 being Function-like quasi_total Relation of bool the Attributes of b1,bool the Objects of b1 holds
b2 = AttributeDerivation b1
iff
for b3 being Element of bool the Attributes of b1 holds
b2 . b3 = {b4 where b4 is Element of the Objects of b1: for b5 being Element of the Attributes of b1
st b5 in b3
holds b4 is-connected-with b5};
:: CONLAT_1:th 1
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of the Objects of b1 holds
(ObjectDerivation b1) . {b2} = {b3 where b3 is Element of the Attributes of b1: b2 is-connected-with b3};
:: CONLAT_1:th 2
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of the Attributes of b1 holds
(AttributeDerivation b1) . {b2} = {b3 where b3 is Element of the Objects of b1: b3 is-connected-with b2};
:: CONLAT_1:th 3
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being Element of bool the Objects of b1
st b2 c= b3
holds (ObjectDerivation b1) . b3 c= (ObjectDerivation b1) . b2;
:: CONLAT_1:th 4
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being Element of bool the Attributes of b1
st b2 c= b3
holds (AttributeDerivation b1) . b3 c= (AttributeDerivation b1) . b2;
:: CONLAT_1:th 5
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Objects of b1 holds
b2 c= (AttributeDerivation b1) . ((ObjectDerivation b1) . b2);
:: CONLAT_1:th 6
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Attributes of b1 holds
b2 c= (ObjectDerivation b1) . ((AttributeDerivation b1) . b2);
:: CONLAT_1:th 7
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Objects of b1 holds
(ObjectDerivation b1) . b2 = (ObjectDerivation b1) . ((AttributeDerivation b1) . ((ObjectDerivation b1) . b2));
:: CONLAT_1:th 8
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Attributes of b1 holds
(AttributeDerivation b1) . b2 = (AttributeDerivation b1) . ((ObjectDerivation b1) . ((AttributeDerivation b1) . b2));
:: CONLAT_1:th 9
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Objects of b1
for b3 being Element of bool the Attributes of b1 holds
b2 c= (AttributeDerivation b1) . b3
iff
[:b2,b3:] c= the Information of b1;
:: CONLAT_1:th 10
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Objects of b1
for b3 being Element of bool the Attributes of b1 holds
b3 c= (ObjectDerivation b1) . b2
iff
[:b2,b3:] c= the Information of b1;
:: CONLAT_1:th 11
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Objects of b1
for b3 being Element of bool the Attributes of b1 holds
b2 c= (AttributeDerivation b1) . b3
iff
b3 c= (ObjectDerivation b1) . b2;
:: CONLAT_1:funcnot 3 => CONLAT_1:func 3
definition
let a1 be non quasi-empty ContextStr;
func phi A1 -> Function-like quasi_total Relation of the carrier of BoolePoset the Objects of a1,the carrier of BoolePoset the Attributes of a1 equals
ObjectDerivation a1;
end;
:: CONLAT_1:def 8
theorem
for b1 being non quasi-empty ContextStr holds
phi b1 = ObjectDerivation b1;
:: CONLAT_1:funcnot 4 => CONLAT_1:func 4
definition
let a1 be non quasi-empty ContextStr;
func psi A1 -> Function-like quasi_total Relation of the carrier of BoolePoset the Attributes of a1,the carrier of BoolePoset the Objects of a1 equals
AttributeDerivation a1;
end;
:: CONLAT_1:def 9
theorem
for b1 being non quasi-empty ContextStr holds
psi b1 = AttributeDerivation b1;
:: CONLAT_1:attrnot 5 => CONLAT_1:attr 5
definition
let a1, a2 be non empty RelStr;
let a3 be Connection of a1,a2;
attr a3 is co-Galois means
ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
ex b2 being Function-like quasi_total Relation of the carrier of a2,the carrier of a1 st
a3 = [b1,b2] &
b1 is antitone(a1, a2) &
b2 is antitone(a2, a1) &
(for b3, b4 being Element of the carrier of a1
for b5, b6 being Element of the carrier of a2 holds
b3 <= b2 . (b1 . b3) & b5 <= b1 . (b2 . b5));
end;
:: CONLAT_1:dfs 8
definiens
let a1, a2 be non empty RelStr;
let a3 be Connection of a1,a2;
To prove
a3 is co-Galois
it is sufficient to prove
thus ex b1 being Function-like quasi_total Relation of the carrier of a1,the carrier of a2 st
ex b2 being Function-like quasi_total Relation of the carrier of a2,the carrier of a1 st
a3 = [b1,b2] &
b1 is antitone(a1, a2) &
b2 is antitone(a2, a1) &
(for b3, b4 being Element of the carrier of a1
for b5, b6 being Element of the carrier of a2 holds
b3 <= b2 . (b1 . b3) & b5 <= b1 . (b2 . b5));
:: CONLAT_1:def 10
theorem
for b1, b2 being non empty RelStr
for b3 being Connection of b1,b2 holds
b3 is co-Galois(b1, b2)
iff
ex b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2 st
ex b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1 st
b3 = [b4,b5] &
b4 is antitone(b1, b2) &
b5 is antitone(b2, b1) &
(for b6, b7 being Element of the carrier of b1
for b8, b9 being Element of the carrier of b2 holds
b6 <= b5 . (b4 . b6) & b8 <= b4 . (b5 . b8));
:: CONLAT_1:th 13
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Connection of b1,b2
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
st b3 = [b4,b5]
holds b3 is co-Galois(b1, b2)
iff
for b6 being Element of the carrier of b1
for b7 being Element of the carrier of b2 holds
b6 <= b5 . b7
iff
b7 <= b4 . b6;
:: CONLAT_1:th 14
theorem
for b1, b2 being non empty reflexive transitive antisymmetric RelStr
for b3 being Connection of b1,b2
st b3 is co-Galois(b1, b2)
for b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b2
for b5 being Function-like quasi_total Relation of the carrier of b2,the carrier of b1
st b3 = [b4,b5]
holds b4 = b4 * (b5 * b4) & b5 = b5 * (b4 * b5);
:: CONLAT_1:th 15
theorem
for b1 being non quasi-empty ContextStr holds
[phi b1,psi b1] is co-Galois(BoolePoset the Objects of b1, BoolePoset the Attributes of b1);
:: CONLAT_1:th 16
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being Element of bool the Objects of b1 holds
(ObjectDerivation b1) . (b2 \/ b3) = ((ObjectDerivation b1) . b2) /\ ((ObjectDerivation b1) . b3);
:: CONLAT_1:th 17
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being Element of bool the Attributes of b1 holds
(AttributeDerivation b1) . (b2 \/ b3) = ((AttributeDerivation b1) . b2) /\ ((AttributeDerivation b1) . b3);
:: CONLAT_1:th 18
theorem
for b1 being non quasi-empty ContextStr holds
(ObjectDerivation b1) . {} = the Attributes of b1;
:: CONLAT_1:th 19
theorem
for b1 being non quasi-empty ContextStr holds
(AttributeDerivation b1) . {} = the Objects of b1;
:: CONLAT_1:structnot 3 => CONLAT_1:struct 3
definition
let a1 be 2-sorted;
struct() ConceptStr(#
Extent -> Element of bool the Objects of A1,
Intent -> Element of bool the Attributes of A1
#);
end;
:: CONLAT_1:attrnot 6 => CONLAT_1:attr 6
definition
let a1 be 2-sorted;
let a2 be ConceptStr over a1;
attr a2 is strict;
end;
:: CONLAT_1:exreg 10
registration
let a1 be 2-sorted;
cluster strict ConceptStr over a1;
end;
:: CONLAT_1:aggrnot 3 => CONLAT_1:aggr 3
definition
let a1 be 2-sorted;
let a2 be Element of bool the Objects of a1;
let a3 be Element of bool the Attributes of a1;
aggr ConceptStr(#a2,a3#) -> strict ConceptStr over a1;
end;
:: CONLAT_1:selnot 4 => CONLAT_1:sel 4
definition
let a1 be 2-sorted;
let a2 be ConceptStr over a1;
sel the Extent of a2 -> Element of bool the Objects of a1;
end;
:: CONLAT_1:selnot 5 => CONLAT_1:sel 5
definition
let a1 be 2-sorted;
let a2 be ConceptStr over a1;
sel the Intent of a2 -> Element of bool the Attributes of a1;
end;
:: CONLAT_1:attrnot 7 => CONLAT_1:attr 7
definition
let a1 be 2-sorted;
let a2 be ConceptStr over a1;
attr a2 is empty means
the Extent of a2 is empty & the Intent of a2 is empty;
end;
:: CONLAT_1:dfs 9
definiens
let a1 be 2-sorted;
let a2 be ConceptStr over a1;
To prove
a2 is empty
it is sufficient to prove
thus the Extent of a2 is empty & the Intent of a2 is empty;
:: CONLAT_1:def 11
theorem
for b1 being 2-sorted
for b2 being ConceptStr over b1 holds
b2 is empty(b1)
iff
the Extent of b2 is empty & the Intent of b2 is empty;
:: CONLAT_1:attrnot 8 => CONLAT_1:attr 8
definition
let a1 be 2-sorted;
let a2 be ConceptStr over a1;
attr a2 is quasi-empty means
(the Extent of a2 is not empty) implies the Intent of a2 is empty;
end;
:: CONLAT_1:dfs 10
definiens
let a1 be 2-sorted;
let a2 be ConceptStr over a1;
To prove
a2 is quasi-empty
it is sufficient to prove
thus (the Extent of a2 is not empty) implies the Intent of a2 is empty;
:: CONLAT_1:def 12
theorem
for b1 being 2-sorted
for b2 being ConceptStr over b1 holds
b2 is quasi-empty(b1)
iff
(the Extent of b2 is empty or the Intent of b2 is empty);
:: CONLAT_1:exreg 11
registration
let a1 be non quasi-empty 2-sorted;
cluster strict non empty ConceptStr over a1;
end;
:: CONLAT_1:exreg 12
registration
let a1 be non quasi-empty 2-sorted;
cluster strict quasi-empty ConceptStr over a1;
end;
:: CONLAT_1:condreg 1
registration
let a1 be empty 2-sorted;
cluster -> empty (ConceptStr over a1);
end;
:: CONLAT_1:condreg 2
registration
let a1 be quasi-empty 2-sorted;
cluster -> quasi-empty (ConceptStr over a1);
end;
:: CONLAT_1:attrnot 9 => CONLAT_1:attr 9
definition
let a1 be non quasi-empty ContextStr;
let a2 be ConceptStr over a1;
attr a2 is concept-like means
(ObjectDerivation a1) . the Extent of a2 = the Intent of a2 &
(AttributeDerivation a1) . the Intent of a2 = the Extent of a2;
end;
:: CONLAT_1:dfs 11
definiens
let a1 be non quasi-empty ContextStr;
let a2 be ConceptStr over a1;
To prove
a2 is concept-like
it is sufficient to prove
thus (ObjectDerivation a1) . the Extent of a2 = the Intent of a2 &
(AttributeDerivation a1) . the Intent of a2 = the Extent of a2;
:: CONLAT_1:def 13
theorem
for b1 being non quasi-empty ContextStr
for b2 being ConceptStr over b1 holds
b2 is concept-like(b1)
iff
(ObjectDerivation b1) . the Extent of b2 = the Intent of b2 &
(AttributeDerivation b1) . the Intent of b2 = the Extent of b2;
:: CONLAT_1:exreg 13
registration
let a1 be non quasi-empty ContextStr;
cluster non empty concept-like ConceptStr over a1;
end;
:: CONLAT_1:modenot 4
definition
let a1 be non quasi-empty ContextStr;
mode FormalConcept of a1 is non empty concept-like ConceptStr over a1;
end;
:: CONLAT_1:exreg 14
registration
let a1 be non quasi-empty ContextStr;
cluster strict non empty concept-like ConceptStr over a1;
end;
:: CONLAT_1:th 20
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Objects of b1 holds
ConceptStr(#(AttributeDerivation b1) . ((ObjectDerivation b1) . b2),(ObjectDerivation b1) . b2#) is non empty concept-like ConceptStr over b1 &
(for b3 being Element of bool the Objects of b1
for b4 being Element of bool the Attributes of b1
st ConceptStr(#b3,b4#) is non empty concept-like ConceptStr over b1 & b2 c= b3
holds (AttributeDerivation b1) . ((ObjectDerivation b1) . b2) c= b3);
:: CONLAT_1:th 21
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Objects of b1 holds
ex b3 being Element of bool the Attributes of b1 st
ConceptStr(#b2,b3#) is non empty concept-like ConceptStr over b1
iff
(AttributeDerivation b1) . ((ObjectDerivation b1) . b2) = b2;
:: CONLAT_1:th 22
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Attributes of b1 holds
ConceptStr(#(AttributeDerivation b1) . b2,(ObjectDerivation b1) . ((AttributeDerivation b1) . b2)#) is non empty concept-like ConceptStr over b1 &
(for b3 being Element of bool the Objects of b1
for b4 being Element of bool the Attributes of b1
st ConceptStr(#b3,b4#) is non empty concept-like ConceptStr over b1 & b2 c= b4
holds (ObjectDerivation b1) . ((AttributeDerivation b1) . b2) c= b4);
:: CONLAT_1:th 23
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of bool the Attributes of b1 holds
ex b3 being Element of bool the Objects of b1 st
ConceptStr(#b3,b2#) is non empty concept-like ConceptStr over b1
iff
(ObjectDerivation b1) . ((AttributeDerivation b1) . b2) = b2;
:: CONLAT_1:attrnot 10 => CONLAT_1:attr 10
definition
let a1 be non quasi-empty ContextStr;
let a2 be ConceptStr over a1;
attr a2 is universal means
the Extent of a2 = the Objects of a1;
end;
:: CONLAT_1:dfs 12
definiens
let a1 be non quasi-empty ContextStr;
let a2 be ConceptStr over a1;
To prove
a2 is universal
it is sufficient to prove
thus the Extent of a2 = the Objects of a1;
:: CONLAT_1:def 14
theorem
for b1 being non quasi-empty ContextStr
for b2 being ConceptStr over b1 holds
b2 is universal(b1)
iff
the Extent of b2 = the Objects of b1;
:: CONLAT_1:attrnot 11 => CONLAT_1:attr 11
definition
let a1 be non quasi-empty ContextStr;
let a2 be ConceptStr over a1;
attr a2 is co-universal means
the Intent of a2 = the Attributes of a1;
end;
:: CONLAT_1:dfs 13
definiens
let a1 be non quasi-empty ContextStr;
let a2 be ConceptStr over a1;
To prove
a2 is co-universal
it is sufficient to prove
thus the Intent of a2 = the Attributes of a1;
:: CONLAT_1:def 15
theorem
for b1 being non quasi-empty ContextStr
for b2 being ConceptStr over b1 holds
b2 is co-universal(b1)
iff
the Intent of b2 = the Attributes of b1;
:: CONLAT_1:exreg 15
registration
let a1 be non quasi-empty ContextStr;
cluster strict non empty concept-like universal ConceptStr over a1;
end;
:: CONLAT_1:exreg 16
registration
let a1 be non quasi-empty ContextStr;
cluster strict non empty concept-like co-universal ConceptStr over a1;
end;
:: CONLAT_1:funcnot 5 => CONLAT_1:func 5
definition
let a1 be non quasi-empty ContextStr;
func Concept-with-all-Objects A1 -> strict non empty concept-like universal ConceptStr over a1 means
ex b1 being Element of bool the Objects of a1 st
ex b2 being Element of bool the Attributes of a1 st
it = ConceptStr(#b1,b2#) &
b1 = (AttributeDerivation a1) . {} &
b2 = (ObjectDerivation a1) . ((AttributeDerivation a1) . {});
end;
:: CONLAT_1:def 16
theorem
for b1 being non quasi-empty ContextStr
for b2 being strict non empty concept-like universal ConceptStr over b1 holds
b2 = Concept-with-all-Objects b1
iff
ex b3 being Element of bool the Objects of b1 st
ex b4 being Element of bool the Attributes of b1 st
b2 = ConceptStr(#b3,b4#) &
b3 = (AttributeDerivation b1) . {} &
b4 = (ObjectDerivation b1) . ((AttributeDerivation b1) . {});
:: CONLAT_1:funcnot 6 => CONLAT_1:func 6
definition
let a1 be non quasi-empty ContextStr;
func Concept-with-all-Attributes A1 -> strict non empty concept-like co-universal ConceptStr over a1 means
ex b1 being Element of bool the Objects of a1 st
ex b2 being Element of bool the Attributes of a1 st
it = ConceptStr(#b1,b2#) &
b1 = (AttributeDerivation a1) . ((ObjectDerivation a1) . {}) &
b2 = (ObjectDerivation a1) . {};
end;
:: CONLAT_1:def 17
theorem
for b1 being non quasi-empty ContextStr
for b2 being strict non empty concept-like co-universal ConceptStr over b1 holds
b2 = Concept-with-all-Attributes b1
iff
ex b3 being Element of bool the Objects of b1 st
ex b4 being Element of bool the Attributes of b1 st
b2 = ConceptStr(#b3,b4#) &
b3 = (AttributeDerivation b1) . ((ObjectDerivation b1) . {}) &
b4 = (ObjectDerivation b1) . {};
:: CONLAT_1:th 24
theorem
for b1 being non quasi-empty ContextStr holds
the Extent of Concept-with-all-Objects b1 = the Objects of b1 & the Intent of Concept-with-all-Attributes b1 = the Attributes of b1;
:: CONLAT_1:th 25
theorem
for b1 being non quasi-empty ContextStr
for b2 being non empty concept-like ConceptStr over b1 holds
(the Extent of b2 = {} implies b2 is co-universal(b1)) & (the Intent of b2 = {} implies b2 is universal(b1));
:: CONLAT_1:th 26
theorem
for b1 being non quasi-empty ContextStr
for b2 being strict non empty concept-like ConceptStr over b1 holds
(the Extent of b2 = {} implies b2 = Concept-with-all-Attributes b1) &
(the Intent of b2 = {} implies b2 = Concept-with-all-Objects b1);
:: CONLAT_1:th 27
theorem
for b1 being non quasi-empty ContextStr
for b2 being quasi-empty ConceptStr over b1
st b2 is non empty concept-like ConceptStr over b1 & b2 is not universal(b1)
holds b2 is co-universal(b1);
:: CONLAT_1:th 28
theorem
for b1 being non quasi-empty ContextStr
for b2 being quasi-empty ConceptStr over b1
st b2 is strict non empty concept-like ConceptStr over b1 & b2 <> Concept-with-all-Objects b1
holds b2 = Concept-with-all-Attributes b1;
:: CONLAT_1:modenot 5 => CONLAT_1:mode 1
definition
let a1 be non quasi-empty ContextStr;
mode Set-of-FormalConcepts of A1 -> non empty set means
for b1 being set
st b1 in it
holds b1 is non empty concept-like ConceptStr over a1;
end;
:: CONLAT_1:dfs 16
definiens
let a1 be non quasi-empty ContextStr;
let a2 be non empty set;
To prove
a2 is Set-of-FormalConcepts of a1
it is sufficient to prove
thus for b1 being set
st b1 in a2
holds b1 is non empty concept-like ConceptStr over a1;
:: CONLAT_1:def 18
theorem
for b1 being non quasi-empty ContextStr
for b2 being non empty set holds
b2 is Set-of-FormalConcepts of b1
iff
for b3 being set
st b3 in b2
holds b3 is non empty concept-like ConceptStr over b1;
:: CONLAT_1:modenot 6 => CONLAT_1:mode 2
definition
let a1 be non quasi-empty ContextStr;
let a2 be Set-of-FormalConcepts of a1;
redefine mode Element of a2 -> non empty concept-like ConceptStr over a1;
end;
:: CONLAT_1:prednot 3 => CONLAT_1:pred 2
definition
let a1 be non quasi-empty ContextStr;
let a2, a3 be non empty concept-like ConceptStr over a1;
pred A2 is-SubConcept-of A3 means
the Extent of a2 c= the Extent of a3;
end;
:: CONLAT_1:dfs 17
definiens
let a1 be non quasi-empty ContextStr;
let a2, a3 be non empty concept-like ConceptStr over a1;
To prove
a2 is-SubConcept-of a3
it is sufficient to prove
thus the Extent of a2 c= the Extent of a3;
:: CONLAT_1:def 19
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being non empty concept-like ConceptStr over b1 holds
b2 is-SubConcept-of b3
iff
the Extent of b2 c= the Extent of b3;
:: CONLAT_1:prednot 4 => CONLAT_1:pred 2
notation
let a1 be non quasi-empty ContextStr;
let a2, a3 be non empty concept-like ConceptStr over a1;
synonym a3 is-SuperConcept-of a2 for a2 is-SubConcept-of a3;
end;
:: CONLAT_1:th 31
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being non empty concept-like ConceptStr over b1 holds
b2 is-SubConcept-of b3
iff
the Intent of b3 c= the Intent of b2;
:: CONLAT_1:th 33
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being non empty concept-like ConceptStr over b1 holds
b3 is-SubConcept-of b2
iff
the Intent of b2 c= the Intent of b3;
:: CONLAT_1:th 34
theorem
for b1 being non quasi-empty ContextStr
for b2 being non empty concept-like ConceptStr over b1 holds
b2 is-SubConcept-of Concept-with-all-Objects b1 & Concept-with-all-Attributes b1 is-SubConcept-of b2;
:: CONLAT_1:funcnot 7 => CONLAT_1:func 7
definition
let a1 be non quasi-empty ContextStr;
func B-carrier A1 -> non empty set equals
{ConceptStr(#b1,b2#) where b1 is Element of bool the Objects of a1, b2 is Element of bool the Attributes of a1: ConceptStr(#b1,b2#) is not empty(a1) & (ObjectDerivation a1) . b1 = b2 & (AttributeDerivation a1) . b2 = b1};
end;
:: CONLAT_1:def 20
theorem
for b1 being non quasi-empty ContextStr holds
B-carrier b1 = {ConceptStr(#b2,b3#) where b2 is Element of bool the Objects of b1, b3 is Element of bool the Attributes of b1: ConceptStr(#b2,b3#) is not empty(b1) & (ObjectDerivation b1) . b2 = b3 & (AttributeDerivation b1) . b3 = b2};
:: CONLAT_1:funcnot 8 => CONLAT_1:func 8
definition
let a1 be non quasi-empty ContextStr;
redefine func B-carrier a1 -> Set-of-FormalConcepts of a1;
end;
:: CONLAT_1:funcreg 3
registration
let a1 be non quasi-empty ContextStr;
cluster B-carrier a1 -> non empty;
end;
:: CONLAT_1:th 35
theorem
for b1 being non quasi-empty ContextStr
for b2 being set holds
b2 in B-carrier b1
iff
b2 is strict non empty concept-like ConceptStr over b1;
:: CONLAT_1:funcnot 9 => CONLAT_1:func 9
definition
let a1 be non quasi-empty ContextStr;
func B-meet A1 -> Function-like quasi_total Relation of [:B-carrier a1,B-carrier a1:],B-carrier a1 means
for b1, b2 being strict non empty concept-like ConceptStr over a1 holds
ex b3 being Element of bool the Objects of a1 st
ex b4 being Element of bool the Attributes of a1 st
it .(b1,b2) = ConceptStr(#b3,b4#) &
b3 = (the Extent of b1) /\ the Extent of b2 &
b4 = (ObjectDerivation a1) . ((AttributeDerivation a1) . ((the Intent of b1) \/ the Intent of b2));
end;
:: CONLAT_1:def 21
theorem
for b1 being non quasi-empty ContextStr
for b2 being Function-like quasi_total Relation of [:B-carrier b1,B-carrier b1:],B-carrier b1 holds
b2 = B-meet b1
iff
for b3, b4 being strict non empty concept-like ConceptStr over b1 holds
ex b5 being Element of bool the Objects of b1 st
ex b6 being Element of bool the Attributes of b1 st
b2 .(b3,b4) = ConceptStr(#b5,b6#) &
b5 = (the Extent of b3) /\ the Extent of b4 &
b6 = (ObjectDerivation b1) . ((AttributeDerivation b1) . ((the Intent of b3) \/ the Intent of b4));
:: CONLAT_1:funcnot 10 => CONLAT_1:func 10
definition
let a1 be non quasi-empty ContextStr;
func B-join A1 -> Function-like quasi_total Relation of [:B-carrier a1,B-carrier a1:],B-carrier a1 means
for b1, b2 being strict non empty concept-like ConceptStr over a1 holds
ex b3 being Element of bool the Objects of a1 st
ex b4 being Element of bool the Attributes of a1 st
it .(b1,b2) = ConceptStr(#b3,b4#) &
b3 = (AttributeDerivation a1) . ((ObjectDerivation a1) . ((the Extent of b1) \/ the Extent of b2)) &
b4 = (the Intent of b1) /\ the Intent of b2;
end;
:: CONLAT_1:def 22
theorem
for b1 being non quasi-empty ContextStr
for b2 being Function-like quasi_total Relation of [:B-carrier b1,B-carrier b1:],B-carrier b1 holds
b2 = B-join b1
iff
for b3, b4 being strict non empty concept-like ConceptStr over b1 holds
ex b5 being Element of bool the Objects of b1 st
ex b6 being Element of bool the Attributes of b1 st
b2 .(b3,b4) = ConceptStr(#b5,b6#) &
b5 = (AttributeDerivation b1) . ((ObjectDerivation b1) . ((the Extent of b3) \/ the Extent of b4)) &
b6 = (the Intent of b3) /\ the Intent of b4;
:: CONLAT_1:th 36
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being strict non empty concept-like ConceptStr over b1 holds
(B-meet b1) .(b2,b3) = (B-meet b1) .(b3,b2);
:: CONLAT_1:th 37
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being strict non empty concept-like ConceptStr over b1 holds
(B-join b1) .(b2,b3) = (B-join b1) .(b3,b2);
:: CONLAT_1:th 38
theorem
for b1 being non quasi-empty ContextStr
for b2, b3, b4 being strict non empty concept-like ConceptStr over b1 holds
(B-meet b1) .(b2,(B-meet b1) .(b3,b4)) = (B-meet b1) .((B-meet b1) .(b2,b3),b4);
:: CONLAT_1:th 39
theorem
for b1 being non quasi-empty ContextStr
for b2, b3, b4 being strict non empty concept-like ConceptStr over b1 holds
(B-join b1) .(b2,(B-join b1) .(b3,b4)) = (B-join b1) .((B-join b1) .(b2,b3),b4);
:: CONLAT_1:th 40
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being strict non empty concept-like ConceptStr over b1 holds
(B-join b1) .((B-meet b1) .(b2,b3),b3) = b3;
:: CONLAT_1:th 41
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being strict non empty concept-like ConceptStr over b1 holds
(B-meet b1) .(b2,(B-join b1) .(b2,b3)) = b2;
:: CONLAT_1:th 42
theorem
for b1 being non quasi-empty ContextStr
for b2 being strict non empty concept-like ConceptStr over b1 holds
(B-meet b1) .(b2,Concept-with-all-Objects b1) = b2;
:: CONLAT_1:th 43
theorem
for b1 being non quasi-empty ContextStr
for b2 being strict non empty concept-like ConceptStr over b1 holds
(B-join b1) .(b2,Concept-with-all-Objects b1) = Concept-with-all-Objects b1;
:: CONLAT_1:th 44
theorem
for b1 being non quasi-empty ContextStr
for b2 being strict non empty concept-like ConceptStr over b1 holds
(B-join b1) .(b2,Concept-with-all-Attributes b1) = b2;
:: CONLAT_1:th 45
theorem
for b1 being non quasi-empty ContextStr
for b2 being strict non empty concept-like ConceptStr over b1 holds
(B-meet b1) .(b2,Concept-with-all-Attributes b1) = Concept-with-all-Attributes b1;
:: CONLAT_1:funcnot 11 => CONLAT_1:func 11
definition
let a1 be non quasi-empty ContextStr;
func ConceptLattice A1 -> non empty strict LattStr equals
LattStr(#B-carrier a1,B-join a1,B-meet a1#);
end;
:: CONLAT_1:def 23
theorem
for b1 being non quasi-empty ContextStr holds
ConceptLattice b1 = LattStr(#B-carrier b1,B-join b1,B-meet b1#);
:: CONLAT_1:th 46
theorem
for b1 being non quasi-empty ContextStr holds
ConceptLattice b1 is non empty Lattice-like LattStr;
:: CONLAT_1:funcreg 4
registration
let a1 be non quasi-empty ContextStr;
cluster ConceptLattice a1 -> non empty strict Lattice-like;
end;
:: CONLAT_1:modenot 7 => CONLAT_1:mode 3
definition
let a1 be non quasi-empty ContextStr;
let a2 be non empty Element of bool the carrier of ConceptLattice a1;
redefine mode Element of a2 -> non empty concept-like ConceptStr over a1;
end;
:: CONLAT_1:funcnot 12 => CONLAT_1:func 12
definition
let a1 be non quasi-empty ContextStr;
let a2 be Element of the carrier of ConceptLattice a1;
func A2 @ -> strict non empty concept-like ConceptStr over a1 equals
a2;
end;
:: CONLAT_1:def 24
theorem
for b1 being non quasi-empty ContextStr
for b2 being Element of the carrier of ConceptLattice b1 holds
b2 @ = b2;
:: CONLAT_1:th 47
theorem
for b1 being non quasi-empty ContextStr
for b2, b3 being Element of the carrier of ConceptLattice b1 holds
b2 [= b3
iff
b2 @ is-SubConcept-of b3 @;
:: CONLAT_1:th 48
theorem
for b1 being non quasi-empty ContextStr holds
ConceptLattice b1 is non empty Lattice-like complete LattStr;
:: CONLAT_1:funcreg 5
registration
let a1 be non quasi-empty ContextStr;
cluster ConceptLattice a1 -> non empty strict complete;
end;