begin
theorem Th1:
theorem Th2:
scheme
SubsetSEq{
F1()
-> set ,
P1[
set ] } :
for
X1,
X2 being
Subset of
F1() st ( for
y being
set holds
(
y in X1 iff
P1[
y] ) ) & ( for
y being
set holds
(
y in X2 iff
P1[
y] ) ) holds
X1 = X2
:: deftheorem Def1 defines Maximal_in ARMSTRNG:def 1 :
for X being set
for R being Relation
for b3 being Subset of X holds
( b3 = R Maximal_in X iff for x being set holds
( x in b3 iff x is_maximal_wrt X,R ) );
:: deftheorem Def2 defines is_/\-irreducible_in ARMSTRNG:def 2 :
for x, X being set holds
( x is_/\-irreducible_in X iff ( x in X & ( for z, y being set st z in X & y in X & x = z /\ y & not x = z holds
x = y ) ) );
:: deftheorem Def3 defines /\-IRR ARMSTRNG:def 3 :
for X being non empty set
for b2 being Subset of X holds
( b2 = /\-IRR X iff for x being set holds
( x in b2 iff x is_/\-irreducible_in X ) );
theorem Th3:
:: deftheorem Def4 defines (B1) ARMSTRNG:def 4 :
for X being set
for B being Subset-Family of X holds
( B is (B1) iff X in B );
theorem Th4:
:: deftheorem Def5 defines '&' ARMSTRNG:def 5 :
for n being Element of NAT
for p, q, b4 being Tuple of n, BOOLEAN holds
( b4 = p '&' q iff for i being set st i in Seg n holds
b4 . i = (p /. i) '&' (q /. i) );
theorem Th5:
theorem
theorem
canceled;
theorem Th8:
begin
begin
:: deftheorem ARMSTRNG:def 6 :
canceled;
:: deftheorem defines Dependencies ARMSTRNG:def 7 :
for X being set holds Dependencies X = [:(bool X),(bool X):];
theorem Th9:
theorem Th10:
:: deftheorem Def8 defines >|> ARMSTRNG:def 8 :
for R being DB-Rel
for A, B being Subset of the Attributes of R holds
( A >|> B,R iff for f, g being Element of the Relationship of R st f | A = g | A holds
f | B = g | B );
:: deftheorem defines Dependency-str ARMSTRNG:def 9 :
for R being DB-Rel holds Dependency-str R = { [A,B] where A, B is Subset of the Attributes of R : A >|> B,R } ;
theorem
canceled;
theorem Th12:
begin
:: deftheorem Def10 defines >= ARMSTRNG:def 10 :
for X being set
for P, Q being Dependency of X holds
( P >= Q iff ( P `1 c= Q `1 & Q `2 c= P `2 ) );
theorem Th13:
theorem Th14:
theorem Th15:
for
X being
set for
A,
B,
A9,
B9 being
Subset of
X holds
(
[A,B] >= [A9,B9] iff (
A c= A9 &
B9 c= B ) )
:: deftheorem defines Dependencies-Order ARMSTRNG:def 11 :
for X being set holds Dependencies-Order X = { [P,Q] where P, Q is Dependency of X : P <= Q } ;
theorem
theorem Th17:
theorem Th18:
theorem Th19:
:: deftheorem Def12 defines (F1) ARMSTRNG:def 12 :
for X being set
for F being Dependency-set of X holds
( F is (F1) iff for A being Subset of X holds [A,A] in F );
theorem Th20:
definition
let X be
set ;
let F be
Dependency-set of
X;
attr F is
(F3) means :
Def13:
for
A,
B,
A9,
B9 being
Subset of
X st
[A,B] in F &
[A,B] >= [A9,B9] holds
[A9,B9] in F;
attr F is
(F4) means :
Def14:
for
A,
B,
A9,
B9 being
Subset of
X st
[A,B] in F &
[A9,B9] in F holds
[(A \/ A9),(B \/ B9)] in F;
end;
:: deftheorem Def13 defines (F3) ARMSTRNG:def 13 :
for X being set
for F being Dependency-set of X holds
( F is (F3) iff for A, B, A9, B9 being Subset of X st [A,B] in F & [A,B] >= [A9,B9] holds
[A9,B9] in F );
:: deftheorem Def14 defines (F4) ARMSTRNG:def 14 :
for X being set
for F being Dependency-set of X holds
( F is (F4) iff for A, B, A9, B9 being Subset of X st [A,B] in F & [A9,B9] in F holds
[(A \/ A9),(B \/ B9)] in F );
theorem Th21:
:: deftheorem Def15 defines full_family ARMSTRNG:def 15 :
for X being set
for F being Dependency-set of X holds
( F is full_family iff ( F is (F1) & F is (F2) & F is (F3) & F is (F4) ) );
theorem
:: deftheorem Def16 defines (DC3) ARMSTRNG:def 16 :
for X being set
for F being Dependency-set of X holds
( F is (DC3) iff for A, B being Subset of X st B c= A holds
[A,B] in F );
theorem
theorem
theorem Th25:
theorem
begin
:: deftheorem defines Maximal_wrt ARMSTRNG:def 17 :
for X being set
for F being Dependency-set of X holds Maximal_wrt F = (Dependencies-Order X) Maximal_in F;
theorem
:: deftheorem Def18 defines ^|^ ARMSTRNG:def 18 :
for X being set
for F being Dependency-set of X
for x, y being set holds
( x ^|^ y,F iff [x,y] in Maximal_wrt F );
theorem Th28:
theorem Th29:
definition
let X be
set ;
let M be
Dependency-set of
X;
attr M is
(M1) means :
Def19:
for
A being
Subset of
X ex
A9,
B9 being
Subset of
X st
(
[A9,B9] >= [A,A] &
[A9,B9] in M );
attr M is
(M2) means :
Def20:
for
A,
B,
A9,
B9 being
Subset of
X st
[A,B] in M &
[A9,B9] in M &
[A,B] >= [A9,B9] holds
(
A = A9 &
B = B9 );
attr M is
(M3) means :
Def21:
for
A,
B,
A9,
B9 being
Subset of
X st
[A,B] in M &
[A9,B9] in M &
A9 c= B holds
B9 c= B;
end;
:: deftheorem Def19 defines (M1) ARMSTRNG:def 19 :
for X being set
for M being Dependency-set of X holds
( M is (M1) iff for A being Subset of X ex A9, B9 being Subset of X st
( [A9,B9] >= [A,A] & [A9,B9] in M ) );
:: deftheorem Def20 defines (M2) ARMSTRNG:def 20 :
for X being set
for M being Dependency-set of X holds
( M is (M2) iff for A, B, A9, B9 being Subset of X st [A,B] in M & [A9,B9] in M & [A,B] >= [A9,B9] holds
( A = A9 & B = B9 ) );
:: deftheorem Def21 defines (M3) ARMSTRNG:def 21 :
for X being set
for M being Dependency-set of X holds
( M is (M3) iff for A, B, A9, B9 being Subset of X st [A,B] in M & [A9,B9] in M & A9 c= B holds
B9 c= B );
theorem Th30:
theorem Th31:
theorem Th32:
begin
:: deftheorem defines saturated-subsets ARMSTRNG:def 22 :
for X being set
for F being Dependency-set of X holds saturated-subsets F = { B where B is Subset of X : ex A being Subset of X st A ^|^ B,F } ;
theorem Th33:
theorem Th34:
:: deftheorem defines deps_encl_by ARMSTRNG:def 23 :
for X, B being set holds X deps_encl_by B = { [a,b] where a, b is Subset of X : for c being set st c in B & a c= c holds
b c= c } ;
theorem Th35:
theorem Th36:
theorem Th37:
:: deftheorem defines enclosure_of ARMSTRNG:def 24 :
for X being set
for F being Dependency-set of X holds enclosure_of F = { b where b is Subset of X : for A, B being Subset of X st [A,B] in F & A c= b holds
B c= b } ;
theorem Th38:
theorem Th39:
:: deftheorem Def25 defines Dependency-closure ARMSTRNG:def 25 :
for X being non empty finite set
for F being Dependency-set of X
for b3 being Full-family of X holds
( b3 = Dependency-closure F iff ( F c= b3 & ( for G being Dependency-set of X st F c= G & G is full_family holds
b3 c= G ) ) );
theorem Th40:
theorem Th41:
theorem
theorem
:: deftheorem Def26 defines is_generator-set_of ARMSTRNG:def 26 :
for X, G being set
for B being Subset-Family of X holds
( G is_generator-set_of B iff ( G c= B & B = { (Intersect S) where S is Subset-Family of X : S c= G } ) );
theorem
theorem Th45:
theorem
theorem
begin
theorem
begin
Lm3:
for X, F, BB being set st F = { [a,b] where a, b is Subset of X : for c being set st c in BB & a c= c holds
b c= c } holds
for x, y being Subset of X holds
( [x,y] in F iff for c being set st c in BB & x c= c holds
y c= c )
:: deftheorem defines candidate-keys ARMSTRNG:def 27 :
for X being set
for F being Dependency-set of X holds candidate-keys F = { A where A is Subset of X : [A,X] in Maximal_wrt F } ;
theorem
:: deftheorem Def28 defines without_proper_subsets ARMSTRNG:def 28 :
for X being set holds
( X is without_proper_subsets iff for x, y being set st x in X & y in X & x c= y holds
x = y );
theorem
theorem
theorem
theorem
begin
definition
let X be
set ;
let F be
Dependency-set of
X;
attr F is
(DC4) means :
Def29:
for
A,
B,
C being
Subset of
X st
[A,B] in F &
[A,C] in F holds
[A,(B \/ C)] in F;
attr F is
(DC5) means :
Def30:
for
A,
B,
C,
D being
Subset of
X st
[A,B] in F &
[(B \/ C),D] in F holds
[(A \/ C),D] in F;
attr F is
(DC6) means :
Def31:
for
A,
B,
C being
Subset of
X st
[A,B] in F holds
[(A \/ C),B] in F;
end;
:: deftheorem Def29 defines (DC4) ARMSTRNG:def 29 :
for X being set
for F being Dependency-set of X holds
( F is (DC4) iff for A, B, C being Subset of X st [A,B] in F & [A,C] in F holds
[A,(B \/ C)] in F );
:: deftheorem Def30 defines (DC5) ARMSTRNG:def 30 :
for X being set
for F being Dependency-set of X holds
( F is (DC5) iff for A, B, C, D being Subset of X st [A,B] in F & [(B \/ C),D] in F holds
[(A \/ C),D] in F );
:: deftheorem Def31 defines (DC6) ARMSTRNG:def 31 :
for X being set
for F being Dependency-set of X holds
( F is (DC6) iff for A, B, C being Subset of X st [A,B] in F holds
[(A \/ C),B] in F );
theorem
theorem
theorem
:: deftheorem defines charact_set ARMSTRNG:def 32 :
for X being set
for F being Dependency-set of X holds charact_set F = { A where A is Subset of X : ex a, b being Subset of X st
( [a,b] in F & a c= A & not b c= A ) } ;
theorem Th57:
theorem
theorem Th59:
theorem
theorem Th61:
:: deftheorem Def33 defines is_p_i_w_ncv_of ARMSTRNG:def 33 :
for A, K being set
for F being Dependency-set of A holds
( K is_p_i_w_ncv_of F iff ( ( for a being Subset of A st K c= a & a <> A holds
a in charact_set F ) & ( for k being set st k c< K holds
ex a being Subset of A st
( k c= a & a <> A & not a in charact_set F ) ) ) );
theorem