begin
definition
let A,
B be non
empty preBoolean set ;
let x,
y be
Element of
[:A,B:];
pred x c= y means
(
x `1 c= y `1 &
x `2 c= y `2 );
reflexivity
for x being Element of [:A,B:] holds
( x `1 c= x `1 & x `2 c= x `2 )
;
func x \/ y -> Element of
[:A,B:] equals
[((x `1) \/ (y `1)),((x `2) \/ (y `2))];
correctness
coherence
[((x `1) \/ (y `1)),((x `2) \/ (y `2))] is Element of [:A,B:];
;
commutativity
for b1, x, y being Element of [:A,B:] st b1 = [((x `1) \/ (y `1)),((x `2) \/ (y `2))] holds
b1 = [((y `1) \/ (x `1)),((y `2) \/ (x `2))]
;
idempotence
for x being Element of [:A,B:] holds x = [((x `1) \/ (x `1)),((x `2) \/ (x `2))]
by MCART_1:23;
func x /\ y -> Element of
[:A,B:] equals
[((x `1) /\ (y `1)),((x `2) /\ (y `2))];
correctness
coherence
[((x `1) /\ (y `1)),((x `2) /\ (y `2))] is Element of [:A,B:];
;
commutativity
for b1, x, y being Element of [:A,B:] st b1 = [((x `1) /\ (y `1)),((x `2) /\ (y `2))] holds
b1 = [((y `1) /\ (x `1)),((y `2) /\ (x `2))]
;
idempotence
for x being Element of [:A,B:] holds x = [((x `1) /\ (x `1)),((x `2) /\ (x `2))]
by MCART_1:23;
func x \ y -> Element of
[:A,B:] equals
[((x `1) \ (y `1)),((x `2) \ (y `2))];
correctness
coherence
[((x `1) \ (y `1)),((x `2) \ (y `2))] is Element of [:A,B:];
;
func x \+\ y -> Element of
[:A,B:] equals
[((x `1) \+\ (y `1)),((x `2) \+\ (y `2))];
correctness
coherence
[((x `1) \+\ (y `1)),((x `2) \+\ (y `2))] is Element of [:A,B:];
;
commutativity
for b1, x, y being Element of [:A,B:] st b1 = [((x `1) \+\ (y `1)),((x `2) \+\ (y `2))] holds
b1 = [((y `1) \+\ (x `1)),((y `2) \+\ (x `2))]
;
end;
:: deftheorem defines c= NORMFORM:def 1 :
for A, B being non empty preBoolean set
for x, y being Element of [:A,B:] holds
( x c= y iff ( x `1 c= y `1 & x `2 c= y `2 ) );
:: deftheorem defines \/ NORMFORM:def 2 :
for A, B being non empty preBoolean set
for x, y being Element of [:A,B:] holds x \/ y = [((x `1) \/ (y `1)),((x `2) \/ (y `2))];
:: deftheorem defines /\ NORMFORM:def 3 :
for A, B being non empty preBoolean set
for x, y being Element of [:A,B:] holds x /\ y = [((x `1) /\ (y `1)),((x `2) /\ (y `2))];
:: deftheorem defines \ NORMFORM:def 4 :
for A, B being non empty preBoolean set
for x, y being Element of [:A,B:] holds x \ y = [((x `1) \ (y `1)),((x `2) \ (y `2))];
:: deftheorem defines \+\ NORMFORM:def 5 :
for A, B being non empty preBoolean set
for x, y being Element of [:A,B:] holds x \+\ y = [((x `1) \+\ (y `1)),((x `2) \+\ (y `2))];
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem Th4:
theorem Th5:
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem Th16:
theorem
canceled;
theorem
canceled;
theorem
theorem Th20:
theorem Th21:
theorem Th22:
theorem
canceled;
theorem
theorem Th25:
theorem Th26:
theorem
theorem Th28:
theorem
theorem
theorem
definition
let A be
set ;
func FinPairUnion A -> BinOp of
[:(Fin A),(Fin A):] means :
Def6:
for
x,
y being
Element of
[:(Fin A),(Fin A):] holds
it . (
x,
y)
= x \/ y;
existence
ex b1 being BinOp of [:(Fin A),(Fin A):] st
for x, y being Element of [:(Fin A),(Fin A):] holds b1 . (x,y) = x \/ y
uniqueness
for b1, b2 being BinOp of [:(Fin A),(Fin A):] st ( for x, y being Element of [:(Fin A),(Fin A):] holds b1 . (x,y) = x \/ y ) & ( for x, y being Element of [:(Fin A),(Fin A):] holds b2 . (x,y) = x \/ y ) holds
b1 = b2
end;
:: deftheorem Def6 defines FinPairUnion NORMFORM:def 6 :
for A being set
for b2 being BinOp of [:(Fin A),(Fin A):] holds
( b2 = FinPairUnion A iff for x, y being Element of [:(Fin A),(Fin A):] holds b2 . (x,y) = x \/ y );
:: deftheorem defines FinPairUnion NORMFORM:def 7 :
for X being non empty set
for A being set
for B being Element of Fin X
for f being Function of X,[:(Fin A),(Fin A):] holds FinPairUnion (B,f) = (FinPairUnion A) $$ (B,f);
Lm1:
for A being set holds FinPairUnion A is idempotent
Lm2:
for A being set holds FinPairUnion A is commutative
Lm3:
for A being set holds FinPairUnion A is associative
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
theorem Th36:
theorem Th37:
theorem Th38:
theorem Th39:
theorem
theorem
:: deftheorem defines DISJOINT_PAIRS NORMFORM:def 8 :
for X being set holds DISJOINT_PAIRS X = { a where a is Element of [:(Fin X),(Fin X):] : a `1 misses a `2 } ;
theorem Th42:
theorem
theorem
theorem Th45:
theorem Th46:
theorem
theorem
canceled;
theorem
theorem
Lm4:
for A being set holds {} in { B where B is Element of Fin (DISJOINT_PAIRS A) : for a, b being Element of DISJOINT_PAIRS A st a in B & b in B & a c= b holds
a = b }
:: deftheorem defines Normal_forms_on NORMFORM:def 9 :
for A being set holds Normal_forms_on A = { B where B is Element of Fin (DISJOINT_PAIRS A) : for a, b being Element of DISJOINT_PAIRS A st a in B & b in B & a c= b holds
a = b } ;
theorem
theorem Th52:
theorem Th53:
:: deftheorem defines mi NORMFORM:def 10 :
for A being set
for B being Element of Fin (DISJOINT_PAIRS A) holds mi B = { t where t is Element of DISJOINT_PAIRS A : for s being Element of DISJOINT_PAIRS A holds
( ( s in B & s c= t ) iff s = t ) } ;
:: deftheorem defines ^ NORMFORM:def 11 :
for A being set
for B, C being Element of Fin (DISJOINT_PAIRS A) holds B ^ C = (DISJOINT_PAIRS A) /\ { (s \/ t) where s, t is Element of DISJOINT_PAIRS A : ( s in B & t in C ) } ;
theorem
canceled;
theorem Th55:
theorem Th56:
theorem
canceled;
theorem Th58:
theorem
theorem
theorem Th61:
Lm5:
for A being set
for B, C being Element of Fin (DISJOINT_PAIRS A) st ( for a being Element of DISJOINT_PAIRS A st a in B holds
a in C ) holds
B c= C
theorem
canceled;
theorem
canceled;
theorem Th64:
theorem Th65:
theorem Th66:
theorem Th67:
theorem Th68:
theorem
theorem Th70:
Lm6:
for A being set
for a being Element of DISJOINT_PAIRS A
for B, C being Element of Fin (DISJOINT_PAIRS A) st a in B ^ C holds
ex b being Element of DISJOINT_PAIRS A st
( b c= a & b in (mi B) ^ C )
theorem Th71:
theorem Th72:
theorem Th73:
theorem Th74:
theorem Th75:
theorem Th76:
theorem Th77:
Lm7:
for A being set
for a being Element of DISJOINT_PAIRS A
for B, C being Element of Fin (DISJOINT_PAIRS A) st a in B ^ C holds
ex c being Element of DISJOINT_PAIRS A st
( c in C & c c= a )
Lm8:
for A being set
for K, L being Element of Normal_forms_on A holds mi ((K ^ L) \/ L) = mi L
theorem Th78:
theorem Th79:
definition
let A be
set ;
canceled;canceled;func NormForm A -> strict LattStr means :
Def14:
( the
carrier of
it = Normal_forms_on A & ( for
B,
C being
Element of
Normal_forms_on A holds
( the
L_join of
it . (
B,
C)
= mi (B \/ C) & the
L_meet of
it . (
B,
C)
= mi (B ^ C) ) ) );
existence
ex b1 being strict LattStr st
( the carrier of b1 = Normal_forms_on A & ( for B, C being Element of Normal_forms_on A holds
( the L_join of b1 . (B,C) = mi (B \/ C) & the L_meet of b1 . (B,C) = mi (B ^ C) ) ) )
uniqueness
for b1, b2 being strict LattStr st the carrier of b1 = Normal_forms_on A & ( for B, C being Element of Normal_forms_on A holds
( the L_join of b1 . (B,C) = mi (B \/ C) & the L_meet of b1 . (B,C) = mi (B ^ C) ) ) & the carrier of b2 = Normal_forms_on A & ( for B, C being Element of Normal_forms_on A holds
( the L_join of b2 . (B,C) = mi (B \/ C) & the L_meet of b2 . (B,C) = mi (B ^ C) ) ) holds
b1 = b2
end;
:: deftheorem NORMFORM:def 12 :
canceled;
:: deftheorem NORMFORM:def 13 :
canceled;
:: deftheorem Def14 defines NormForm NORMFORM:def 14 :
for A being set
for b2 being strict LattStr holds
( b2 = NormForm A iff ( the carrier of b2 = Normal_forms_on A & ( for B, C being Element of Normal_forms_on A holds
( the L_join of b2 . (B,C) = mi (B \/ C) & the L_meet of b2 . (B,C) = mi (B ^ C) ) ) ) );
Lm9:
for A being set
for a, b being Element of (NormForm A) holds a "\/" b = b "\/" a
Lm10:
for A being set
for a, b, c being Element of (NormForm A) holds a "\/" (b "\/" c) = (a "\/" b) "\/" c
Lm11:
for A being set
for K, L being Element of Normal_forms_on A holds the L_join of (NormForm A) . (( the L_meet of (NormForm A) . (K,L)),L) = L
Lm12:
for A being set
for a, b being Element of (NormForm A) holds (a "/\" b) "\/" b = b
Lm13:
for A being set
for a, b being Element of (NormForm A) holds a "/\" b = b "/\" a
Lm14:
for A being set
for a, b, c being Element of (NormForm A) holds a "/\" (b "/\" c) = (a "/\" b) "/\" c
Lm15:
for A being set
for K, L, M being Element of Normal_forms_on A holds the L_meet of (NormForm A) . (K,( the L_join of (NormForm A) . (L,M))) = the L_join of (NormForm A) . (( the L_meet of (NormForm A) . (K,L)),( the L_meet of (NormForm A) . (K,M)))
Lm16:
for A being set
for a, b being Element of (NormForm A) holds a "/\" (a "\/" b) = a
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
theorem