• Top
    • Documentation
    • Books
    • Boolean-reasoning
      • Ipasir
      • Aignet
        • Base-api
        • Aignet-construction
        • Representation
        • Aignet-copy-init
        • Aignet-simplify-with-tracking
        • Aignet-simplify-marked-with-tracking
        • Aignet-cnf
        • Aignet-simplify-marked
        • Aignet-complete-copy
        • Aignet-transforms
          • Aignet-output-ranges
          • Aignet-comb-transforms
            • Fraig
            • Parametrize
            • Observability-fix
            • Constprop
            • Apply-m-assumption-n-output-output-transform-default
            • Balance
            • Apply-n-output-comb-transform-default
            • Apply-comb-transform-default
            • Obs-constprop
            • Rewrite
              • Rewrite-config
                • Rewrite-config-fix
                • Make-rewrite-config
                • Rewrite-config-equiv
                • Cuts4-config
                  • Cuts4-config-fix
                  • Cuts4-config-equiv
                    • Make-cuts4-config
                    • Cuts4-config->max-cuts
                    • Change-cuts4-config
                    • Cuts4-config-p
                  • Rewrite-config->evaluation-method
                  • Rewrite-config->zero-cost-replace
                  • Rewrite-config->cut-tries-limit
                  • Rewrite-config->cuts4-config
                  • Rewrite-config->gatesimp
                  • Rewrite-config-p
                  • Change-rewrite-config
                  • Rewrite-eval-method-p
                • Cuts4-config
                  • Cuts4-config-fix
                  • Cuts4-config-equiv
                    • Make-cuts4-config
                    • Cuts4-config->max-cuts
                    • Change-cuts4-config
                    • Cuts4-config-p
                • Comb-transform
                • Abc-comb-simplify
                • Prune
                • Rewrite!
                • M-assumption-n-output-comb-transform->name
                • N-output-comb-transform->name
                • Comb-transform->name
                • N-output-comb-transformlist
                • M-assumption-n-output-comb-transformlist
                • Comb-transformlist
                • Apply-comb-transform
              • Aignet-m-assumption-n-output-transforms
              • Aignet-n-output-comb-transforms
            • Aignet-eval
            • Semantics
            • Aignet-read-aiger
            • Aignet-write-aiger
            • Aignet-abc-interface
            • Utilities
          • Aig
          • Satlink
          • Truth
          • Ubdds
          • Bdd
          • Faig
          • Bed
          • 4v
        • Projects
        • Debugging
        • Std
        • Proof-automation
        • Macro-libraries
        • ACL2
        • Interfacing-tools
        • Hardware-verification
        • Software-verification
        • Math
        • Testing-utilities
      • Cuts4-config

      Cuts4-config-equiv

      Basic equivalence relation for cuts4-config structures.

      Definitions and Theorems

      Function: cuts4-config-equiv$inline

      (defun cuts4-config-equiv$inline (x acl2::y)
        (declare (xargs :guard (and (cuts4-config-p x)
                                    (cuts4-config-p acl2::y))))
        (equal (cuts4-config-fix x)
               (cuts4-config-fix acl2::y)))

      Theorem: cuts4-config-equiv-is-an-equivalence

      (defthm cuts4-config-equiv-is-an-equivalence
        (and (booleanp (cuts4-config-equiv x y))
             (cuts4-config-equiv x x)
             (implies (cuts4-config-equiv x y)
                      (cuts4-config-equiv y x))
             (implies (and (cuts4-config-equiv x y)
                           (cuts4-config-equiv y z))
                      (cuts4-config-equiv x z)))
        :rule-classes (:equivalence))

      Theorem: cuts4-config-equiv-implies-equal-cuts4-config-fix-1

      (defthm cuts4-config-equiv-implies-equal-cuts4-config-fix-1
        (implies (cuts4-config-equiv x x-equiv)
                 (equal (cuts4-config-fix x)
                        (cuts4-config-fix x-equiv)))
        :rule-classes (:congruence))

      Theorem: cuts4-config-fix-under-cuts4-config-equiv

      (defthm cuts4-config-fix-under-cuts4-config-equiv
        (cuts4-config-equiv (cuts4-config-fix x)
                            x)
        :rule-classes (:rewrite :rewrite-quoted-constant))

      Theorem: equal-of-cuts4-config-fix-1-forward-to-cuts4-config-equiv

      (defthm equal-of-cuts4-config-fix-1-forward-to-cuts4-config-equiv
        (implies (equal (cuts4-config-fix x) acl2::y)
                 (cuts4-config-equiv x acl2::y))
        :rule-classes :forward-chaining)

      Theorem: equal-of-cuts4-config-fix-2-forward-to-cuts4-config-equiv

      (defthm equal-of-cuts4-config-fix-2-forward-to-cuts4-config-equiv
        (implies (equal x (cuts4-config-fix acl2::y))
                 (cuts4-config-equiv x acl2::y))
        :rule-classes :forward-chaining)

      Theorem: cuts4-config-equiv-of-cuts4-config-fix-1-forward

      (defthm cuts4-config-equiv-of-cuts4-config-fix-1-forward
        (implies (cuts4-config-equiv (cuts4-config-fix x)
                                     acl2::y)
                 (cuts4-config-equiv x acl2::y))
        :rule-classes :forward-chaining)

      Theorem: cuts4-config-equiv-of-cuts4-config-fix-2-forward

      (defthm cuts4-config-equiv-of-cuts4-config-fix-2-forward
        (implies (cuts4-config-equiv x (cuts4-config-fix acl2::y))
                 (cuts4-config-equiv x acl2::y))
        :rule-classes :forward-chaining)