OKlibrary  0.2.1.6
BasicFunctions.hpp File Reference

Plans regarding the 16 binary boolean functions. More...

Go to the source code of this file.


Detailed Description

Plans regarding the 16 binary boolean functions.

Todo:
Naming conventions
  • We need the standard names for the 16 binary functions (which are then provided as constants).
    1. Inputs are ordered by counting, that is, 00, 01, 10, 11.
    2. A function is then given by a 4-bit word, e.g., "or" is 0111.
    3. With Table 1 in Section 7.1.1 in [Knuth, The Art of Computer Programming: Introduction to Combinatorial Algorithms and Boolean Functions, 2008] we choose the following names.
    4. 0000: constant 0 (b2_0), 1111: constant 1 (b2_1)
    5. 0011: left projection (b2_lp), 0101: right projection (b2_rp)
    6. 1100: left complement (b2_lc), 1010: right complement (b2_rc)
    7. 0001: conjunction (b2_and), 0111: disjunction (b2_or)
    8. 1101: implication (b2_i), 0010: nonimplication (b2_ni)
    9. 1011: converse implication (b2_ci), 0100: converse nonimplication (b2_cni)
    10. 1110: nonconjunction (b2_nand), 1000: nondisjunction (b2_nor)
    11. 0110: exclusive disjunction (b2_xor), 1001: equivalence (b2_eq).
  • Shouldn't these names coincide with those in ComputerAlgebra/Satisfiability/Lisp/PropositionalLogic/plans/Formulas.hpp ?
Todo:
DONE (Moved to ComputerAlgebra/Satisfiability/Lisp/Generators/plans/RandomClauseSets.hpp) Random boolean function

Definition in file BasicFunctions.hpp.