:: BOOLE semantic presentation

theorem :: BOOLE:1
for b1 being set holds b1 \/ {} = b1
proof
let c1 be set ;
thus c1 \/ {} c= c1 :: uses XBOOLE_0:def 10
proof
let c2 be set ; :: uses TARSKI:def 3
assume c2 in c1 \/ {} ;
then ( c2 in c1 or c2 in {} ) by XBOOLE_0:def 2;
hence c2 in c1 by XBOOLE_0:def 1;
end;
let c2 be set ; :: uses TARSKI:def 3
assume c2 in c1 ;
hence c2 in c1 \/ {} by XBOOLE_0:def 2;
end;

theorem :: BOOLE:2
for b1 being set holds b1 /\ {} = {}
proof
let c1 be set ;
thus c1 /\ {} c= {} :: uses XBOOLE_0:def 10
proof
let c2 be set ; :: uses TARSKI:def 3
assume c2 in c1 /\ {} ;
hence c2 in {} by XBOOLE_0:def 3;
end;
let c2 be set ; :: uses TARSKI:def 3
assume c2 in {} ;
hence c2 in c1 /\ {} by XBOOLE_0:def 1;
end;

theorem :: BOOLE:3
for b1 being set holds b1 \ {} = b1
proof
let c1 be set ;
thus c1 \ {} c= c1 :: uses XBOOLE_0:def 10
proof
let c2 be set ; :: uses TARSKI:def 3
assume c2 in c1 \ {} ;
hence c2 in c1 by XBOOLE_0:def 4;
end;
let c2 be set ; :: uses TARSKI:def 3
assume c2 in c1 ;
then ( c2 in c1 & not c2 in {} ) by XBOOLE_0:def 1;
hence c2 in c1 \ {} by XBOOLE_0:def 4;
end;

theorem :: BOOLE:4
for b1 being set holds {} \ b1 = {}
proof
let c1 be set ;
thus {} \ c1 c= {} :: uses XBOOLE_0:def 10
proof
let c2 be set ; :: uses TARSKI:def 3
assume c2 in {} \ c1 ;
hence c2 in {} by XBOOLE_0:def 4;
end;
let c2 be set ; :: uses TARSKI:def 3
assume c2 in {} ;
hence c2 in {} \ c1 by XBOOLE_0:def 1;
end;

theorem :: BOOLE:5
for b1 being set holds b1 \+\ {} = b1
proof
let c1 be set ;
thus c1 \+\ {} c= c1 :: uses XBOOLE_0:def 10
proof
let c2 be set ; :: uses TARSKI:def 3
assume c2 in c1 \+\ {} ;
then c2 in (c1 \ {} ) \/ ({} \ c1) ;
then E1: ( c2 in c1 \ {} or c2 in {} \ c1 ) by XBOOLE_0:def 2;
per cases ( ( c2 in c1 & not c2 in {} ) or ( c2 in {} & not c2 in c1 ) ) by E1, XBOOLE_0:def 4;
suppose ( c2 in c1 & not c2 in {} ) ;
hence c2 in c1 ;
end;
suppose ( c2 in {} & not c2 in c1 ) ;
hence c2 in c1 by XBOOLE_0:def 1;
end;
end;
end;
let c2 be set ; :: uses TARSKI:def 3
assume c2 in c1 ;
then ( c2 in c1 & not c2 in {} ) by XBOOLE_0:def 1;
then c2 in c1 \ {} by XBOOLE_0:def 4;
then c2 in (c1 \ {} ) \/ ({} \ c1) by XBOOLE_0:def 2;
hence c2 in c1 \+\ {} ;
end;

theorem :: BOOLE:6
for b1 being set holds
( b1 is empty implies b1 = {} ) by XBOOLE_0:def 5;

theorem :: BOOLE:7
for b1, b2 being set holds
not ( b1 in b2 & b2 is empty )
proof
let c1, c2 be set ;
assume c1 in c2 ;
then c2 <> {} by XBOOLE_0:def 1;
hence not c2 is empty by XBOOLE_0:def 5;
end;

theorem :: BOOLE:8
for b1, b2 being set holds
not ( b1 is empty & b1 <> b2 & b2 is empty )
proof
let c1, c2 be set ;
assume that E1: c1 is empty
and E2: c1 <> c2 ;
c1 = {} by E1, XBOOLE_0:def 5;
hence not c2 is empty by E2, XBOOLE_0:def 5;
end;