• 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-cons-pairs

    Built-in theorems about cons pairs.

    Definition: car-cdr-elim

    (defaxiom car-cdr-elim
              (implies (consp x)
                       (equal (cons (car x) (cdr x)) x))
              :rule-classes :elim)

    Definition: car-cons

    (defaxiom car-cons (equal (car (cons x y)) x))

    Definition: cdr-cons

    (defaxiom cdr-cons (equal (cdr (cons x y)) y))

    Definition: cons-equal

    (defaxiom cons-equal
              (equal (equal (cons x1 y1) (cons x2 y2))
                     (and (equal x1 x2) (equal y1 y2))))

    Definition: completion-of-car

    (defaxiom completion-of-car
              (equal (car x)
                     (cond ((consp x) (car x)) (t nil)))
              :rule-classes nil)

    Definition: completion-of-cdr

    (defaxiom completion-of-cdr
              (equal (cdr x)
                     (cond ((consp x) (cdr x)) (t nil)))
              :rule-classes nil)

    Theorem: default-car

    (defthm default-car
            (implies (not (consp x))
                     (equal (car x) nil)))

    Theorem: default-cdr

    (defthm default-cdr
            (implies (not (consp x))
                     (equal (cdr x) nil)))

    Theorem: cons-car-cdr

    (defthm cons-car-cdr
            (equal (cons (car x) (cdr x))
                   (if (consp x) x (cons nil nil))))