• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
      • Std/lists
      • Std/alists
      • Obags
      • Std/util
      • Std/strings
      • Std/osets
        • Omaps
        • All-by-membership
        • Defset
        • In
        • Primitives
        • Subset
        • Mergesort
        • Intersect
        • Union
        • Pick-a-point-subset-strategy
        • Delete
        • Double-containment
        • Difference
        • Cardinality
        • Set
          • Intersectp
        • 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
    • Std/osets

    Set

    A fixtype of osets.

    The fixing function used here is sfix.

    The name sequiv of the equivalence relation introduced here is ``structurally similar'' to the name sfix of the fixing function.

    Definitions and Theorems

    Function: sequiv$inline

    (defun sequiv$inline (x y)
      (declare (xargs :guard (and (setp x) (setp y))))
      (equal (sfix x) (sfix y)))

    Theorem: sequiv-is-an-equivalence

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

    Theorem: sequiv-implies-equal-sfix-1

    (defthm sequiv-implies-equal-sfix-1
      (implies (sequiv x x-equiv)
               (equal (sfix x) (sfix x-equiv)))
      :rule-classes (:congruence))

    Theorem: sfix-under-sequiv

    (defthm sfix-under-sequiv
      (sequiv (sfix x) x)
      :rule-classes (:rewrite :rewrite-quoted-constant))

    Theorem: equal-of-sfix-1-forward-to-sequiv

    (defthm equal-of-sfix-1-forward-to-sequiv
      (implies (equal (sfix x) y)
               (sequiv x y))
      :rule-classes :forward-chaining)

    Theorem: equal-of-sfix-2-forward-to-sequiv

    (defthm equal-of-sfix-2-forward-to-sequiv
      (implies (equal x (sfix y))
               (sequiv x y))
      :rule-classes :forward-chaining)

    Theorem: sequiv-of-sfix-1-forward

    (defthm sequiv-of-sfix-1-forward
      (implies (sequiv (sfix x) y)
               (sequiv x y))
      :rule-classes :forward-chaining)

    Theorem: sequiv-of-sfix-2-forward

    (defthm sequiv-of-sfix-2-forward
      (implies (sequiv x (sfix y))
               (sequiv x y))
      :rule-classes :forward-chaining)