• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
      • Theories
      • Rule-classes
      • Proof-builder
      • Hons-and-memoization
      • Events
      • History
      • Parallelism
      • Programming
      • Real
      • ACL2-tutorial
      • Debugging
      • Miscellaneous
      • Prover-output
      • Built-in-theorems
        • Built-in-theorems-about-arithmetic
        • Built-in-theorems-about-symbols
        • Built-in-theorems-about-characters
        • Built-in-theorems-about-lists
        • Built-in-theorems-about-arrays
        • Built-in-theorems-about-strings
        • Built-in-theorems-about-alists
        • Built-in-theorems-about-total-order
        • Built-in-theorems-about-system-utilities
        • Built-in-theorems-about-cons-pairs
        • Built-in-theorems-for-tau
        • Built-in-theorems-about-bad-atoms
          • Built-in-theorems-about-logical-connectives
          • Built-in-theorems-about-booleans
          • Built-in-theorems-about-random$
          • Built-in-theorems-about-eqlables
        • Macros
        • Interfacing-tools
        • About-ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Testing-utilities
      • Math
    • Built-in-theorems

    Built-in-theorems-about-bad-atoms

    Built-in theorems about bad atoms.

    Definition: booleanp-bad-atom<=

    (defaxiom booleanp-bad-atom<=
              (or (equal (bad-atom<= x y) t)
                  (equal (bad-atom<= x y) nil))
              :rule-classes :type-prescription)

    Definition: bad-atom<=-antisymmetric

    (defaxiom bad-atom<=-antisymmetric
              (implies (and (bad-atom x)
                            (bad-atom y)
                            (bad-atom<= x y)
                            (bad-atom<= y x))
                       (equal x y))
              :rule-classes nil)

    Definition: bad-atom<=-transitive

    (defaxiom bad-atom<=-transitive
              (implies (and (bad-atom<= x y)
                            (bad-atom<= y z)
                            (bad-atom x)
                            (bad-atom y)
                            (bad-atom z))
                       (bad-atom<= x z))
              :rule-classes ((:rewrite :match-free :all)))

    Definition: bad-atom<=-total

    (defaxiom bad-atom<=-total
              (implies (and (bad-atom x) (bad-atom y))
                       (or (bad-atom<= x y) (bad-atom<= y x)))
              :rule-classes nil)

    Theorem: bad-atom-compound-recognizer

    (defthm bad-atom-compound-recognizer
            (iff (bad-atom x)
                 (not (or (consp x)
                          (acl2-numberp x)
                          (symbolp x)
                          (characterp x)
                          (stringp x))))
            :rule-classes :compound-recognizer)