• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
      • Std/lists
      • Omaps
        • Defomap
        • Update
        • Mapp
        • Assoc
        • Update*
        • From-lists
        • Keys
        • List-lookup
        • Size
        • Compatiblep
        • Submap
        • Tail
        • Restrict
        • Head
        • Update-induction-on-maps
        • Rlookup
        • Lookup
        • List-notin
        • Emptyp
        • Rlookup*
        • Map
          • Lookup*
          • Values
          • List-in
          • Delete*
          • In*
          • Delete
          • From-alist
          • Mfix
          • Head-val
          • Head-key
          • Omap-induction2
          • Omap-order-rules
        • Std/alists
        • Obags
        • 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
    • Omaps

    Map

    A fixtype of omaps.

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

    Definitions and Theorems

    Function: mequiv$inline

    (defun mequiv$inline (acl2::x acl2::y)
      (declare (xargs :guard (and (mapp acl2::x) (mapp acl2::y))))
      (equal (mfix acl2::x) (mfix acl2::y)))

    Theorem: mequiv-is-an-equivalence

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

    Theorem: mequiv-implies-equal-mfix-1

    (defthm mequiv-implies-equal-mfix-1
      (implies (mequiv acl2::x x-equiv)
               (equal (mfix acl2::x) (mfix x-equiv)))
      :rule-classes (:congruence))

    Theorem: mfix-under-mequiv

    (defthm mfix-under-mequiv
      (mequiv (mfix acl2::x) acl2::x)
      :rule-classes (:rewrite :rewrite-quoted-constant))

    Theorem: equal-of-mfix-1-forward-to-mequiv

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

    Theorem: equal-of-mfix-2-forward-to-mequiv

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

    Theorem: mequiv-of-mfix-1-forward

    (defthm mequiv-of-mfix-1-forward
      (implies (mequiv (mfix acl2::x) acl2::y)
               (mequiv acl2::x acl2::y))
      :rule-classes :forward-chaining)

    Theorem: mequiv-of-mfix-2-forward

    (defthm mequiv-of-mfix-2-forward
      (implies (mequiv acl2::x (mfix acl2::y))
               (mequiv acl2::x acl2::y))
      :rule-classes :forward-chaining)