• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
      • Std/lists
      • Std/alists
      • Obags
        • Bagp
        • Bag
          • Tail
          • Head
          • Emptyp
          • Subbag
          • Intersect
          • Union
          • Insert
          • Difference
          • Delete
          • Cardinality
          • Bfix
          • In
          • Occs
        • Std/util
        • Std/strings
        • Std/osets
        • Std/io
        • Std/basic
        • Std/system
        • Std/typed-lists
        • Std/bitsets
        • Std/testing
        • Std/typed-alists
        • Std/stobjs
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Fty-extensions
    • Specific-types
    • Obags

    Bag

    A fixtype of obags.

    This is similar to the fixtype set::set of osets.

    Definitions and Theorems

    Function: bequiv$inline

    (defun bequiv$inline (acl2::x acl2::y)
      (declare (xargs :guard (and (bagp acl2::x) (bagp acl2::y))))
      (equal (bfix acl2::x) (bfix acl2::y)))

    Theorem: bequiv-is-an-equivalence

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

    Theorem: bequiv-implies-equal-bfix-1

    (defthm bequiv-implies-equal-bfix-1
      (implies (bequiv acl2::x x-equiv)
               (equal (bfix acl2::x) (bfix x-equiv)))
      :rule-classes (:congruence))

    Theorem: bfix-under-bequiv

    (defthm bfix-under-bequiv
      (bequiv (bfix acl2::x) acl2::x)
      :rule-classes (:rewrite :rewrite-quoted-constant))

    Theorem: equal-of-bfix-1-forward-to-bequiv

    (defthm equal-of-bfix-1-forward-to-bequiv
      (implies (equal (bfix acl2::x) acl2::y)
               (bequiv acl2::x acl2::y))
      :rule-classes :forward-chaining)

    Theorem: equal-of-bfix-2-forward-to-bequiv

    (defthm equal-of-bfix-2-forward-to-bequiv
      (implies (equal acl2::x (bfix acl2::y))
               (bequiv acl2::x acl2::y))
      :rule-classes :forward-chaining)

    Theorem: bequiv-of-bfix-1-forward

    (defthm bequiv-of-bfix-1-forward
      (implies (bequiv (bfix acl2::x) acl2::y)
               (bequiv acl2::x acl2::y))
      :rule-classes :forward-chaining)

    Theorem: bequiv-of-bfix-2-forward

    (defthm bequiv-of-bfix-2-forward
      (implies (bequiv acl2::x (bfix acl2::y))
               (bequiv acl2::x acl2::y))
      :rule-classes :forward-chaining)