• Top
    • Documentation
    • Books
    • Boolean-reasoning
      • Ipasir
      • Aignet
      • Aig
      • Satlink
      • Truth
      • Ubdds
        • Equal-by-eval-bdds
        • Ubdd-constructors
          • Q-and
          • Q-ite
            • Q-ite-reductions
            • Canonicalize-to-q-ite
            • Q-or
            • Q-implies
            • Q-iff
            • Q-and-c2
            • Q-and-c1
            • Q-or-c2
            • Q-not
            • Q-ite-fn
            • Q-xor
            • Cheap-and-expensive-arguments
            • Q-and-is-nil
            • Q-compose-list
            • Qv
            • Q-compose
            • Q-and-is-nilc2
            • Q-nor
            • Q-nand
          • Eval-bdd
          • Ubddp
          • Ubdd-fix
          • Q-sat
          • Bdd-sat-dfs
          • Eval-bdd-list
          • Qcdr
          • Qcar
          • Q-sat-any
          • Canonicalize-to-q-ite
            • Ubdd-listp
            • Qcons
          • Bdd
          • Faig
          • Bed
          • 4v
        • Projects
        • Debugging
        • Community
        • Std
        • Proof-automation
        • Macro-libraries
        • ACL2
        • Interfacing-tools
        • Hardware-verification
        • Software-verification
        • Math
        • Testing-utilities
      • Ubdds
      • Q-ite

      Canonicalize-to-q-ite

      Reasoning strategy: rewrite all BDD-building functions into calls of q-ite.

      This isn't an especially good reasoning strategy, and we generally prefer equal-by-eval-bdds instead.

      canonicalize-to-q-ite is a ruleset that holds theorems for rewriting other BDD-constructing functions into q-ite form.