• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • C
        • Syntax-for-tools
          • Formalized-subset
          • Mapping-to-language-definition
          • Input-files
          • Compilation-database
          • Printer
            • Print-exprs/decls/stmts
            • Print-expr
            • Pristate
              • Pristatep
              • Pristate-fix
              • Pristate-equiv
                • Make-pristate
                • Pristate->indent-level
                • Change-pristate
                • Pristate->options
                • Pristate->bytes-rev
                • Pristate->gcc
              • Print-dec/oct/hex-const
              • Priopt
              • Print-fundef
              • Print-filepath-transunit-map
              • Print-s-char
              • Print-c-char
              • Print-q-char
              • Print-h-char
              • Print-fileset
              • Print-typequal/attribspec-list-list
              • Print-file
              • Print-hex-core-fconst
              • Print-dec-core-fconst
              • Print-ident-list
              • Print-fsuffix
              • Print-oct-digit-achar
              • Print-label-declaration-list
              • Print-hex-frac-const
              • Print-hex-digit-achar
              • Print-dec-frac-const
              • Print-dec-digit-achar
              • Print-asm-clobber-list
              • Print-stringlit-list
              • Print-inc/dec-op-list
              • Print-astring
              • Print-asm-name-spec
              • Print-univ-char-name
              • Print-struni-spec
              • Print-simple-escape
              • Print-label-declaration
              • Print-isuffix-option
              • Print-fsuffix-option
              • Print-extdecl-list
              • Print-eprefix-option
              • Print-dec-expo-option
              • Print-cprefix-option
              • Print-binop
              • Print-attrib-name
              • Print-type-qual
              • Print-s-char-list
              • Print-q-char-list
              • Print-indent
              • Print-ident
              • Print-h-char-list
              • Print-dec-expo-prefix
              • Print-char
              • Print-c-char-list
              • Print-bin-expo-prefix
              • Print-asm-qual-list
              • Print-stringlit
              • Print-stor-spec
              • Print-sign-option
              • Print-oct-escape
              • Print-header-name
              • Print-extdecl
              • Print-escape
              • Print-cconst
              • Print-asm-qual
              • Print-asm-clobber
              • Init-pristate
              • Dec-pristate-indent
              • Print-isuffix
              • Print-fun-spec
              • Print-fconst
              • Print-dec-expo
              • Print-bin-expo
              • Print-unop
              • Print-transunit
              • Print-new-line
              • Print-lsuffix
              • Print-inc/dec-op
              • Print-hex-quad
              • Print-eprefix
              • Print-cprefix
              • Print-usuffix
              • Print-iconst
              • Print-hprefix
              • Print-const
              • Print-comp-stmt
              • Print-hex-digit-achars
              • Print-sign
              • Print-oct-digit-achars
              • Print-dec-digit-achars
              • Print-chars
              • Inc-pristate-indent
              • Print-expr-list
              • Print-struct-declon-list
              • Print-stmt
              • Print-param-declor
              • Print-dirdeclor
              • Default-priopt
              • Print-struct-declor
              • Print-initer
              • Print-decl-inline
              • Print-struct-declon
              • Print-genassoc-list
              • Print-enum-spec
              • Print-absdeclor
              • Print-typequal/attribspec-list
              • Print-desiniter-list
              • Print-const-expr
              • Print-attrib
              • Print-tyname
              • Print-struct-declor-list
              • Print-spec/qual-list
              • Print-param-declon-list
              • Print-param-declon
              • Print-initdeclor-list
              • Print-designor-list
              • Print-decl-spec-list
              • Print-decl-list
              • Print-attrib-spec-list
              • Print-asm-output-list
              • Print-asm-input-list
              • Print-typequal/attribspec
              • Print-statassert
              • Print-spec/qual
              • Print-member-designor
              • Print-initdeclor
              • Print-enumer-list
              • Print-dirabsdeclor
              • Print-desiniter
              • Print-decl-spec
              • Print-decl
              • Print-block-item-list
              • Print-attrib-spec
              • Print-attrib-list
              • Print-asm-output
              • Print-align-spec
              • Print-type-spec
              • Print-label
              • Print-genassoc
              • Print-enumer
              • Print-designor
              • Print-declor
              • Print-block-item
              • Print-asm-stmt
              • Print-asm-input
            • Output-files
            • Abstract-syntax-operations
            • Implementation-environments
            • Abstract-syntax
            • Concrete-syntax
            • Disambiguation
            • Validation
            • Gcc-builtins
            • Preprocessing
            • Parsing
          • Atc
          • Transformation-tools
          • Language
          • Representation
          • Insertion-sort
          • Pack
        • Proof-checker-array
        • Soft
        • Farray
        • Rp-rewriter
        • Instant-runoff-voting
        • Imp-language
        • Sidekick
        • Ethereum
        • Leftist-trees
        • Java
        • Riscv
        • Taspi
        • Bitcoin
        • Zcash
        • Des
        • X86isa
        • Sha-2
        • Yul
        • Proof-checker-itp13
        • Regex
        • ACL2-programming-language
        • Json
        • Jfkr
        • Equational
        • Cryptography
        • Axe
        • Poseidon
        • Where-do-i-place-my-book
        • Aleo
        • Bigmems
        • Builtins
        • Execloader
        • Solidity
        • Paco
        • Concurrent-programs
        • Bls12-377-curves
      • Debugging
      • Community
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Pristate

    Pristate-equiv

    Basic equivalence relation for pristate structures.

    Definitions and Theorems

    Function: pristate-equiv$inline

    (defun pristate-equiv$inline (acl2::x acl2::y)
      (declare (xargs :guard (and (pristatep acl2::x)
                                  (pristatep acl2::y))))
      (equal (pristate-fix acl2::x)
             (pristate-fix acl2::y)))

    Theorem: pristate-equiv-is-an-equivalence

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

    Theorem: pristate-equiv-implies-equal-pristate-fix-1

    (defthm pristate-equiv-implies-equal-pristate-fix-1
      (implies (pristate-equiv acl2::x x-equiv)
               (equal (pristate-fix acl2::x)
                      (pristate-fix x-equiv)))
      :rule-classes (:congruence))

    Theorem: pristate-fix-under-pristate-equiv

    (defthm pristate-fix-under-pristate-equiv
      (pristate-equiv (pristate-fix acl2::x)
                      acl2::x)
      :rule-classes (:rewrite :rewrite-quoted-constant))

    Theorem: equal-of-pristate-fix-1-forward-to-pristate-equiv

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

    Theorem: equal-of-pristate-fix-2-forward-to-pristate-equiv

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

    Theorem: pristate-equiv-of-pristate-fix-1-forward

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

    Theorem: pristate-equiv-of-pristate-fix-2-forward

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