:: BINARI_5 semantic presentation

definition
canceled;
let x be Element of BOOLEAN , y be Element of BOOLEAN ;
redefine func 'nand' as c1 'nand' c2 -> Element of BOOLEAN ;
correctness
coherence
x 'nand' y is Element of BOOLEAN
;
proof end;
end;

:: deftheorem Def1 BINARI_5:def 1 :
canceled;

definition
canceled;
let x be Element of BOOLEAN , y be Element of BOOLEAN ;
redefine func 'nor' as c1 'nor' c2 -> Element of BOOLEAN ;
correctness
coherence
x 'nor' y is Element of BOOLEAN
;
proof end;
end;

:: deftheorem Def2 BINARI_5:def 2 :
canceled;

definition
let x be boolean set , y be boolean set ;
redefine func c1 <=> c2 -> set equals :: BINARI_5:def 3
'not' (x 'xor' y);
correctness
compatibility
for b1 being set holds
( b1 = x <=> y iff b1 = 'not' (x 'xor' y) )
;
;
end;

:: deftheorem Def3 defines <=> BINARI_5:def 3 :
for x, y being boolean set holds x <=> y = 'not' (x 'xor' y);

definition
let x be Element of BOOLEAN , y be Element of BOOLEAN ;
redefine func <=> as c1 <=> c2 -> Element of BOOLEAN ;
correctness
coherence
x <=> y is Element of BOOLEAN
;
proof end;
end;

theorem Th1: :: BINARI_5:1
for x being boolean set holds TRUE 'nand' x = 'not' x ;

theorem Th2: :: BINARI_5:2
for x being boolean set holds FALSE 'nand' x = TRUE ;

theorem Th3: :: BINARI_5:3
for x being boolean set holds
( x 'nand' x = 'not' x & 'not' (x 'nand' x) = x ) ;

theorem Th4: :: BINARI_5:4
for x, y being boolean set holds 'not' (x 'nand' y) = x '&' y ;

theorem Th5: :: BINARI_5:5
for x being boolean set holds
( x 'nand' ('not' x) = TRUE & 'not' (x 'nand' ('not' x)) = FALSE ) by XBOOLEAN:135, XBOOLEAN:138;

theorem Th6: :: BINARI_5:6
for x, y, z being boolean set holds x 'nand' (y '&' z) = 'not' ((x '&' y) '&' z) ;

theorem Th7: :: BINARI_5:7
for x, y, z being boolean set holds x 'nand' (y '&' z) = (x '&' y) 'nand' z ;

theorem Th8: :: BINARI_5:8
for x, y, z being boolean set holds x 'nand' (y 'or' z) = ('not' (x '&' y)) '&' ('not' (x '&' z)) by XBOOLEAN:55;

theorem Th9: :: BINARI_5:9
for x, y, z being boolean set holds x 'nand' (y 'xor' z) = (x '&' y) <=> (x '&' z) by BINARITH:38;

theorem Th10: :: BINARI_5:10
for x being boolean set holds TRUE 'nor' x = FALSE ;

theorem Th11: :: BINARI_5:11
for x being boolean set holds FALSE 'nor' x = 'not' x ;

theorem Th12: :: BINARI_5:12
for x being boolean set holds
( x 'nor' x = 'not' x & 'not' (x 'nor' x) = x ) ;

theorem Th13: :: BINARI_5:13
for x, y being boolean set holds 'not' (x 'nor' y) = x 'or' y ;

theorem Th14: :: BINARI_5:14
for x being boolean set holds
( x 'nor' ('not' x) = FALSE & 'not' (x 'nor' ('not' x)) = TRUE ) by XBOOLEAN:134, XBOOLEAN:138;

theorem Th15: :: BINARI_5:15
for x, y, z being boolean set holds x 'nor' (y '&' z) = ('not' (x 'or' y)) 'or' ('not' (x 'or' z)) by XBOOLEAN:40;

theorem Th16: :: BINARI_5:16
for x, y, z being boolean set holds x 'nor' (y 'or' z) = 'not' ((x 'or' y) 'or' z) ;

theorem Th17: :: BINARI_5:17
for x being boolean set holds TRUE <=> x = x ;

theorem Th18: :: BINARI_5:18
for x being boolean set holds FALSE <=> x = 'not' x ;

theorem Th19: :: BINARI_5:19
for x being boolean set holds
( x <=> x = TRUE & 'not' (x <=> x) = FALSE ) by XBOOLEAN:125, XBOOLEAN:143;

theorem Th20: :: BINARI_5:20
for x, y being boolean set holds 'not' (x <=> y) = x 'xor' y ;

theorem Th21: :: BINARI_5:21
for x being boolean set holds
( x <=> ('not' x) = FALSE & 'not' (x <=> ('not' x)) = TRUE ) by XBOOLEAN:129, XBOOLEAN:142;

theorem Th22: :: BINARI_5:22
for x, y, z being boolean set holds
( x '<' y => z iff x '&' y '<' z )
proof end;

theorem Th23: :: BINARI_5:23
for x, y being boolean set holds x <=> y = (x => y) '&' (y => x) ;

theorem Th24: :: BINARI_5:24
for x, y being boolean set holds
( x <=> y = TRUE iff ( x => y = TRUE & y => x = TRUE ) ) by XBOOLEAN:132;

theorem Th25: :: BINARI_5:25
for x, y being boolean set st x => y = TRUE & y => x = TRUE holds
x = y by XBOOLEAN:116;

theorem Th26: :: BINARI_5:26
for x, y, z being boolean set st x => y = TRUE & y => z = TRUE holds
x => z = TRUE by XBOOLEAN:117;

theorem Th27: :: BINARI_5:27
for x, y, z being boolean set st x <=> y = TRUE & y <=> z = TRUE holds
x <=> z = TRUE by XBOOLEAN:127;

theorem Th28: :: BINARI_5:28
for x, y being boolean set holds x => y = ('not' y) => ('not' x) ;

theorem Th29: :: BINARI_5:29
for x, y being boolean set holds x <=> y = ('not' x) <=> ('not' y) ;

theorem Th30: :: BINARI_5:30
for x, y, z, w being boolean set st x <=> y = TRUE & z <=> w = TRUE holds
(x '&' z) <=> (y '&' w) = TRUE by XBOOLEAN:130;

theorem Th31: :: BINARI_5:31
for x, y, z, w being boolean set st x <=> y = TRUE & z <=> w = TRUE holds
(x => z) <=> (y => w) = TRUE by XBOOLEAN:133;

theorem Th32: :: BINARI_5:32
for x, y, z, w being boolean set st x <=> y = TRUE & z <=> w = TRUE holds
(x 'or' z) <=> (y 'or' w) = TRUE by XBOOLEAN:131;

theorem Th33: :: BINARI_5:33
for x, y, z, w being boolean set st x <=> y = TRUE & z <=> w = TRUE holds
(x <=> z) <=> (y <=> w) = TRUE by XBOOLEAN:128;

theorem Th34: :: BINARI_5:34
for x, y being boolean set st x = TRUE & x => y = TRUE holds
y = TRUE ;

theorem Th35: :: BINARI_5:35
for y, x being boolean set st y = TRUE holds
x => y = TRUE ;

theorem Th36: :: BINARI_5:36
for x, y being boolean set st 'not' x = TRUE holds
x => y = TRUE ;

theorem Th37: :: BINARI_5:37
for x being boolean set holds x => x = TRUE by XBOOLEAN:103;

theorem Th38: :: BINARI_5:38
for x, y being boolean set st x => y = TRUE & x => ('not' y) = TRUE holds
'not' x = TRUE by XBOOLEAN:120;

theorem Th39: :: BINARI_5:39
for x being boolean set holds (('not' x) => x) => x = TRUE by XBOOLEAN:118;

theorem Th40: :: BINARI_5:40
for x, y, z being boolean set holds (x => y) => (('not' (y '&' z)) => ('not' (x '&' z))) = TRUE by XBOOLEAN:121;

theorem Th41: :: BINARI_5:41
for x, y, z being boolean set holds (x => y) => ((y => z) => (x => z)) = TRUE by XBOOLEAN:106;

theorem Th42: :: BINARI_5:42
for x, y, z being boolean set st x => y = TRUE holds
(y => z) => (x => z) = TRUE by XBOOLEAN:113;

theorem Th43: :: BINARI_5:43
for y, x being boolean set holds y => (x => y) = TRUE by XBOOLEAN:104;

theorem Th44: :: BINARI_5:44
for x, y, z being boolean set holds ((x => y) => z) => (y => z) = TRUE by XBOOLEAN:111;

theorem Th45: :: BINARI_5:45
for y, x being boolean set holds y => ((y => x) => x) = TRUE by XBOOLEAN:105;

theorem Th46: :: BINARI_5:46
for z, y, x being boolean set holds (z => (y => x)) => (y => (z => x)) = TRUE by XBOOLEAN:110;

theorem Th47: :: BINARI_5:47
for y, z, x being boolean set holds (y => z) => ((x => y) => (x => z)) = TRUE by XBOOLEAN:107;

theorem Th48: :: BINARI_5:48
for y, z being boolean set holds (y => (y => z)) => (y => z) = TRUE by XBOOLEAN:108;

theorem Th49: :: BINARI_5:49
for x, y, z being boolean set holds (x => (y => z)) => ((x => y) => (x => z)) = TRUE by XBOOLEAN:109;

theorem Th50: :: BINARI_5:50
for x, y being boolean set st x = TRUE holds
(x => y) => y = TRUE by XBOOLEAN:112;

theorem Th51: :: BINARI_5:51
for z, y, x being boolean set st z => (y => x) = TRUE holds
y => (z => x) = TRUE ;

theorem Th52: :: BINARI_5:52
for z, y, x being boolean set st z => (y => x) = TRUE & y = TRUE holds
z => x = TRUE ;

theorem Th53: :: BINARI_5:53
for z, y, x being boolean set st z => (y => x) = TRUE & y = TRUE & z = TRUE holds
x = TRUE ;

theorem Th54: :: BINARI_5:54
for y, z being boolean set st y => (y => z) = TRUE holds
y => z = TRUE by XBOOLEAN:114;

theorem Th55: :: BINARI_5:55
for x, y, z being boolean set st x => (y => z) = TRUE holds
(x => y) => (x => z) = TRUE by XBOOLEAN:115;