:: BOOLEALG semantic presentation

definition
let c1 be Lattice;
let c2, c3 be Element of c1;
func c2 \ c3 -> Element of a1 equals :: BOOLEALG:def 1
a2 "/\" (a3 ` );
correctness
coherence
c2 "/\" (c3 ` ) is Element of c1
;
;
end;

:: deftheorem Def1 defines \ BOOLEALG:def 1 :
for b1 being Lattice
for b2, b3 being Element of b1 holds b2 \ b3 = b2 "/\" (b3 ` );

definition
let c1 be Lattice;
let c2, c3 be Element of c1;
func c2 \+\ c3 -> Element of a1 equals :: BOOLEALG:def 2
(a2 \ a3) "\/" (a3 \ a2);
correctness
coherence
(c2 \ c3) "\/" (c3 \ c2) is Element of c1
;
;
end;

:: deftheorem Def2 defines \+\ BOOLEALG:def 2 :
for b1 being Lattice
for b2, b3 being Element of b1 holds b2 \+\ b3 = (b2 \ b3) "\/" (b3 \ b2);

definition
let c1 be Lattice;
let c2, c3 be Element of c1;
redefine pred = as c2 = c3 means :Def3: :: BOOLEALG:def 3
( a2 [= a3 & a3 [= a2 );
compatibility
( c2 = c3 iff ( c2 [= c3 & c3 [= c2 ) )
by LATTICES:26;
end;

:: deftheorem Def3 defines = BOOLEALG:def 3 :
for b1 being Lattice
for b2, b3 being Element of b1 holds
( b2 = b3 iff ( b2 [= b3 & b3 [= b2 ) );

definition
let c1 be Lattice;
let c2, c3 be Element of c1;
pred c2 meets c3 means :Def4: :: BOOLEALG:def 4
a2 "/\" a3 <> Bottom a1;
end;

:: deftheorem Def4 defines meets BOOLEALG:def 4 :
for b1 being Lattice
for b2, b3 being Element of b1 holds
( b2 meets b3 iff b2 "/\" b3 <> Bottom b1 );

notation
let c1 be Lattice;
let c2, c3 be Element of c1;
antonym c2 misses c3 for c2 meets c3;
end;

Lemma3: for b1 being Lattice
for b2, b3, b4 being Element of b1 st b2 [= b3 & b4 [= b3 holds
b2 "\/" b4 [= b3
proof end;

theorem Th1: :: BOOLEALG:1
canceled;

theorem Th2: :: BOOLEALG:2
canceled;

theorem Th3: :: BOOLEALG:3
for b1 being Lattice
for b2, b3, b4 being Element of b1 st b2 "\/" b3 [= b4 holds
( b2 [= b4 & b3 [= b4 )
proof end;

theorem Th4: :: BOOLEALG:4
for b1 being Lattice
for b2, b3, b4 being Element of b1 holds b2 "/\" b3 [= b2 "\/" b4
proof end;

theorem Th5: :: BOOLEALG:5
canceled;

theorem Th6: :: BOOLEALG:6
for b1 being Lattice
for b2, b3, b4 being Element of b1 st b2 [= b3 holds
b2 \ b4 [= b3
proof end;

theorem Th7: :: BOOLEALG:7
for b1 being Lattice
for b2, b3, b4 being Element of b1 st b2 [= b3 holds
b2 \ b4 [= b3 \ b4 by LATTICES:27;

theorem Th8: :: BOOLEALG:8
for b1 being Lattice
for b2, b3 being Element of b1 holds b2 \ b3 [= b2 by LATTICES:23;

theorem Th9: :: BOOLEALG:9
for b1 being Lattice
for b2, b3 being Element of b1 holds b2 \ b3 [= b2 \+\ b3 by LATTICES:22;

theorem Th10: :: BOOLEALG:10
for b1 being Lattice
for b2, b3, b4 being Element of b1 st b2 \ b3 [= b4 & b3 \ b2 [= b4 holds
b2 \+\ b3 [= b4 by Lemma3;

theorem Th11: :: BOOLEALG:11
for b1 being Lattice
for b2, b3, b4 being Element of b1 holds
( b2 = b3 "\/" b4 iff ( b3 [= b2 & b4 [= b2 & ( for b5 being Element of b1 st b3 [= b5 & b4 [= b5 holds
b2 [= b5 ) ) )
proof end;

theorem Th12: :: BOOLEALG:12
for b1 being Lattice
for b2, b3, b4 being Element of b1 holds
( b2 = b3 "/\" b4 iff ( b2 [= b3 & b2 [= b4 & ( for b5 being Element of b1 st b5 [= b3 & b5 [= b4 holds
b5 [= b2 ) ) )
proof end;

theorem Th13: :: BOOLEALG:13
canceled;

theorem Th14: :: BOOLEALG:14
for b1 being Lattice
for b2, b3, b4 being Element of b1 holds b2 "/\" (b3 \ b4) = (b2 "/\" b3) \ b4 by LATTICES:def 7;

theorem Th15: :: BOOLEALG:15
for b1 being Lattice
for b2, b3 being Element of b1 st b2 meets b3 holds
b3 meets b2
proof end;

theorem Th16: :: BOOLEALG:16
for b1 being Lattice
for b2 being Element of b1 holds
( b2 meets b2 iff b2 <> Bottom b1 )
proof end;

theorem Th17: :: BOOLEALG:17
for b1 being Lattice
for b2, b3 being Element of b1 holds b2 \+\ b3 = b3 \+\ b2 ;

definition
let c1 be Lattice;
let c2, c3 be Element of c1;
redefine pred meets as c2 meets c3;
symmetry
for b1, b2 being Element of c1 st b1 meets b2 holds
b2 meets b1
by Th15;
redefine func \+\ as c2 \+\ c3 -> Element of a1;
commutativity
for b1, b2 being Element of c1 holds b1 \+\ b2 = b2 \+\ b1
;
end;

theorem Th18: :: BOOLEALG:18
canceled;

theorem Th19: :: BOOLEALG:19
canceled;

theorem Th20: :: BOOLEALG:20
canceled;

theorem Th21: :: BOOLEALG:21
for b1 being M_Lattice
for b2, b3 being Element of b1 st b2 misses b3 holds
b3 misses b2
proof end;

theorem Th22: :: BOOLEALG:22
for b1 being D_Lattice
for b2, b3, b4 being Element of b1 st (b2 "/\" b3) "\/" (b2 "/\" b4) = b2 holds
b2 [= b3 "\/" b4
proof end;

theorem Th23: :: BOOLEALG:23
canceled;

theorem Th24: :: BOOLEALG:24
for b1 being D_Lattice
for b2, b3, b4 being Element of b1 holds (b2 "\/" b3) \ b4 = (b2 \ b4) "\/" (b3 \ b4) by LATTICES:def 11;

theorem Th25: :: BOOLEALG:25
for b1 being 0_Lattice
for b2 being Element of b1 st b2 [= Bottom b1 holds
b2 = Bottom b1
proof end;

theorem Th26: :: BOOLEALG:26
for b1 being 0_Lattice
for b2, b3, b4 being Element of b1 st b2 [= b3 & b2 [= b4 & b3 "/\" b4 = Bottom b1 holds
b2 = Bottom b1
proof end;

theorem Th27: :: BOOLEALG:27
for b1 being 0_Lattice
for b2, b3 being Element of b1 holds
( b2 "\/" b3 = Bottom b1 iff ( b2 = Bottom b1 & b3 = Bottom b1 ) )
proof end;

theorem Th28: :: BOOLEALG:28
for b1 being 0_Lattice
for b2, b3, b4 being Element of b1 st b2 [= b3 & b3 "/\" b4 = Bottom b1 holds
b2 "/\" b4 = Bottom b1
proof end;

theorem Th29: :: BOOLEALG:29
for b1 being 0_Lattice
for b2 being Element of b1 holds (Bottom b1) \ b2 = Bottom b1 by LATTICES:40;

theorem Th30: :: BOOLEALG:30
for b1 being 0_Lattice
for b2, b3, b4 being Element of b1 st b2 meets b3 & b3 [= b4 holds
b2 meets b4
proof end;

theorem Th31: :: BOOLEALG:31
for b1 being 0_Lattice
for b2, b3, b4 being Element of b1 st b2 meets b3 "/\" b4 holds
( b2 meets b3 & b2 meets b4 )
proof end;

theorem Th32: :: BOOLEALG:32
for b1 being 0_Lattice
for b2, b3, b4 being Element of b1 st b2 meets b3 \ b4 holds
b2 meets b3
proof end;

theorem Th33: :: BOOLEALG:33
for b1 being 0_Lattice
for b2 being Element of b1 holds b2 misses Bottom b1
proof end;

theorem Th34: :: BOOLEALG:34
for b1 being 0_Lattice
for b2, b3, b4 being Element of b1 st b2 misses b3 & b4 [= b3 holds
b2 misses b4 by Th30;

theorem Th35: :: BOOLEALG:35
for b1 being 0_Lattice
for b2, b3, b4 being Element of b1 st ( b2 misses b3 or b2 misses b4 ) holds
b2 misses b3 "/\" b4 by Th31;

theorem Th36: :: BOOLEALG:36
for b1 being 0_Lattice
for b2, b3, b4 being Element of b1 st b2 [= b3 & b2 [= b4 & b3 misses b4 holds
b2 = Bottom b1
proof end;

theorem Th37: :: BOOLEALG:37
for b1 being 0_Lattice
for b2, b3, b4 being Element of b1 st b2 misses b3 holds
( b4 "/\" b2 misses b4 "/\" b3 & b2 "/\" b4 misses b3 "/\" b4 )
proof end;

theorem Th38: :: BOOLEALG:38
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 st b2 \ b3 [= b4 holds
b2 [= b3 "\/" b4
proof end;

theorem Th39: :: BOOLEALG:39
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 st b2 [= b3 holds
b4 \ b3 [= b4 \ b2
proof end;

theorem Th40: :: BOOLEALG:40
for b1 being B_Lattice
for b2, b3, b4, b5 being Element of b1 st b2 [= b3 & b4 [= b5 holds
b2 \ b5 [= b3 \ b4
proof end;

theorem Th41: :: BOOLEALG:41
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 st b2 [= b3 "\/" b4 holds
( b2 \ b3 [= b4 & b2 \ b4 [= b3 )
proof end;

theorem Th42: :: BOOLEALG:42
for b1 being B_Lattice
for b2, b3 being Element of b1 holds
( b2 ` [= (b2 "/\" b3) ` & b3 ` [= (b2 "/\" b3) ` )
proof end;

theorem Th43: :: BOOLEALG:43
for b1 being B_Lattice
for b2, b3 being Element of b1 holds
( (b2 "\/" b3) ` [= b2 ` & (b2 "\/" b3) ` [= b3 ` )
proof end;

theorem Th44: :: BOOLEALG:44
for b1 being B_Lattice
for b2, b3 being Element of b1 st b2 [= b3 \ b2 holds
b2 = Bottom b1
proof end;

theorem Th45: :: BOOLEALG:45
for b1 being B_Lattice
for b2, b3 being Element of b1 st b2 [= b3 holds
b3 = b2 "\/" (b3 \ b2)
proof end;

theorem Th46: :: BOOLEALG:46
for b1 being B_Lattice
for b2, b3 being Element of b1 holds
( b2 \ b3 = Bottom b1 iff b2 [= b3 )
proof end;

theorem Th47: :: BOOLEALG:47
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 st b2 [= b3 "\/" b4 & b2 "/\" b4 = Bottom b1 holds
b2 [= b3
proof end;

theorem Th48: :: BOOLEALG:48
for b1 being B_Lattice
for b2, b3 being Element of b1 holds b2 "\/" b3 = (b2 \ b3) "\/" b3
proof end;

theorem Th49: :: BOOLEALG:49
for b1 being B_Lattice
for b2, b3 being Element of b1 holds b2 \ (b2 "\/" b3) = Bottom b1
proof end;

theorem Th50: :: BOOLEALG:50
for b1 being B_Lattice
for b2, b3 being Element of b1 holds
( b2 \ (b2 "/\" b3) = b2 \ b3 & b2 \ (b3 "/\" b2) = b2 \ b3 )
proof end;

theorem Th51: :: BOOLEALG:51
for b1 being B_Lattice
for b2, b3 being Element of b1 holds (b2 \ b3) "/\" b3 = Bottom b1
proof end;

theorem Th52: :: BOOLEALG:52
for b1 being B_Lattice
for b2, b3 being Element of b1 holds
( b2 "\/" (b3 \ b2) = b2 "\/" b3 & (b3 \ b2) "\/" b2 = b3 "\/" b2 )
proof end;

theorem Th53: :: BOOLEALG:53
for b1 being B_Lattice
for b2, b3 being Element of b1 holds (b2 "/\" b3) "\/" (b2 \ b3) = b2
proof end;

theorem Th54: :: BOOLEALG:54
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 holds b2 \ (b3 \ b4) = (b2 \ b3) "\/" (b2 "/\" b4)
proof end;

theorem Th55: :: BOOLEALG:55
for b1 being B_Lattice
for b2, b3 being Element of b1 holds b2 \ (b2 \ b3) = b2 "/\" b3
proof end;

theorem Th56: :: BOOLEALG:56
for b1 being B_Lattice
for b2, b3 being Element of b1 holds (b2 "\/" b3) \ b3 = b2 \ b3
proof end;

theorem Th57: :: BOOLEALG:57
for b1 being B_Lattice
for b2, b3 being Element of b1 holds
( b2 "/\" b3 = Bottom b1 iff b2 \ b3 = b2 )
proof end;

theorem Th58: :: BOOLEALG:58
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 holds b2 \ (b3 "\/" b4) = (b2 \ b3) "/\" (b2 \ b4)
proof end;

theorem Th59: :: BOOLEALG:59
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 holds b2 \ (b3 "/\" b4) = (b2 \ b3) "\/" (b2 \ b4)
proof end;

theorem Th60: :: BOOLEALG:60
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 holds
( b2 "/\" (b3 \ b4) = (b2 "/\" b3) \ (b2 "/\" b4) & (b3 \ b4) "/\" b2 = (b3 "/\" b2) \ (b4 "/\" b2) )
proof end;

theorem Th61: :: BOOLEALG:61
for b1 being B_Lattice
for b2, b3 being Element of b1 holds (b2 "\/" b3) \ (b2 "/\" b3) = (b2 \ b3) "\/" (b3 \ b2)
proof end;

theorem Th62: :: BOOLEALG:62
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 holds (b2 \ b3) \ b4 = b2 \ (b3 "\/" b4)
proof end;

theorem Th63: :: BOOLEALG:63
for b1 being B_Lattice
for b2, b3 being Element of b1 st b2 \ b3 = b3 \ b2 holds
b2 = b3
proof end;

theorem Th64: :: BOOLEALG:64
canceled;

theorem Th65: :: BOOLEALG:65
canceled;

theorem Th66: :: BOOLEALG:66
for b1 being B_Lattice
for b2 being Element of b1 holds b2 \ b2 = Bottom b1 by LATTICES:47;

theorem Th67: :: BOOLEALG:67
for b1 being B_Lattice
for b2 being Element of b1 holds b2 \ (Bottom b1) = b2
proof end;

theorem Th68: :: BOOLEALG:68
for b1 being B_Lattice
for b2, b3 being Element of b1 holds (b2 \ b3) ` = (b2 ` ) "\/" b3
proof end;

theorem Th69: :: BOOLEALG:69
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 holds
( b2 meets b3 "\/" b4 iff ( b2 meets b3 or b2 meets b4 ) )
proof end;

theorem Th70: :: BOOLEALG:70
for b1 being B_Lattice
for b2, b3 being Element of b1 holds b2 "/\" b3 misses b2 \ b3
proof end;

theorem Th71: :: BOOLEALG:71
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 holds
( b2 misses b3 "\/" b4 iff ( b2 misses b3 & b2 misses b4 ) ) by Th69;

theorem Th72: :: BOOLEALG:72
for b1 being B_Lattice
for b2, b3 being Element of b1 holds b2 \ b3 misses b3
proof end;

theorem Th73: :: BOOLEALG:73
for b1 being B_Lattice
for b2, b3 being Element of b1 st b2 misses b3 holds
( (b2 "\/" b3) \ b3 = b2 & (b2 "\/" b3) \ b2 = b3 )
proof end;

theorem Th74: :: BOOLEALG:74
for b1 being B_Lattice
for b2, b3 being Element of b1 st (b2 ` ) "\/" (b3 ` ) = b2 "\/" b3 & b2 misses b2 ` & b3 misses b3 ` holds
( b2 = b3 ` & b3 = b2 ` )
proof end;

theorem Th75: :: BOOLEALG:75
for b1 being B_Lattice
for b2, b3 being Element of b1 st (b2 ` ) "\/" (b3 ` ) = b2 "\/" b3 & b3 misses b2 ` & b2 misses b3 ` holds
( b2 = b2 ` & b3 = b3 ` )
proof end;

theorem Th76: :: BOOLEALG:76
for b1 being B_Lattice
for b2 being Element of b1 holds b2 \+\ (Bottom b1) = b2
proof end;

theorem Th77: :: BOOLEALG:77
for b1 being B_Lattice
for b2 being Element of b1 holds b2 \+\ b2 = Bottom b1
proof end;

theorem Th78: :: BOOLEALG:78
for b1 being B_Lattice
for b2, b3 being Element of b1 holds b2 "/\" b3 misses b2 \+\ b3
proof end;

theorem Th79: :: BOOLEALG:79
for b1 being B_Lattice
for b2, b3 being Element of b1 holds b2 "\/" b3 = b2 \+\ (b3 \ b2)
proof end;

theorem Th80: :: BOOLEALG:80
for b1 being B_Lattice
for b2, b3 being Element of b1 holds b2 \+\ (b2 "/\" b3) = b2 \ b3
proof end;

theorem Th81: :: BOOLEALG:81
for b1 being B_Lattice
for b2, b3 being Element of b1 holds b2 "\/" b3 = (b2 \+\ b3) "\/" (b2 "/\" b3)
proof end;

Lemma27: for b1 being B_Lattice
for b2, b3 being Element of b1 holds (b2 "\/" b3) \ (b2 \+\ b3) = b2 "/\" b3
proof end;

theorem Th82: :: BOOLEALG:82
for b1 being B_Lattice
for b2, b3 being Element of b1 holds (b2 \+\ b3) \+\ (b2 "/\" b3) = b2 "\/" b3
proof end;

theorem Th83: :: BOOLEALG:83
for b1 being B_Lattice
for b2, b3 being Element of b1 holds (b2 \+\ b3) \+\ (b2 "\/" b3) = b2 "/\" b3
proof end;

theorem Th84: :: BOOLEALG:84
for b1 being B_Lattice
for b2, b3 being Element of b1 holds b2 \+\ b3 = (b2 "\/" b3) \ (b2 "/\" b3)
proof end;

theorem Th85: :: BOOLEALG:85
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 holds (b2 \+\ b3) \ b4 = (b2 \ (b3 "\/" b4)) "\/" (b3 \ (b2 "\/" b4))
proof end;

theorem Th86: :: BOOLEALG:86
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 holds b2 \ (b3 \+\ b4) = (b2 \ (b3 "\/" b4)) "\/" ((b2 "/\" b3) "/\" b4)
proof end;

theorem Th87: :: BOOLEALG:87
for b1 being B_Lattice
for b2, b3, b4 being Element of b1 holds (b2 \+\ b3) \+\ b4 = b2 \+\ (b3 \+\ b4)
proof end;

theorem Th88: :: BOOLEALG:88
for b1 being B_Lattice
for b2, b3 being Element of b1 holds (b2 \+\ b3) ` = (b2 "/\" b3) "\/" ((b2 ` ) "/\" (b3 ` ))
proof end;