:: BVFUNC_2 semantic presentation

definition
let c1 be set ;
redefine func PARTITIONS as PARTITIONS a1 -> Part-Family of a1;
coherence
PARTITIONS c1 is Part-Family of c1
proof
E1: PARTITIONS c1 c= bool (bool c1)
proof
let c2 be set ; :: uses TARSKI:def 3
assume c2 in PARTITIONS c1 ;
then c2 is a_partition of c1 by PARTIT1:def 3;
hence c2 in bool (bool c1) ;
end;
for b1 being set holds
( b1 in PARTITIONS c1 implies b1 is a_partition of c1 ) by PARTIT1:def 3;
hence PARTITIONS c1 is Part-Family of c1 by E1, T_1TOPSP:def 2, T_1TOPSP:def 3;
end;
end;

definition
let c1 be set ;
let c2 be non empty Part-Family of c1;
redefine mode Element as Element of a2 -> a_partition of a1;
coherence
for b1 being Element of c2 holds
b1 is a_partition of c1
by T_1TOPSP:def 3;
end;

theorem E1: :: BVFUNC_2:1
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1)
for b3 being Element of b1 holds
ex b4 being Subset of b1 st
( b3 in b4 & ex b5 being Functionex b6 being Subset-Family of b1 st
( dom b5 = b2 & rng b5 = b6 & for b7 being set holds
( b7 in b2 implies b5 . b7 in b7 ) & b4 = Intersect b6 & b4 <> {} ) )
proof
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
let c3 be Element of c1;
deffunc H1( Element of PARTITIONS c1) -> Element of a1 = EqClass c3,a1;
defpred S1[ set ] means a1 in c2;
consider c4 being PartFunc of PARTITIONS c1, bool c1 such that
E2: for b1 being Element of PARTITIONS c1 holds
( b1 in dom c4 iff S1[b1] )
and E3: for b1 being Element of PARTITIONS c1 holds
( b1 in dom c4 implies c4 /. b1 = H1(b1) ) from PARTFUN2:sch 2();
E4: dom c4 c= c2
proof
let c5 be set ; :: uses TARSKI:def 3
assume c5 in dom c4 ;
hence c5 in c2 by E2;
end;
E5: c2 c= dom c4
proof
let c5 be set ; :: uses TARSKI:def 3
assume c5 in c2 ;
hence c5 in dom c4 by E2;
end;
then E6: dom c4 = c2 by E4, XBOOLE_0:def 10;
E7: for b1 being set holds
( b1 in c2 implies c4 . b1 in b1 )
proof
let c5 be set ;
assume E8: c5 in c2 ;
then reconsider c6 = c5 as a_partition of c1 by PARTIT1:def 3;
c4 /. c6 = c4 . c6 by E5, E8, FINSEQ_4:def 4;
then c4 . c6 = EqClass c3,c6 by E3, E5, E8;
hence c4 . c5 in c5 ;
end;
E8: for b1 being Element of PARTITIONS c1 holds
( b1 in dom c4 implies c3 in c4 . b1 )
proof
let c5 be Element of PARTITIONS c1;
assume E9: c5 in dom c4 ;
then c4 /. c5 = EqClass c3,c5 by E3;
then c4 . c5 = EqClass c3,c5 by E9, FINSEQ_4:def 4;
hence c3 in c4 . c5 by T_1TOPSP:def 1;
end;
E9: for b1 being set holds
( b1 in rng c4 implies c3 in b1 )
proof
let c5 be set ;
assume c5 in rng c4 ;
then consider c6 being set such that
E10: ( c6 in dom c4 & c5 = c4 . c6 ) by FUNCT_1:def 5;
thus c3 in c5 by E8, E10;
end;
reconsider c5 = rng c4 as Subset-Family of c1 ;
per cases not ( not rng c4 = {} & not rng c4 <> {} ) ;
suppose rng c4 = {} ;
then Intersect c5 = c1 by SETFAM_1:def 10;
hence ex b1 being Subset of c1 st
( c3 in b1 & ex b2 being Functionex b3 being Subset-Family of c1 st
( dom b2 = c2 & rng b2 = b3 & for b4 being set holds
( b4 in c2 implies b2 . b4 in b4 ) & b1 = Intersect b3 & b1 <> {} ) ) by E6, E7;
end;
suppose E10: rng c4 <> {} ;
then E11: c3 in meet (rng c4) by E9, SETFAM_1:def 1;
Intersect c5 = meet (rng c4) by E10, SETFAM_1:def 10;
hence ex b1 being Subset of c1 st
( c3 in b1 & ex b2 being Functionex b3 being Subset-Family of c1 st
( dom b2 = c2 & rng b2 = b3 & for b4 being set holds
( b4 in c2 implies b2 . b4 in b4 ) & b1 = Intersect b3 & b1 <> {} ) ) by E6, E7, E11;
end;
end;
end;

definition
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
func '/\' a2 -> a_partition of a1 means :E2: :: BVFUNC_2:def 1
for b1 being set holds
( b1 in a3 iff ex b2 being Functionex b3 being Subset-Family of a1 st
( dom b2 = a2 & rng b2 = b3 & for b4 being set holds
( b4 in a2 implies b2 . b4 in b4 ) & b1 = Intersect b3 & b1 <> {} ) );
existence
ex b1 being a_partition of c1 st
for b2 being set holds
( b2 in b1 iff ex b3 being Functionex b4 being Subset-Family of c1 st
( dom b3 = c2 & rng b3 = b4 & for b5 being set holds
( b5 in c2 implies b3 . b5 in b5 ) & b2 = Intersect b4 & b2 <> {} ) )
proof
defpred S1[ set ] means ex b1 being Functionex b2 being Subset-Family of c1 st
( dom b1 = c2 & rng b1 = b2 & for b3 being set holds
( b3 in c2 implies b1 . b3 in b3 ) & a1 = Intersect b2 & a1 <> {} );
consider c3 being set such that
E2: for b1 being set holds
( b1 in c3 iff ( b1 in bool c1 & S1[b1] ) ) from XBOOLE_0:sch 1();
take c3 ;
E3: union c3 = c1
proof
E4: union c3 c= c1
proof
let c4 be set ; :: uses TARSKI:def 3
assume c4 in union c3 ;
then consider c5 being set such that
E5: ( c4 in c5 & c5 in c3 ) by TARSKI:def 4;
consider c6 being Function, c7 being Subset-Family of c1 such that
E6: ( dom c6 = c2 & rng c6 = c7 & for b1 being set holds
( b1 in c2 implies c6 . b1 in b1 ) & c5 = Intersect c7 & c5 <> {} ) by E2, E5;
thus c4 in c1 by E5, E6;
end;
c1 c= union c3
proof
let c4 be set ; :: uses TARSKI:def 3
assume c4 in c1 ;
then reconsider c5 = c4 as Element of c1 ;
consider c6 being Subset of c1 such that
E5: ( c5 in c6 & ex b1 being Functionex b2 being Subset-Family of c1 st
( dom b1 = c2 & rng b1 = b2 & for b3 being set holds
( b3 in c2 implies b1 . b3 in b3 ) & c6 = Intersect b2 & c6 <> {} ) ) by E1;
consider c7 being Function, c8 being Subset-Family of c1 such that
E6: ( dom c7 = c2 & rng c7 = c8 & for b1 being set holds
( b1 in c2 implies c7 . b1 in b1 ) & c6 = Intersect c8 & c6 <> {} ) by E5;
c6 in c3 by E2, E6;
hence c4 in union c3 by E5, TARSKI:def 4;
end;
hence union c3 = c1 by E4, XBOOLE_0:def 10;
end;
E4: for b1 being Subset of c1 holds
( b1 in c3 implies ( b1 <> {} & for b2 being Subset of c1 holds
not ( b2 in c3 & not b1 = b2 & not b1 misses b2 ) ) )
proof
let c4 be Subset of c1;
assume c4 in c3 ;
then consider c5 being Function, c6 being Subset-Family of c1 such that
E5: ( dom c5 = c2 & rng c5 = c6 & for b1 being set holds
( b1 in c2 implies c5 . b1 in b1 ) & c4 = Intersect c6 & c4 <> {} ) by E2;
thus c4 <> {} by E5;
let c7 be Subset of c1;
assume c7 in c3 ;
then consider c8 being Function, c9 being Subset-Family of c1 such that
E6: ( dom c8 = c2 & rng c8 = c9 & for b1 being set holds
( b1 in c2 implies c8 . b1 in b1 ) & c7 = Intersect c9 & c7 <> {} ) by E2;
per cases not ( not c2 = {} & not c2 <> {} ) ;
suppose c2 = {} ;
then ( rng c5 = {} & rng c8 = {} ) by E5, E6, RELAT_1:65;
hence not ( not c4 = c7 & not c4 misses c7 ) by E5, E6;
end;
suppose c2 <> {} ;
then E7: ( rng c5 <> {} & rng c8 <> {} ) by E5, E6, RELAT_1:65;
now
assume c4 meets c7 ;
then consider c10 being set such that
E8: ( c10 in c4 & c10 in c7 ) by XBOOLE_0:3;
E9: c10 in meet (rng c5) by E5, E7, E8, SETFAM_1:def 10;
E10: c10 in meet (rng c8) by E6, E7, E8, SETFAM_1:def 10;
for b1 being set holds
( b1 in c2 implies c5 . b1 = c8 . b1 )
proof
let c11 be set ;
assume E11: c11 in c2 ;
then reconsider c12 = c11 as a_partition of c1 by PARTIT1:def 3;
E12: c5 . c12 in c12 by E5, E11;
E13: c8 . c12 in c12 by E6, E11;
E14: c5 . c12 in rng c5 by E5, E11, FUNCT_1:def 5;
E15: c8 . c12 in rng c8 by E6, E11, FUNCT_1:def 5;
E16: c10 in c5 . c12 by E9, E14, SETFAM_1:def 1;
E17: c10 in c8 . c12 by E10, E15, SETFAM_1:def 1;
( c5 . c12 = c8 . c12 or c5 . c12 misses c8 . c12 ) by E12, E13, EQREL_1:def 6;
hence c5 . c11 = c8 . c11 by E16, E17, XBOOLE_0:3;
end;
hence not ( not c4 = c7 & not c4 misses c7 ) by E5, E6, FUNCT_1:9;
end;
hence not ( not c4 = c7 & not c4 misses c7 ) ;
end;
end;
end;
c3 c= bool c1
proof
let c4 be set ; :: uses TARSKI:def 3
assume c4 in c3 ;
then consider c5 being Function, c6 being Subset-Family of c1 such that
E5: ( dom c5 = c2 & rng c5 = c6 & for b1 being set holds
( b1 in c2 implies c5 . b1 in b1 ) & c4 = Intersect c6 & c4 <> {} ) by E2;
thus c4 in bool c1 by E5;
end;
then reconsider c4 = c3 as Subset-Family of c1 ;
c4 is a_partition of c1 by E3, E4, EQREL_1:def 6;
hence ( c3 is Element of bool (bool c1) & c3 is a_partition of c1 & for b1 being set holds
( b1 in c3 iff ex b2 being Functionex b3 being Subset-Family of c1 st
( dom b2 = c2 & rng b2 = b3 & for b4 being set holds
( b4 in c2 implies b2 . b4 in b4 ) & b1 = Intersect b3 & b1 <> {} ) ) ) by E2;
end;
uniqueness
for b1, b2 being a_partition of c1 holds
( ( for b3 being set holds
( b3 in b1 iff ex b4 being Functionex b5 being Subset-Family of c1 st
( dom b4 = c2 & rng b4 = b5 & for b6 being set holds
( b6 in c2 implies b4 . b6 in b6 ) & b3 = Intersect b5 & b3 <> {} ) ) & for b3 being set holds
( b3 in b2 iff ex b4 being Functionex b5 being Subset-Family of c1 st
( dom b4 = c2 & rng b4 = b5 & for b6 being set holds
( b6 in c2 implies b4 . b6 in b6 ) & b3 = Intersect b5 & b3 <> {} ) ) ) implies ( b1 = b2 ) )
proof
let c3, c4 be a_partition of c1;
assume that E2: for b1 being set holds
( b1 in c3 iff ex b2 being Functionex b3 being Subset-Family of c1 st
( dom b2 = c2 & rng b2 = b3 & for b4 being set holds
( b4 in c2 implies b2 . b4 in b4 ) & b1 = Intersect b3 & b1 <> {} ) )
and E3: for b1 being set holds
( b1 in c4 iff ex b2 being Functionex b3 being Subset-Family of c1 st
( dom b2 = c2 & rng b2 = b3 & for b4 being set holds
( b4 in c2 implies b2 . b4 in b4 ) & b1 = Intersect b3 & b1 <> {} ) ) ;
now
let c5 be set ;
( c5 in c3 iff ex b1 being Functionex b2 being Subset-Family of c1 st
( dom b1 = c2 & rng b1 = b2 & for b3 being set holds
( b3 in c2 implies b1 . b3 in b3 ) & c5 = Intersect b2 & c5 <> {} ) ) by E2;
hence ( c5 in c3 iff c5 in c4 ) by E3;
end;
hence c3 = c4 by TARSKI:2;
end;
end;

:: deftheorem E2 defines '/\' BVFUNC_2:def 1 :
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1)
for b3 being a_partition of b1 holds
( b3 = '/\' b2 iff for b4 being set holds
( b4 in b3 iff ex b5 being Functionex b6 being Subset-Family of b1 st
( dom b5 = b2 & rng b5 = b6 & for b7 being set holds
( b7 in b2 implies b5 . b7 in b7 ) & b4 = Intersect b6 & b4 <> {} ) ) );

definition
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
let c3 be set ;
pred a3 is_upper_min_depend_of a2 means :E3: :: BVFUNC_2:def 2
( for b1 being a_partition of a1 holds
( b1 in a2 implies a3 is_a_dependent_set_of b1 ) & for b1 being set holds
( ( b1 c= a3 & for b2 being a_partition of a1 holds
( b2 in a2 implies b1 is_a_dependent_set_of b2 ) ) implies ( b1 = a3 ) ) );
end;

:: deftheorem E3 defines is_upper_min_depend_of BVFUNC_2:def 2 :
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1)
for b3 being set holds
( b3 is_upper_min_depend_of b2 iff ( for b4 being a_partition of b1 holds
( b4 in b2 implies b3 is_a_dependent_set_of b4 ) & for b4 being set holds
( ( b4 c= b3 & for b5 being a_partition of b1 holds
( b5 in b2 implies b4 is_a_dependent_set_of b5 ) ) implies ( b4 = b3 ) ) ) );

theorem E4: :: BVFUNC_2:2
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1)
for b3 being Element of b1 holds
not ( b2 <> {} & for b4 being Subset of b1 holds
not ( b3 in b4 & b4 is_upper_min_depend_of b2 ) )
proof
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
let c3 be Element of c1;
assume c2 <> {} ;
then consider c4 being set such that
E5: c4 in c2 by XBOOLE_0:def 1;
reconsider c5 = c4 as a_partition of c1 by E5, PARTIT1:def 3;
E6: ( union c5 = c1 & for b1 being set holds
( b1 in c5 implies ( b1 <> {} & for b2 being set holds
not ( b2 in c5 & not b1 = b2 & not b1 misses b2 ) ) ) ) by EQREL_1:def 6;
E7: c1 c= c1 ;
E8: for b1 being a_partition of c1 holds
( b1 in c2 implies c1 is_a_dependent_set_of b1 ) by PARTIT1:9;
defpred S1[ set ] means ( c3 in a1 & for b1 being a_partition of c1 holds
( b1 in c2 implies a1 is_a_dependent_set_of b1 ) );
reconsider c6 = { b1 where B is Subset of c1 : S1[b1] } as Subset-Family of c1 from DOMAIN_1:sch 7();
reconsider c7 = c6 as Subset-Family of c1 ;
E9: c1 in c7 by E7, E8;
for b1 being set holds
( b1 in c7 implies c3 in b1 )
proof
let c8 be set ;
assume c8 in c7 ;
then consider c9 being Subset of c1 such that
E10: ( c9 = c8 & c3 in c9 & for b1 being a_partition of c1 holds
( b1 in c2 implies c9 is_a_dependent_set_of b1 ) ) ;
thus c3 in c8 by E10;
end;
then E10: c3 in meet c7 by E9, SETFAM_1:def 1;
then E11: Intersect c7 <> {} by E9, SETFAM_1:def 10;
take Intersect c7 ;
E12: for b1 being a_partition of c1 holds
( b1 in c2 implies Intersect c7 is_a_dependent_set_of b1 )
proof
let c8 be a_partition of c1;
assume E13: c8 in c2 ;
for b1 being set holds
( b1 in c7 implies b1 is_a_dependent_set_of c8 )
proof
let c9 be set ;
assume c9 in c7 ;
then consider c10 being Subset of c1 such that
E14: ( c10 = c9 & c3 in c10 & for b1 being a_partition of c1 holds
( b1 in c2 implies c10 is_a_dependent_set_of b1 ) ) ;
thus c9 is_a_dependent_set_of c8 by E13, E14;
end;
hence Intersect c7 is_a_dependent_set_of c8 by E11, PARTIT1:10;
end;
for b1 being set holds
( ( b1 c= Intersect c7 & for b2 being a_partition of c1 holds
( b2 in c2 implies b1 is_a_dependent_set_of b2 ) ) implies ( b1 = Intersect c7 ) )
proof
let c8 be set ;
assume E13: ( c8 c= Intersect c7 & for b1 being a_partition of c1 holds
( b1 in c2 implies c8 is_a_dependent_set_of b1 ) ) ;
then c8 is_a_dependent_set_of c5 by E5;
then consider c9 being set such that
E14: ( c9 c= c5 & c9 <> {} & c8 = union c9 ) by PARTIT1:def 1;
E15: c8 c= c1 by E6, E14, ZFMISC_1:95;
per cases not ( not c3 in c8 & c3 in c8 ) ;
suppose c3 in c8 ;
then E16: c8 in c7 by E13, E15;
Intersect c7 c= c8
proof
let c10 be set ; :: uses TARSKI:def 3
assume c10 in Intersect c7 ;
then c10 in meet c7 by E9, SETFAM_1:def 10;
hence c10 in c8 by E16, SETFAM_1:def 1;
end;
hence c8 = Intersect c7 by E13, XBOOLE_0:def 10;
end;
suppose E16: not c3 in c8 ;
reconsider c10 = c8 as Subset of c1 by E6, E14, ZFMISC_1:95;
c10 ` = c1 \ c10 by SUBSET_1:def 5;
then E17: c3 in c10 ` by E16, XBOOLE_0:def 4;
c10 misses c10 ` by SUBSET_1:44;
then E18: c10 /\ (c10 ` ) = {} by XBOOLE_0:def 7;
E19: c10 <> c1 by E16;
for b1 being a_partition of c1 holds
( b1 in c2 implies c10 ` is_a_dependent_set_of b1 )
proof
let c11 be a_partition of c1;
assume c11 in c2 ;
then c10 is_a_dependent_set_of c11 by E13;
hence c10 ` is_a_dependent_set_of c11 by E19, PARTIT1:12;
end;
then E20: c10 ` in c7 by E17;
Intersect c7 c= c10 `
proof
let c11 be set ; :: uses TARSKI:def 3
assume c11 in Intersect c7 ;
then c11 in meet c7 by E9, SETFAM_1:def 10;
hence c11 in c10 ` by E20, SETFAM_1:def 1;
end;
then c10 /\ (Intersect c7) c= c10 /\ (c10 ` ) by XBOOLE_1:26;
then E21: c10 /\ (Intersect c7) = {} by E18, XBOOLE_1:3;
c10 /\ c10 = c10 ;
then c10 c= {} by E13, E21, XBOOLE_1:26;
then E22: union c9 = {} by E14, XBOOLE_1:3;
consider c11 being set such that
E23: c11 in c9 by E14, XBOOLE_0:def 1;
E24: c11 <> {} by E6, E14, E23;
E25: c11 c= {} by E22, E23, ZFMISC_1:92;
consider c12 being set such that
E26: c12 in c11 by E24, XBOOLE_0:def 1;
thus c8 = Intersect c7 by E25, E26;
end;
end;
end;
hence ( c3 in Intersect c7 & Intersect c7 is_upper_min_depend_of c2 ) by E9, E10, E12, E3, SETFAM_1:def 10;
end;

definition
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
func '\/' a2 -> a_partition of a1 means :E5: :: BVFUNC_2:def 3
for b1 being set holds
( b1 in a3 iff b1 is_upper_min_depend_of a2 ) if a2 <> {}
otherwise a3 = %I a1;
existence
( not ( c2 <> {} & for b1 being a_partition of c1 holds
not for b2 being set holds
( b2 in b1 iff b2 is_upper_min_depend_of c2 ) ) & not ( not c2 <> {} & for b1 being a_partition of c1 holds
not b1 = %I c1 ) )
proof
thus not ( c2 <> {} & for b1 being a_partition of c1 holds
not for b2 being set holds
( b2 in b1 iff b2 is_upper_min_depend_of c2 ) )
proof
assume E5: c2 <> {} ;
then consider c3 being set such that
E6: c3 in c2 by XBOOLE_0:def 1;
reconsider c4 = c3 as a_partition of c1 by E6, PARTIT1:def 3;
E7: ( union c4 = c1 & for b1 being set holds
( b1 in c4 implies ( b1 <> {} & for b2 being set holds
not ( b2 in c4 & not b1 = b2 & not b1 misses b2 ) ) ) ) by EQREL_1:def 6;
defpred S1[ set ] means a1 is_upper_min_depend_of c2;
consider c5 being set such that
E8: for b1 being set holds
( b1 in c5 iff ( b1 in bool c1 & S1[b1] ) ) from XBOOLE_0:sch 1();
E9: for b1 being set holds
( b1 in c5 iff b1 is_upper_min_depend_of c2 )
proof
let c6 be set ;
for b1 being set holds
( b1 is_upper_min_depend_of c2 implies b1 in bool c1 )
proof
let c7 be set ;
assume c7 is_upper_min_depend_of c2 ;
then c7 is_a_dependent_set_of c4 by E6, E3;
then consider c8 being set such that
E10: ( c8 c= c4 & c8 <> {} & c7 = union c8 ) by PARTIT1:def 1;
c7 c= union c4 by E10, ZFMISC_1:95;
hence c7 in bool c1 by E7;
end;
then ( c6 is_upper_min_depend_of c2 implies ( c6 is_upper_min_depend_of c2 & c6 in bool c1 ) ) ;
hence ( c6 in c5 iff c6 is_upper_min_depend_of c2 ) by E8;
end;
take c5 ;
E10: c1 = union c5
proof
thus c1 c= union c5 :: uses XBOOLE_0:def 10
proof
let c6 be set ; :: uses TARSKI:def 3
assume c6 in c1 ;
then reconsider c7 = c6 as Element of c1 ;
consider c8 being Subset of c1 such that
E11: ( c7 in c8 & c8 is_upper_min_depend_of c2 ) by E5, E4;
c8 in c5 by E9, E11;
hence c6 in union c5 by E11, TARSKI:def 4;
end;
thus union c5 c= c1
proof
let c6 be set ; :: uses TARSKI:def 3
assume c6 in union c5 ;
then consider c7 being set such that
E11: ( c6 in c7 & c7 in c5 ) by TARSKI:def 4;
c7 in bool c1 by E8, E11;
hence c6 in c1 by E11;
end;
end;
E11: for b1 being Subset of c1 holds
( b1 in c5 implies ( b1 <> {} & for b2 being Subset of c1 holds
not ( b2 in c5 & not b1 = b2 & not b1 misses b2 ) ) )
proof
let c6 be Subset of c1;
assume c6 in c5 ;
then E12: c6 is_upper_min_depend_of c2 by E9;
then c6 is_a_dependent_set_of c4 by E6, E3;
then consider c7 being set such that
E13: ( c7 c= c4 & c7 <> {} & c6 = union c7 ) by PARTIT1:def 1;
consider c8 being set such that
E14: c8 in c7 by E13, XBOOLE_0:def 1;
E15: c8 <> {} by E7, E13, E14;
E16: c8 c= union c7 by E14, ZFMISC_1:92;
consider c9 being set such that
E17: c9 in c8 by E15, XBOOLE_0:def 1;
thus c6 <> {} by E13, E16, E17;
let c10 be Subset of c1;
assume c10 in c5 ;
then E18: c10 is_upper_min_depend_of c2 by E9;
now
assume E19: c6 meets c10 ;
E20: for b1 being a_partition of c1 holds
( b1 in c2 implies c6 /\ c10 is_a_dependent_set_of b1 )
proof
let c11 be a_partition of c1;
assume E21: c11 in c2 ;
then E22: c6 is_a_dependent_set_of c11 by E12, E3;
c10 is_a_dependent_set_of c11 by E18, E21, E3;
hence c6 /\ c10 is_a_dependent_set_of c11 by E19, E22, PARTIT1:11;
end;
c6 /\ c10 c= c6 by XBOOLE_1:17;
then E21: c6 /\ c10 = c6 by E12, E20, E3;
E22: c6 c= c10
proof
let c11 be set ; :: uses TARSKI:def 3
assume c11 in c6 ;
hence c11 in c10 by E21, XBOOLE_0:def 3;
end;
c6 /\ c10 c= c10 by XBOOLE_1:17;
then E23: c6 /\ c10 = c10 by E18, E20, E3;
c10 c= c6
proof
let c11 be set ; :: uses TARSKI:def 3
assume c11 in c10 ;
hence c11 in c6 by E23, XBOOLE_0:def 3;
end;
hence c6 = c10 by E22, XBOOLE_0:def 10;
end;
hence not ( not c6 = c10 & not c6 misses c10 ) ;
end;
c5 c= bool c1
proof
let c6 be set ; :: uses TARSKI:def 3
assume c6 in c5 ;
hence c6 in bool c1 by E8;
end;
then reconsider c6 = c5 as Subset-Family of c1 ;
c6 is a_partition of c1 by E10, E11, EQREL_1:def 6;
hence ( c5 is Element of bool (bool c1) & c5 is a_partition of c1 & for b1 being set holds
( b1 in c5 iff b1 is_upper_min_depend_of c2 ) ) by E9;
end;
thus not ( c2 = {} & for b1 being a_partition of c1 holds
not b1 = %I c1 ) ;
end;
uniqueness
for b1, b2 being a_partition of c1 holds
( ( ( for b3 being set holds
( b3 in b1 iff b3 is_upper_min_depend_of c2 ) & for b3 being set holds
( b3 in b2 iff b3 is_upper_min_depend_of c2 ) ) implies ( not c2 <> {} or b1 = b2 ) ) & ( ( not c2 <> {} & b1 = %I c1 & b2 = %I c1 ) implies ( b1 = b2 ) ) )
proof
let c3, c4 be a_partition of c1;
now
assume that E5: ( c2 <> {} & for b1 being set holds
( b1 in c3 iff b1 is_upper_min_depend_of c2 ) )
and E6: for b1 being set holds
( b1 in c4 iff b1 is_upper_min_depend_of c2 ) ;
now
let c5 be set ;
( c5 in c3 iff c5 is_upper_min_depend_of c2 ) by E5;
hence ( c5 in c3 iff c5 in c4 ) by E6;
end;
hence c3 = c4 by TARSKI:2;
end;
hence ( ( ( for b1 being set holds
( b1 in c3 iff b1 is_upper_min_depend_of c2 ) & for b1 being set holds
( b1 in c4 iff b1 is_upper_min_depend_of c2 ) ) implies ( not c2 <> {} or c3 = c4 ) ) & ( ( not c2 <> {} & c3 = %I c1 & c4 = %I c1 ) implies ( c3 = c4 ) ) ) ;
end;
consistency
for b1 being a_partition of c1 holds
verum
;
end;

:: deftheorem E5 defines '\/' BVFUNC_2:def 3 :
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1)
for b3 being a_partition of b1 holds
( ( b2 <> {} implies ( b3 = '\/' b2 iff for b4 being set holds
( b4 in b3 iff b4 is_upper_min_depend_of b2 ) ) ) & ( not b2 <> {} implies ( b3 = '\/' b2 iff b3 = %I b1 ) ) );

theorem :: BVFUNC_2:3
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1)
for b3 being a_partition of b1 holds
( b3 in b2 implies b3 '>' '/\' b2 )
proof
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
let c3 be a_partition of c1;
assume E6: c3 in c2 ;
for b1 being set holds
not ( b1 in '/\' c2 & for b2 being set holds
not ( b2 in c3 & b1 c= b2 ) )
proof
let c4 be set ;
assume c4 in '/\' c2 ;
then consider c5 being Function, c6 being Subset-Family of c1 such that
E7: ( dom c5 = c2 & rng c5 = c6 )
and E8: for b1 being set holds
( b1 in c2 implies c5 . b1 in b1 )
and E9: ( c4 = Intersect c6 & c4 <> {} ) by E2;
set c7 = c5 . c3;
E10: c5 . c3 in c3 by E6, E8;
E11: c5 . c3 in rng c5 by E6, E7, FUNCT_1:def 5;
then Intersect c6 = meet c6 by E7, SETFAM_1:def 10;
then c4 c= c5 . c3 by E7, E9, E11, SETFAM_1:4;
hence ex b1 being set st
( b1 in c3 & c4 c= b1 ) by E10;
end;
hence c3 '>' '/\' c2 by SETFAM_1:def 2;
end;

theorem :: BVFUNC_2:4
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1)
for b3 being a_partition of b1 holds
( b3 in b2 implies b3 '<' '\/' b2 )
proof
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
let c3 be a_partition of c1;
assume E6: c3 in c2 ;
for b1 being set holds
not ( b1 in c3 & for b2 being set holds
not ( b2 in '\/' c2 & b1 c= b2 ) )
proof
let c4 be set ;
assume E7: c4 in c3 ;
then E8: ( c4 c= c1 & c4 <> {} ) by EQREL_1:def 6;
consider c5 being Element of c4;
E9: c5 in c1 by E8, TARSKI:def 3;
union ('\/' c2) = c1 by EQREL_1:def 6;
then consider c6 being set such that
E10: ( c5 in c6 & c6 in '\/' c2 ) by E9, TARSKI:def 4;
c6 is_upper_min_depend_of c2 by E6, E10, E5;
then c6 is_a_dependent_set_of c3 by E6, E3;
then consider c7 being set such that
E11: ( c7 c= c3 & c7 <> {} & c6 = union c7 ) by PARTIT1:def 1;
c4 in c7
proof
consider c8 being set such that
E12: ( c5 in c8 & c8 in c7 ) by E10, E11, TARSKI:def 4;
c4 /\ c8 <> {} by E8, E12, XBOOLE_0:def 3;
then E13: not c4 misses c8 by XBOOLE_0:def 7;
c8 in c3 by E11, E12;
hence c4 in c7 by E7, E12, E13, EQREL_1:def 6;
end;
then c4 c= c6 by E11, ZFMISC_1:92;
hence ex b1 being set st
( b1 in '\/' c2 & c4 c= b1 ) by E10;
end;
hence c3 '<' '\/' c2 by SETFAM_1:def 2;
end;

definition
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
attr a2 is generating means :: BVFUNC_2:def 4
'/\' a2 = %I a1;
end;

:: deftheorem defines generating BVFUNC_2:def 4 :
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1) holds
( b2 is generating iff '/\' b2 = %I b1 );

definition
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
attr a2 is independent means :: BVFUNC_2:def 5
for b1 being Function
for b2 being Subset-Family of a1 holds
not ( dom b1 = a2 & rng b1 = b2 & for b3 being set holds
( b3 in a2 implies b1 . b3 in b3 ) & not Intersect b2 <> {} );
end;

:: deftheorem defines independent BVFUNC_2:def 5 :
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1) holds
( b2 is independent iff for b3 being Function
for b4 being Subset-Family of b1 holds
not ( dom b3 = b2 & rng b3 = b4 & for b5 being set holds
( b5 in b2 implies b3 . b5 in b5 ) & not Intersect b4 <> {} ) );

definition
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
pred a2 is_a_coordinate means :: BVFUNC_2:def 6
( a2 is independent & a2 is generating );
end;

:: deftheorem defines is_a_coordinate BVFUNC_2:def 6 :
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1) holds
( b2 is_a_coordinate iff ( b2 is independent & b2 is generating ) );

definition
let c1 be non empty set ;
let c2 be a_partition of c1;
redefine func { as {a2} -> Subset of (PARTITIONS a1);
coherence
{c2} is Subset of (PARTITIONS c1)
proof
c2 in PARTITIONS c1 by PARTIT1:def 3;
hence {c2} is Subset of (PARTITIONS c1) by ZFMISC_1:37;
end;
end;

definition
let c1 be non empty set ;
let c2 be a_partition of c1;
let c3 be Subset of (PARTITIONS c1);
func CompF a2,a3 -> a_partition of a1 equals :: BVFUNC_2:def 7
'/\' (a3 \ {a2});
correctness
coherence
'/\' (c3 \ {c2}) is a_partition of c1
;
;
end;

:: deftheorem defines CompF BVFUNC_2:def 7 :
for b1 being non empty set
for b2 being a_partition of b1
for b3 being Subset of (PARTITIONS b1) holds CompF b2,b3 = '/\' (b3 \ {b2});

definition
let c1 be non empty set ;
let c2 be Element of Funcs c1,BOOLEAN ;
let c3 be Subset of (PARTITIONS c1);
let c4 be a_partition of c1;
pred a2 is_independent_of a4,a3 means :E6: :: BVFUNC_2:def 8
a2 is_dependent_of CompF a4,a3;
end;

:: deftheorem E6 defines is_independent_of BVFUNC_2:def 8 :
for b1 being non empty set
for b2 being Element of Funcs b1,BOOLEAN
for b3 being Subset of (PARTITIONS b1)
for b4 being a_partition of b1 holds
( b2 is_independent_of b4,b3 iff b2 is_dependent_of CompF b4,b3 );

definition
let c1 be non empty set ;
let c2 be Element of Funcs c1,BOOLEAN ;
let c3 be Subset of (PARTITIONS c1);
let c4 be a_partition of c1;
func All a2,a4,a3 -> Element of Funcs a1,BOOLEAN equals :: BVFUNC_2:def 9
B_INF a2,(CompF a4,a3);
correctness
coherence
B_INF c2,(CompF c4,c3) is Element of Funcs c1,BOOLEAN
;
;
end;

:: deftheorem defines All BVFUNC_2:def 9 :
for b1 being non empty set
for b2 being Element of Funcs b1,BOOLEAN
for b3 being Subset of (PARTITIONS b1)
for b4 being a_partition of b1 holds All b2,b4,b3 = B_INF b2,(CompF b4,b3);

definition
let c1 be non empty set ;
let c2 be Element of Funcs c1,BOOLEAN ;
let c3 be Subset of (PARTITIONS c1);
let c4 be a_partition of c1;
func Ex a2,a4,a3 -> Element of Funcs a1,BOOLEAN equals :: BVFUNC_2:def 10
B_SUP a2,(CompF a4,a3);
correctness
coherence
B_SUP c2,(CompF c4,c3) is Element of Funcs c1,BOOLEAN
;
;
end;

:: deftheorem defines Ex BVFUNC_2:def 10 :
for b1 being non empty set
for b2 being Element of Funcs b1,BOOLEAN
for b3 being Subset of (PARTITIONS b1)
for b4 being a_partition of b1 holds Ex b2,b4,b3 = B_SUP b2,(CompF b4,b3);

theorem :: BVFUNC_2:5
for b1 being non empty set
for b2 being Subset of (PARTITIONS b1)
for b3 being Element of Funcs b1,BOOLEAN
for b4 being a_partition of b1 holds All b3,b4,b2 is_dependent_of CompF b4,b2
proof
let c1 be non empty set ;
let c2 be Subset of (PARTITIONS c1);
let c3 be Element of Funcs c1,BOOLEAN ;
let c4 be a_partition of c1;
let c5 be set ; :: uses BVFUNC_1:def 18
assume E7: c5 in CompF c4,c2 ;
thus for b1, b2 being set holds
( ( b1 in c5 & b2 in c5 ) implies ( (All c3,c4,c2) . b1 = (All c3,c4,c2) . b2 ) )
proof
let c6, c7 be set ;
assume E8: ( c6 in c5 & c7 in c5 ) ;
then reconsider c8 = c6, c9 = c7 as Element of c1 by E7;
E9: ( c9 in EqClass c9,(CompF c4,c2) & EqClass c9,(CompF c4,c2) in CompF c4,c2 ) by T_1TOPSP:def 1;
( c5 = EqClass c9,(CompF c4,c2) or c5 misses EqClass c9,(CompF c4,c2) ) by E7, EQREL_1:def 6;
then E10: EqClass c8,(CompF c4,c2) = EqClass c9,(CompF c4,c2) by E8, E9, T_1TOPSP:def 1, XBOOLE_0:3;
per cases not ( not ( for b1 being Element of c1 holds
( b1 in EqClass c8,(CompF c4,c2) implies c3 . b1 = TRUE ) & for b1 being Element of c1 holds
( b1 in EqClass c9,(CompF c4,c2) implies c3 . b1 = TRUE ) ) & not ( for b1 being Element of c1 holds
( b1 in EqClass c8,(CompF c4,c2) implies c3 . b1 = TRUE ) & ex b1 being Element of c1 st
( b1 in EqClass c9,(CompF c4,c2) & not c3 . b1 = TRUE ) ) & not ( ex b1 being Element of c1 st
( b1 in EqClass c8,(CompF c4,c2) & not c3 . b1 = TRUE ) & for b1 being Element of c1 holds
( b1 in EqClass c9,(CompF c4,c2) implies c3 . b1 = TRUE ) ) & not ( ex b1 being Element of c1 st
( b1 in EqClass c8,(CompF c4,c2) & not c3 . b1 = TRUE ) & ex b1 being Element of c1 st
( b1 in EqClass c9,(CompF c4,c2) & not c3 . b1 = TRUE ) ) ) ;
suppose E11: ( for b1 being Element of c1 holds
( b1 in EqClass c8,(CompF c4,c2) implies c3 . b1 = TRUE ) & for b1 being Element of c1 holds
( b1 in EqClass c9,(CompF c4,c2) implies c3 . b1 = TRUE ) ) ;
then (All c3,c4,c2) . c9 = TRUE by BVFUNC_1:def 19;
hence (All c3,c4,c2) . c6 = (All c3,c4,c2) . c7 by E11, BVFUNC_1:def 19;
end;
suppose ( for b1 being Element of c1 holds
( b1 in EqClass c8,(CompF c4,c2) implies c3 . b1 = TRUE ) & ex b1 being Element of c1 st
( b1 in EqClass c9,(CompF c4,c2) & not c3 . b1 = TRUE ) ) ;
hence (All c3,c4,c2) . c6 = (All c3,c4,c2) . c7 by E10;
end;
suppose ( ex b1 being Element of c1 st
( b1 in EqClass c8,(CompF c4,c2) & not c3 . b1 = TRUE ) & for b1 being Element of c1 holds
( b1 in EqClass c9,