• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
      • Theories
        • Rune
        • In-theory
        • Disable
        • Enable
        • Theories-and-primitives
        • Deftheory
        • Theory-functions
        • Deftheory-static
        • Current-theory
        • Syntactically-clean-lambda-objects-theory
        • Hands-off-lambda-objects-theory
        • Rewrite-lambda-objects-theory
        • Rulesets
          • Expand-ruleset
          • E/d*
            • Ruleset
            • Def-ruleset
            • Get-ruleset
            • Disable*
            • Def-ruleset!
            • Enable*
            • Add-to-ruleset
          • Theory
          • Disabledp
          • Universal-theory
          • Using-enabled-rules
          • E/d
          • Active-runep
          • Executable-counterpart-theory
          • Function-theory
          • Set-difference-theories
          • Minimal-theory
          • Ground-zero
          • Union-theories
          • Intersection-theories
          • Incompatible
          • Defthy
          • Incompatible!
          • Active-or-non-runep
          • Rule-names
        • Rule-classes
        • Proof-builder
        • Recursion-and-induction
        • Hons-and-memoization
        • Events
        • Parallelism
        • History
        • Programming
        • Operational-semantics
        • Real
        • Start-here
        • Debugging
        • Miscellaneous
        • Output-controls
        • Macros
        • Interfacing-tools
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Rulesets

    E/d*

    Ruleset-aware version of e/d.

    Examples:

    (in-theory (e/d* (unusual-rules append)
                     (expensive-rules default-car default-cdr)))
    
    (defthm ...
       :hints (("Goal"
                :in-theory (e/d* (unusual-rules append)
                                 (expensive-rules default-car
                                  default-cdr)))))

    Definitions and Theorems

    Function: e/d*-fn

    (defun e/d*-fn (theory e/d-list enable-p)
     (declare (xargs :guard (and (true-list-listp e/d-list)
                                 (or (eq enable-p t)
                                     (eq enable-p nil)))))
     (cond
      ((atom e/d-list) theory)
      (enable-p
       (e/d*-fn
        (cons
         'union-theories
         (cons
              theory
              (cons (cons 'expand-ruleset
                          (cons (cons 'quote (cons (car e/d-list) 'nil))
                                '(world)))
                    'nil)))
        (cdr e/d-list)
        nil))
      (t
       (e/d*-fn
        (cons
         'set-difference-theories
         (cons
              theory
              (cons (cons 'expand-ruleset
                          (cons (cons 'quote (cons (car e/d-list) 'nil))
                                '(world)))
                    'nil)))
        (cdr e/d-list)
        t))))