Article BVFUNC26, MML version 4.99.1005

:: BVFUNC26:funcnot 1 => BVFUNC26:func 1
definition
  let a1, a2 be Relation-like Function-like boolean-valued set;
  func A1 'nand' A2 -> Relation-like Function-like set means
    proj1 it = (proj1 a1) /\ proj1 a2 &
     (for b1 being set
           st b1 in proj1 it
        holds it . b1 = (a1 . b1) 'nand' (a2 . b1));
  commutativity;
::  for a1, a2 being Relation-like Function-like boolean-valued set holds
::  a1 'nand' a2 = a2 'nand' a1;
end;

:: BVFUNC26:def 1
theorem
for b1, b2 being Relation-like Function-like boolean-valued set
for b3 being Relation-like Function-like set holds
      b3 = b1 'nand' b2
   iff
      proj1 b3 = (proj1 b1) /\ proj1 b2 &
       (for b4 being set
             st b4 in proj1 b3
          holds b3 . b4 = (b1 . b4) 'nand' (b2 . b4));

:: BVFUNC26:funcnot 2 => BVFUNC26:func 2
definition
  let a1, a2 be Relation-like Function-like boolean-valued set;
  func A1 'nor' A2 -> Relation-like Function-like set means
    proj1 it = (proj1 a1) /\ proj1 a2 &
     (for b1 being set
           st b1 in proj1 it
        holds it . b1 = (a1 . b1) 'nor' (a2 . b1));
  commutativity;
::  for a1, a2 being Relation-like Function-like boolean-valued set holds
::  a1 'nor' a2 = a2 'nor' a1;
end;

:: BVFUNC26:def 2
theorem
for b1, b2 being Relation-like Function-like boolean-valued set
for b3 being Relation-like Function-like set holds
      b3 = b1 'nor' b2
   iff
      proj1 b3 = (proj1 b1) /\ proj1 b2 &
       (for b4 being set
             st b4 in proj1 b3
          holds b3 . b4 = (b1 . b4) 'nor' (b2 . b4));

:: BVFUNC26:funcreg 1
registration
  let a1, a2 be Relation-like Function-like boolean-valued set;
  cluster a1 'nand' a2 -> Relation-like Function-like boolean-valued;
end;

:: BVFUNC26:funcreg 2
registration
  let a1, a2 be Relation-like Function-like boolean-valued set;
  cluster a1 'nor' a2 -> Relation-like Function-like boolean-valued;
end;

:: BVFUNC26:funcnot 3 => BVFUNC26:func 3
definition
  let a1 be non empty set;
  let a2, a3 be Element of Funcs(a1,BOOLEAN);
  redefine func A2 'nand' A3 -> Element of Funcs(a1,BOOLEAN) means
    for b1 being Element of a1 holds
       it . b1 = (a2 . b1) 'nand' (a3 . b1);
  commutativity;
::  for a1 being non empty set
::  for a2, a3 being Element of Funcs(a1,BOOLEAN) holds
::  a2 'nand' a3 = a3 'nand' a2;
end;

:: BVFUNC26:def 3
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
   b4 = b2 'nand' b3
iff
   for b5 being Element of b1 holds
      b4 . b5 = (b2 . b5) 'nand' (b3 . b5);

:: BVFUNC26:funcnot 4 => BVFUNC26:func 4
definition
  let a1 be non empty set;
  let a2, a3 be Element of Funcs(a1,BOOLEAN);
  redefine func A2 'nor' A3 -> Element of Funcs(a1,BOOLEAN) means
    for b1 being Element of a1 holds
       it . b1 = (a2 . b1) 'nor' (a3 . b1);
  commutativity;
::  for a1 being non empty set
::  for a2, a3 being Element of Funcs(a1,BOOLEAN) holds
::  a2 'nor' a3 = a3 'nor' a2;
end;

:: BVFUNC26:def 4
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
   b4 = b2 'nor' b3
iff
   for b5 being Element of b1 holds
      b4 . b5 = (b2 . b5) 'nor' (b3 . b5);

:: BVFUNC26:funcnot 5 => BVFUNC26:func 5
definition
  let a1 be non empty set;
  let a2, a3 be Element of BVF a1;
  redefine func a2 'nand' a3 -> Element of BVF a1;
  commutativity;
::  for a1 being non empty set
::  for a2, a3 being Element of BVF a1 holds
::  a2 'nand' a3 = a3 'nand' a2;
end;

:: BVFUNC26:funcnot 6 => BVFUNC26:func 6
definition
  let a1 be non empty set;
  let a2, a3 be Element of BVF a1;
  redefine func a2 'nor' a3 -> Element of BVF a1;
  commutativity;
::  for a1 being non empty set
::  for a2, a3 being Element of BVF a1 holds
::  a2 'nor' a3 = a3 'nor' a2;
end;

:: BVFUNC26:th 1
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' b3 = 'not' (b2 '&' b3);

:: BVFUNC26:th 2
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' b3 = 'not' (b2 'or' b3);

:: BVFUNC26:th 3
theorem
for b1 being non empty set
for b2 being Element of Funcs(b1,BOOLEAN) holds
   (I_el b1) 'nand' b2 = 'not' b2;

:: BVFUNC26:th 4
theorem
for b1 being non empty set
for b2 being Element of Funcs(b1,BOOLEAN) holds
   (O_el b1) 'nand' b2 = I_el b1;

:: BVFUNC26:th 5
theorem
for b1 being non empty set holds
   (O_el b1) 'nand' O_el b1 = I_el b1 & (O_el b1) 'nand' I_el b1 = I_el b1 & (I_el b1) 'nand' I_el b1 = O_el b1;

:: BVFUNC26:th 6
theorem
for b1 being non empty set
for b2 being Element of Funcs(b1,BOOLEAN) holds
   b2 'nand' b2 = 'not' b2 & 'not' (b2 'nand' b2) = b2;

:: BVFUNC26:th 7
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
'not' (b2 'nand' b3) = b2 '&' b3;

:: BVFUNC26:th 8
theorem
for b1 being non empty set
for b2 being Element of Funcs(b1,BOOLEAN) holds
   b2 'nand' 'not' b2 = I_el b1 & 'not' (b2 'nand' 'not' b2) = O_el b1;

:: BVFUNC26:th 9
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b3 '&' b4) = 'not' ((b2 '&' b3) '&' b4);

:: BVFUNC26:th 10
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b3 '&' b4) = (b2 '&' b3) 'nand' b4;

:: BVFUNC26:th 11
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b3 'or' b4) = ('not' (b2 '&' b3)) '&' 'not' (b2 '&' b4);

:: BVFUNC26:th 12
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b3 'xor' b4) = (b2 '&' b3) 'eqv' (b2 '&' b4);

:: BVFUNC26:th 13
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b3 'nand' b4) = ('not' b2) 'or' (b3 '&' b4) &
 b2 'nand' (b3 'nand' b4) = b2 'imp' (b3 '&' b4);

:: BVFUNC26:th 14
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b3 'nor' b4) = (('not' b2) 'or' b3) 'or' b4 &
 b2 'nand' (b3 'nor' b4) = b2 'imp' (b3 'or' b4);

:: BVFUNC26:th 15
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b3 'eqv' b4) = b2 'imp' (b3 'xor' b4);

:: BVFUNC26:th 16
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b2 '&' b3) = b2 'nand' b3;

:: BVFUNC26:th 17
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b2 'or' b3) = ('not' b2) '&' 'not' (b2 '&' b3);

:: BVFUNC26:th 18
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b2 'eqv' b3) = b2 'imp' (b2 'xor' b3);

:: BVFUNC26:th 19
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b2 'nand' b3) = ('not' b2) 'or' b3 &
 b2 'nand' (b2 'nand' b3) = b2 'imp' b3;

:: BVFUNC26:th 20
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b2 'nor' b3) = I_el b1;

:: BVFUNC26:th 21
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b2 'eqv' b3) = ('not' b2) 'or' 'not' b3;

:: BVFUNC26:th 22
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 '&' b3 = (b2 'nand' b3) 'nand' (b2 'nand' b3);

:: BVFUNC26:th 23
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
(b2 'nand' b3) 'nand' (b2 'nand' b4) = b2 '&' (b3 'or' b4);

:: BVFUNC26:th 24
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b3 'imp' b4) = (('not' b2) 'or' b3) '&' 'not' (b2 '&' b4);

:: BVFUNC26:th 25
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b2 'imp' b3) = 'not' (b2 '&' b3);

:: BVFUNC26:th 26
theorem
for b1 being non empty set
for b2 being Element of Funcs(b1,BOOLEAN) holds
   (I_el b1) 'nor' b2 = O_el b1;

:: BVFUNC26:th 27
theorem
for b1 being non empty set
for b2 being Element of Funcs(b1,BOOLEAN) holds
   (O_el b1) 'nor' b2 = 'not' b2;

:: BVFUNC26:th 28
theorem
for b1 being non empty set holds
   (O_el b1) 'nor' O_el b1 = I_el b1 & (O_el b1) 'nor' I_el b1 = O_el b1 & (I_el b1) 'nor' I_el b1 = O_el b1;

:: BVFUNC26:th 29
theorem
for b1 being non empty set
for b2 being Element of Funcs(b1,BOOLEAN) holds
   b2 'nor' b2 = 'not' b2 & 'not' (b2 'nor' b2) = b2;

:: BVFUNC26:th 30
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
'not' (b2 'nor' b3) = b2 'or' b3;

:: BVFUNC26:th 31
theorem
for b1 being non empty set
for b2 being Element of Funcs(b1,BOOLEAN) holds
   b2 'nor' 'not' b2 = O_el b1 & 'not' (b2 'nor' 'not' b2) = I_el b1;

:: BVFUNC26:th 32
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
('not' b2) '&' (b2 'xor' b3) = ('not' b2) '&' b3;

:: BVFUNC26:th 33
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b3 '&' b4) = ('not' (b2 'or' b3)) 'or' 'not' (b2 'or' b4);

:: BVFUNC26:th 34
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b3 'or' b4) = 'not' ((b2 'or' b3) 'or' b4);

:: BVFUNC26:th 35
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b3 'eqv' b4) = ('not' b2) '&' (b3 'xor' b4);

:: BVFUNC26:th 36
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b3 'imp' b4) = (('not' b2) '&' b3) '&' 'not' b4;

:: BVFUNC26:th 37
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b3 'nand' b4) = (('not' b2) '&' b3) '&' b4;

:: BVFUNC26:th 38
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b3 'nor' b4) = ('not' b2) '&' (b3 'or' b4);

:: BVFUNC26:th 39
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b2 '&' b3) = 'not' (b2 '&' (b2 'or' b3));

:: BVFUNC26:th 40
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b2 'or' b3) = 'not' (b2 'or' b3);

:: BVFUNC26:th 41
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b2 'eqv' b3) = ('not' b2) '&' b3;

:: BVFUNC26:th 42
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b2 'imp' b3) = O_el b1;

:: BVFUNC26:th 43
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b2 'nand' b3) = O_el b1;

:: BVFUNC26:th 44
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b2 'nor' b3) = ('not' b2) '&' b3;

:: BVFUNC26:th 45
theorem
for b1 being non empty set holds
   (O_el b1) 'eqv' O_el b1 = I_el b1;

:: BVFUNC26:th 46
theorem
for b1 being non empty set holds
   (O_el b1) 'eqv' I_el b1 = O_el b1;

:: BVFUNC26:th 47
theorem
for b1 being non empty set holds
   (I_el b1) 'eqv' I_el b1 = I_el b1;

:: BVFUNC26:th 48
theorem
for b1 being non empty set
for b2 being Element of Funcs(b1,BOOLEAN) holds
   b2 'eqv' b2 = I_el b1 & 'not' (b2 'eqv' b2) = O_el b1;

:: BVFUNC26:th 49
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'eqv' (b2 'or' b3) = b2 'or' 'not' b3;

:: BVFUNC26:th 50
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 '&' (b3 'nand' b4) = (b2 '&' 'not' b3) 'or' (b2 '&' 'not' b4);

:: BVFUNC26:th 51
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'or' (b3 'nand' b4) = (b2 'or' 'not' b3) 'or' 'not' b4;

:: BVFUNC26:th 52
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'xor' (b3 'nand' b4) = (('not' b2) '&' 'not' (b3 '&' b4)) 'or' ((b2 '&' b3) '&' b4);

:: BVFUNC26:th 53
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'eqv' (b3 'nand' b4) = (b2 '&' 'not' (b3 '&' b4)) 'or' ((('not' b2) '&' b3) '&' b4);

:: BVFUNC26:th 54
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'imp' (b3 'nand' b4) = 'not' ((b2 '&' b3) '&' b4);

:: BVFUNC26:th 55
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b3 'nand' b4) = 'not' ((b2 'or' 'not' b3) 'or' 'not' b4);

:: BVFUNC26:th 56
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 '&' (b2 'nand' b3) = b2 '&' 'not' b3;

:: BVFUNC26:th 57
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'or' (b2 'nand' b3) = I_el b1;

:: BVFUNC26:th 58
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'xor' (b2 'nand' b3) = ('not' b2) 'or' b3;

:: BVFUNC26:th 59
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'eqv' (b2 'nand' b3) = b2 '&' 'not' b3;

:: BVFUNC26:th 60
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'imp' (b2 'nand' b3) = 'not' (b2 '&' b3);

:: BVFUNC26:th 61
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nor' (b2 'nand' b3) = O_el b1;

:: BVFUNC26:th 62
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 '&' (b3 'nor' b4) = (b2 '&' 'not' b3) '&' 'not' b4;

:: BVFUNC26:th 63
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'or' (b3 'nor' b4) = (b2 'or' 'not' b3) '&' (b2 'or' 'not' b4);

:: BVFUNC26:th 64
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'xor' (b3 'nor' b4) = (b2 'or' 'not' (b3 'or' b4)) '&' ((('not' b2) 'or' b3) 'or' b4);

:: BVFUNC26:th 65
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'eqv' (b3 'nor' b4) = ((b2 'or' b3) 'or' b4) '&' (('not' b2) 'or' 'not' (b3 'or' b4));

:: BVFUNC26:th 66
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'imp' (b3 'nor' b4) = 'not' (b2 '&' (b3 'or' b4));

:: BVFUNC26:th 67
theorem
for b1 being non empty set
for b2, b3, b4 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b3 'nor' b4) = (('not' b2) 'or' b3) 'or' b4;

:: BVFUNC26:th 68
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 '&' (b2 'nor' b3) = O_el b1;

:: BVFUNC26:th 69
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'or' (b2 'nor' b3) = b2 'or' 'not' b3;

:: BVFUNC26:th 70
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'xor' (b2 'nor' b3) = b2 'or' 'not' b3;

:: BVFUNC26:th 71
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'eqv' (b2 'nor' b3) = ('not' b2) '&' b3;

:: BVFUNC26:th 72
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'imp' (b2 'nor' b3) = 'not' (b2 'or' (b2 '&' b3));

:: BVFUNC26:th 73
theorem
for b1 being non empty set
for b2, b3 being Element of Funcs(b1,BOOLEAN) holds
b2 'nand' (b2 'nor' b3) = I_el b1;