begin
deffunc H1( Element of BOOLEAN , Element of BOOLEAN ) -> Element of BOOLEAN = $1 '&' $2;
definition
func and2 -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def1:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = x '&' y;
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = x '&' y
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = x '&' y ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = x '&' y ) holds
b1 = b2
func and2a -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def2:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = ('not' x) '&' y;
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) '&' y
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) '&' y ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = ('not' x) '&' y ) holds
b1 = b2
func and2b -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def3:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = ('not' x) '&' ('not' y);
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) '&' ('not' y)
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) '&' ('not' y) ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = ('not' x) '&' ('not' y) ) holds
b1 = b2
end;
:: deftheorem Def1 defines and2 TWOSCOMP:def 1 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = and2 iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = x '&' y );
:: deftheorem Def2 defines and2a TWOSCOMP:def 2 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = and2a iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) '&' y );
:: deftheorem Def3 defines and2b TWOSCOMP:def 3 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = and2b iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) '&' ('not' y) );
definition
func nand2 -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def4:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = 'not' (x '&' y);
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (x '&' y)
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (x '&' y) ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = 'not' (x '&' y) ) holds
b1 = b2
func nand2a -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def5:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = 'not' (('not' x) '&' y);
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) '&' y)
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) '&' y) ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = 'not' (('not' x) '&' y) ) holds
b1 = b2
func nand2b -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def6:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = 'not' (('not' x) '&' ('not' y));
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) '&' ('not' y))
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) '&' ('not' y)) ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = 'not' (('not' x) '&' ('not' y)) ) holds
b1 = b2
end;
:: deftheorem Def4 defines nand2 TWOSCOMP:def 4 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nand2 iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (x '&' y) );
:: deftheorem Def5 defines nand2a TWOSCOMP:def 5 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nand2a iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) '&' y) );
:: deftheorem Def6 defines nand2b TWOSCOMP:def 6 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nand2b iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) '&' ('not' y)) );
definition
func or2 -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def7:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = x 'or' y;
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = x 'or' y
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = x 'or' y ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = x 'or' y ) holds
b1 = b2
func or2a -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def8:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = ('not' x) 'or' y;
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'or' y
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'or' y ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = ('not' x) 'or' y ) holds
b1 = b2
func or2b -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def9:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = ('not' x) 'or' ('not' y);
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'or' ('not' y)
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'or' ('not' y) ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = ('not' x) 'or' ('not' y) ) holds
b1 = b2
end;
:: deftheorem Def7 defines or2 TWOSCOMP:def 7 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = or2 iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = x 'or' y );
:: deftheorem Def8 defines or2a TWOSCOMP:def 8 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = or2a iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'or' y );
:: deftheorem Def9 defines or2b TWOSCOMP:def 9 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = or2b iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'or' ('not' y) );
definition
func nor2 -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def10:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = 'not' (x 'or' y);
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (x 'or' y)
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (x 'or' y) ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = 'not' (x 'or' y) ) holds
b1 = b2
func nor2a -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def11:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = 'not' (('not' x) 'or' y);
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) 'or' y)
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) 'or' y) ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = 'not' (('not' x) 'or' y) ) holds
b1 = b2
func nor2b -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def12:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = 'not' (('not' x) 'or' ('not' y));
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) 'or' ('not' y))
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) 'or' ('not' y)) ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = 'not' (('not' x) 'or' ('not' y)) ) holds
b1 = b2
end;
:: deftheorem Def10 defines nor2 TWOSCOMP:def 10 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nor2 iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (x 'or' y) );
:: deftheorem Def11 defines nor2a TWOSCOMP:def 11 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nor2a iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) 'or' y) );
:: deftheorem Def12 defines nor2b TWOSCOMP:def 12 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nor2b iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = 'not' (('not' x) 'or' ('not' y)) );
definition
func xor2 -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def13:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = x 'xor' y;
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = x 'xor' y
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = x 'xor' y ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = x 'xor' y ) holds
b1 = b2
func xor2a -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def14:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = ('not' x) 'xor' y;
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'xor' y
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'xor' y ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = ('not' x) 'xor' y ) holds
b1 = b2
func xor2b -> Function of
(2 -tuples_on BOOLEAN),
BOOLEAN means :
Def15:
for
x,
y being
Element of
BOOLEAN holds
it . <*x,y*> = ('not' x) 'xor' ('not' y);
existence
ex b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st
for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'xor' ('not' y)
uniqueness
for b1, b2 being Function of (2 -tuples_on BOOLEAN),BOOLEAN st ( for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'xor' ('not' y) ) & ( for x, y being Element of BOOLEAN holds b2 . <*x,y*> = ('not' x) 'xor' ('not' y) ) holds
b1 = b2
end;
:: deftheorem Def13 defines xor2 TWOSCOMP:def 13 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = xor2 iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = x 'xor' y );
:: deftheorem Def14 defines xor2a TWOSCOMP:def 14 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = xor2a iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'xor' y );
:: deftheorem Def15 defines xor2b TWOSCOMP:def 15 :
for b1 being Function of (2 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = xor2b iff for x, y being Element of BOOLEAN holds b1 . <*x,y*> = ('not' x) 'xor' ('not' y) );
theorem
canceled;
theorem
canceled;
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
(
and2 . <*0,0*> = 0 &
and2 . <*0,1*> = 0 &
and2 . <*1,0*> = 0 &
and2 . <*1,1*> = 1 &
and2a . <*0,0*> = 0 &
and2a . <*0,1*> = 1 &
and2a . <*1,0*> = 0 &
and2a . <*1,1*> = 0 &
and2b . <*0,0*> = 1 &
and2b . <*0,1*> = 0 &
and2b . <*1,0*> = 0 &
and2b . <*1,1*> = 0 )
theorem
(
or2 . <*0,0*> = 0 &
or2 . <*0,1*> = 1 &
or2 . <*1,0*> = 1 &
or2 . <*1,1*> = 1 &
or2a . <*0,0*> = 1 &
or2a . <*0,1*> = 1 &
or2a . <*1,0*> = 0 &
or2a . <*1,1*> = 1 &
or2b . <*0,0*> = 1 &
or2b . <*0,1*> = 1 &
or2b . <*1,0*> = 1 &
or2b . <*1,1*> = 0 )
theorem
definition
func and3 -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def16:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = (x '&' y) '&' z;
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (x '&' y) '&' z
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (x '&' y) '&' z ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = (x '&' y) '&' z ) holds
b1 = b2
func and3a -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def17:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = (('not' x) '&' y) '&' z;
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) '&' y) '&' z
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) '&' y) '&' z ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = (('not' x) '&' y) '&' z ) holds
b1 = b2
func and3b -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def18:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' z;
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' z
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' z ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' z ) holds
b1 = b2
func and3c -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def19:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' ('not' z);
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' ('not' z)
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' ('not' z) ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' ('not' z) ) holds
b1 = b2
end;
:: deftheorem Def16 defines and3 TWOSCOMP:def 16 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = and3 iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (x '&' y) '&' z );
:: deftheorem Def17 defines and3a TWOSCOMP:def 17 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = and3a iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) '&' y) '&' z );
:: deftheorem Def18 defines and3b TWOSCOMP:def 18 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = and3b iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' z );
:: deftheorem Def19 defines and3c TWOSCOMP:def 19 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = and3c iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' ('not' z) );
definition
func nand3 -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def20:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = 'not' ((x '&' y) '&' z);
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((x '&' y) '&' z)
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((x '&' y) '&' z) ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = 'not' ((x '&' y) '&' z) ) holds
b1 = b2
func nand3a -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def21:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = 'not' ((('not' x) '&' y) '&' z);
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) '&' y) '&' z)
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) '&' y) '&' z) ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = 'not' ((('not' x) '&' y) '&' z) ) holds
b1 = b2
func nand3b -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def22:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' z);
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' z)
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' z) ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' z) ) holds
b1 = b2
func nand3c -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def23:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' ('not' z));
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' ('not' z))
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' ('not' z)) ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' ('not' z)) ) holds
b1 = b2
end;
:: deftheorem Def20 defines nand3 TWOSCOMP:def 20 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nand3 iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((x '&' y) '&' z) );
:: deftheorem Def21 defines nand3a TWOSCOMP:def 21 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nand3a iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) '&' y) '&' z) );
:: deftheorem Def22 defines nand3b TWOSCOMP:def 22 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nand3b iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' z) );
:: deftheorem Def23 defines nand3c TWOSCOMP:def 23 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nand3c iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' ('not' z)) );
definition
func or3 -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def24:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = (x 'or' y) 'or' z;
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (x 'or' y) 'or' z
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (x 'or' y) 'or' z ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = (x 'or' y) 'or' z ) holds
b1 = b2
func or3a -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def25:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = (('not' x) 'or' y) 'or' z;
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) 'or' y) 'or' z
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) 'or' y) 'or' z ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = (('not' x) 'or' y) 'or' z ) holds
b1 = b2
func or3b -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def26:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' z;
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' z
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' z ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' z ) holds
b1 = b2
func or3c -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def27:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' ('not' z);
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' ('not' z)
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' ('not' z) ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' ('not' z) ) holds
b1 = b2
end;
:: deftheorem Def24 defines or3 TWOSCOMP:def 24 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = or3 iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (x 'or' y) 'or' z );
:: deftheorem Def25 defines or3a TWOSCOMP:def 25 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = or3a iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) 'or' y) 'or' z );
:: deftheorem Def26 defines or3b TWOSCOMP:def 26 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = or3b iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' z );
:: deftheorem Def27 defines or3c TWOSCOMP:def 27 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = or3c iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' ('not' z) );
definition
func nor3 -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def28:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = 'not' ((x 'or' y) 'or' z);
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((x 'or' y) 'or' z)
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((x 'or' y) 'or' z) ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = 'not' ((x 'or' y) 'or' z) ) holds
b1 = b2
func nor3a -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def29:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = 'not' ((('not' x) 'or' y) 'or' z);
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) 'or' y) 'or' z)
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) 'or' y) 'or' z) ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = 'not' ((('not' x) 'or' y) 'or' z) ) holds
b1 = b2
func nor3b -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def30:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' z);
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' z)
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' z) ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' z) ) holds
b1 = b2
func nor3c -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def31:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' ('not' z));
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' ('not' z))
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' ('not' z)) ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' ('not' z)) ) holds
b1 = b2
end;
:: deftheorem Def28 defines nor3 TWOSCOMP:def 28 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nor3 iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((x 'or' y) 'or' z) );
:: deftheorem Def29 defines nor3a TWOSCOMP:def 29 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nor3a iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) 'or' y) 'or' z) );
:: deftheorem Def30 defines nor3b TWOSCOMP:def 30 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nor3b iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' z) );
:: deftheorem Def31 defines nor3c TWOSCOMP:def 31 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = nor3c iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' ('not' z)) );
definition
func xor3 -> Function of
(3 -tuples_on BOOLEAN),
BOOLEAN means :
Def32:
for
x,
y,
z being
Element of
BOOLEAN holds
it . <*x,y,z*> = (x 'xor' y) 'xor' z;
existence
ex b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st
for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (x 'xor' y) 'xor' z
uniqueness
for b1, b2 being Function of (3 -tuples_on BOOLEAN),BOOLEAN st ( for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (x 'xor' y) 'xor' z ) & ( for x, y, z being Element of BOOLEAN holds b2 . <*x,y,z*> = (x 'xor' y) 'xor' z ) holds
b1 = b2
end;
:: deftheorem Def32 defines xor3 TWOSCOMP:def 32 :
for b1 being Function of (3 -tuples_on BOOLEAN),BOOLEAN holds
( b1 = xor3 iff for x, y, z being Element of BOOLEAN holds b1 . <*x,y,z*> = (x 'xor' y) 'xor' z );
theorem
for
x,
y,
z being
Element of
BOOLEAN holds
(
and3 . <*x,y,z*> = (x '&' y) '&' z &
and3a . <*x,y,z*> = (('not' x) '&' y) '&' z &
and3b . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' z &
and3c . <*x,y,z*> = (('not' x) '&' ('not' y)) '&' ('not' z) )
by Def16, Def17, Def18, Def19;
theorem
for
x,
y,
z being
Element of
BOOLEAN holds
(
nand3 . <*x,y,z*> = 'not' ((x '&' y) '&' z) &
nand3a . <*x,y,z*> = 'not' ((('not' x) '&' y) '&' z) &
nand3b . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' z) &
nand3c . <*x,y,z*> = 'not' ((('not' x) '&' ('not' y)) '&' ('not' z)) )
by Def20, Def21, Def22, Def23;
theorem
for
x,
y,
z being
Element of
BOOLEAN holds
(
or3 . <*x,y,z*> = (x 'or' y) 'or' z &
or3a . <*x,y,z*> = (('not' x) 'or' y) 'or' z &
or3b . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' z &
or3c . <*x,y,z*> = (('not' x) 'or' ('not' y)) 'or' ('not' z) )
by Def24, Def25, Def26, Def27;
theorem
for
x,
y,
z being
Element of
BOOLEAN holds
(
nor3 . <*x,y,z*> = 'not' ((x 'or' y) 'or' z) &
nor3a . <*x,y,z*> = 'not' ((('not' x) 'or' y) 'or' z) &
nor3b . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' z) &
nor3c . <*x,y,z*> = 'not' ((('not' x) 'or' ('not' y)) 'or' ('not' z)) )
by Def28, Def29, Def30, Def31;
theorem
canceled;
theorem
for
x,
y,
z being
Element of
BOOLEAN holds
(
and3 . <*x,y,z*> = nor3c . <*x,y,z*> &
and3a . <*x,y,z*> = nor3b . <*z,y,x*> &
and3b . <*x,y,z*> = nor3a . <*z,y,x*> &
and3c . <*x,y,z*> = nor3 . <*x,y,z*> )
theorem
for
x,
y,
z being
Element of
BOOLEAN holds
(
or3 . <*x,y,z*> = nand3c . <*x,y,z*> &
or3a . <*x,y,z*> = nand3b . <*z,y,x*> &
or3b . <*x,y,z*> = nand3a . <*z,y,x*> &
or3c . <*x,y,z*> = nand3 . <*x,y,z*> )
theorem
(
and3 . <*0,0,0*> = 0 &
and3 . <*0,0,1*> = 0 &
and3 . <*0,1,0*> = 0 &
and3 . <*0,1,1*> = 0 &
and3 . <*1,0,0*> = 0 &
and3 . <*1,0,1*> = 0 &
and3 . <*1,1,0*> = 0 &
and3 . <*1,1,1*> = 1 )
theorem
(
and3a . <*0,0,0*> = 0 &
and3a . <*0,0,1*> = 0 &
and3a . <*0,1,0*> = 0 &
and3a . <*0,1,1*> = 1 &
and3a . <*1,0,0*> = 0 &
and3a . <*1,0,1*> = 0 &
and3a . <*1,1,0*> = 0 &
and3a . <*1,1,1*> = 0 )
theorem
(
and3b . <*0,0,0*> = 0 &
and3b . <*0,0,1*> = 1 &
and3b . <*0,1,0*> = 0 &
and3b . <*0,1,1*> = 0 &
and3b . <*1,0,0*> = 0 &
and3b . <*1,0,1*> = 0 &
and3b . <*1,1,0*> = 0 &
and3b . <*1,1,1*> = 0 )
theorem
(
and3c . <*0,0,0*> = 1 &
and3c . <*0,0,1*> = 0 &
and3c . <*0,1,0*> = 0 &
and3c . <*0,1,1*> = 0 &
and3c . <*1,0,0*> = 0 &
and3c . <*1,0,1*> = 0 &
and3c . <*1,1,0*> = 0 &
and3c . <*1,1,1*> = 0 )
theorem
(
or3 . <*0,0,0*> = 0 &
or3 . <*0,0,1*> = 1 &
or3 . <*0,1,0*> = 1 &
or3 . <*0,1,1*> = 1 &
or3 . <*1,0,0*> = 1 &
or3 . <*1,0,1*> = 1 &
or3 . <*1,1,0*> = 1 &
or3 . <*1,1,1*> = 1 )
theorem
(
or3a . <*0,0,0*> = 1 &
or3a . <*0,0,1*> = 1 &
or3a . <*0,1,0*> = 1 &
or3a . <*0,1,1*> = 1 &
or3a . <*1,0,0*> = 0 &
or3a . <*1,0,1*> = 1 &
or3a . <*1,1,0*> = 1 &
or3a . <*1,1,1*> = 1 )
theorem
(
or3b . <*0,0,0*> = 1 &
or3b . <*0,0,1*> = 1 &
or3b . <*0,1,0*> = 1 &
or3b . <*0,1,1*> = 1 &
or3b . <*1,0,0*> = 1 &
or3b . <*1,0,1*> = 1 &
or3b . <*1,1,0*> = 0 &
or3b . <*1,1,1*> = 1 )
theorem
(
or3c . <*0,0,0*> = 1 &
or3c . <*0,0,1*> = 1 &
or3c . <*0,1,0*> = 1 &
or3c . <*0,1,1*> = 1 &
or3c . <*1,0,0*> = 1 &
or3c . <*1,0,1*> = 1 &
or3c . <*1,1,0*> = 1 &
or3c . <*1,1,1*> = 0 )
theorem
(
xor3 . <*0,0,0*> = 0 &
xor3 . <*0,0,1*> = 1 &
xor3 . <*0,1,0*> = 1 &
xor3 . <*0,1,1*> = 0 &
xor3 . <*1,0,0*> = 1 &
xor3 . <*1,0,1*> = 0 &
xor3 . <*1,1,0*> = 0 &
xor3 . <*1,1,1*> = 1 )
begin
:: deftheorem defines CompStr TWOSCOMP:def 33 :
for x, b being set holds CompStr (x,b) = 1GateCircStr (<*x,b*>,xor2a);
:: deftheorem defines CompCirc TWOSCOMP:def 34 :
for x, b being set holds CompCirc (x,b) = 1GateCircuit (x,b,xor2a);
:: deftheorem defines CompOutput TWOSCOMP:def 35 :
for x, b being set holds CompOutput (x,b) = [<*x,b*>,xor2a];
:: deftheorem defines IncrementStr TWOSCOMP:def 36 :
for x, b being set holds IncrementStr (x,b) = 1GateCircStr (<*x,b*>,and2a);
:: deftheorem defines IncrementCirc TWOSCOMP:def 37 :
for x, b being set holds IncrementCirc (x,b) = 1GateCircuit (x,b,and2a);
:: deftheorem defines IncrementOutput TWOSCOMP:def 38 :
for x, b being set holds IncrementOutput (x,b) = [<*x,b*>,and2a];
:: deftheorem defines BitCompStr TWOSCOMP:def 39 :
for x, b being set holds BitCompStr (x,b) = (CompStr (x,b)) +* (IncrementStr (x,b));
:: deftheorem defines BitCompCirc TWOSCOMP:def 40 :
for x, b being set holds BitCompCirc (x,b) = (CompCirc (x,b)) +* (IncrementCirc (x,b));
theorem
canceled;
theorem
canceled;
theorem Th32:
theorem
canceled;
theorem
theorem
canceled;
theorem
theorem
theorem
canceled;
theorem
canceled;
theorem Th40:
theorem
canceled;
theorem
theorem
canceled;
theorem
theorem
theorem
theorem Th47:
theorem Th48:
theorem Th49:
theorem Th50:
theorem Th51:
theorem Th52:
theorem
theorem Th54:
theorem
theorem Th56:
theorem Th57:
theorem Th58:
theorem
theorem Th60:
theorem Th61:
theorem
theorem
theorem