• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
        • Proof-support
        • Abstract-syntax
          • Syntax-abstraction
          • Expression
          • Definition
          • Constraint
          • Definition-option
          • Abstract-syntax-operations
            • Expression-var-list
            • Lookup-definition
            • Constrel
            • Constraint-constrels
            • Constraint-list-constrels
            • Constraint-rels
            • Constraint-list-rels
            • Expression-sub
            • Expression-const/var-listp
            • Expression-var-listp
            • Expression-neg
            • Expression-list-vars
            • Expression-vars
            • Definition-free-vars
            • Constraint-vars
            • Constraint-list-vars
            • Constrel-set
              • Constrel-sfix
              • Constrel-setp
                • Constrel-sequiv
            • System
            • Convenience-constructors
            • System-result
            • Expression-result
            • Expression-list-result
            • Definition-result
            • Definition-list-result
            • Constraint-result
            • Constraint-list-result
            • Expression-list
            • Definition-list
            • Constraint-list
          • R1cs-subset
          • Semantics
          • Abstract-syntax-operations
            • Expression-var-list
            • Lookup-definition
            • Constrel
            • Constraint-constrels
            • Constraint-list-constrels
            • Constraint-rels
            • Constraint-list-rels
            • Expression-sub
            • Expression-const/var-listp
            • Expression-var-listp
            • Expression-neg
            • Expression-list-vars
            • Expression-vars
            • Definition-free-vars
            • Constraint-vars
            • Constraint-list-vars
            • Constrel-set
              • Constrel-sfix
              • Constrel-setp
                • Constrel-sequiv
            • Indexed-names
            • Well-formedness
            • Concrete-syntax
            • R1cs-bridge
            • Parser-interface
          • Legacy-defrstobj
          • Proof-checker-array
          • Soft
          • C
          • Farray
          • Rp-rewriter
          • Instant-runoff-voting
          • Imp-language
          • Sidekick
          • Leftist-trees
          • Java
          • Taspi
          • Bitcoin
          • Riscv
          • Des
          • Ethereum
          • X86isa
          • Sha-2
          • Yul
          • Zcash
          • Proof-checker-itp13
          • Regex
          • ACL2-programming-language
          • Json
          • Jfkr
          • Equational
          • Cryptography
          • Poseidon
          • Where-do-i-place-my-book
          • Axe
          • Bigmems
          • Builtins
          • Execloader
          • Aleo
          • Solidity
          • Paco
          • Concurrent-programs
          • Bls12-377-curves
        • Debugging
        • Std
        • Proof-automation
        • Macro-libraries
        • ACL2
        • Interfacing-tools
        • Hardware-verification
        • Software-verification
        • Math
        • Testing-utilities
      • Constrel-set

      Constrel-setp

      Recognizer for constrel-set.

      Signature
      (constrel-setp x) → *

      Definitions and Theorems

      Function: constrel-setp

      (defun constrel-setp (x)
        (declare (xargs :guard t))
        (if (atom x)
            (null x)
          (and (constrelp (car x))
               (or (null (cdr x))
                   (and (consp (cdr x))
                        (acl2::fast-<< (car x) (cadr x))
                        (constrel-setp (cdr x)))))))

      Theorem: booleanp-ofconstrel-setp

      (defthm booleanp-ofconstrel-setp
        (booleanp (constrel-setp x)))

      Theorem: setp-when-constrel-setp

      (defthm setp-when-constrel-setp
        (implies (constrel-setp x) (setp x))
        :rule-classes (:rewrite))

      Theorem: constrelp-of-head-when-constrel-setp

      (defthm constrelp-of-head-when-constrel-setp
        (implies (constrel-setp x)
                 (equal (constrelp (head x))
                        (not (emptyp x)))))

      Theorem: constrel-setp-of-tail-when-constrel-setp

      (defthm constrel-setp-of-tail-when-constrel-setp
        (implies (constrel-setp x)
                 (constrel-setp (tail x))))

      Theorem: constrel-setp-of-insert

      (defthm constrel-setp-of-insert
        (equal (constrel-setp (insert a x))
               (and (constrelp a)
                    (constrel-setp (sfix x)))))

      Theorem: constrelp-when-in-constrel-setp-binds-free-x

      (defthm constrelp-when-in-constrel-setp-binds-free-x
        (implies (and (in a x) (constrel-setp x))
                 (constrelp a)))

      Theorem: not-in-constrel-setp-when-not-constrelp

      (defthm not-in-constrel-setp-when-not-constrelp
        (implies (and (constrel-setp x)
                      (not (constrelp a)))
                 (not (in a x))))

      Theorem: constrel-setp-of-union

      (defthm constrel-setp-of-union
        (equal (constrel-setp (union x y))
               (and (constrel-setp (sfix x))
                    (constrel-setp (sfix y)))))

      Theorem: constrel-setp-of-intersect

      (defthm constrel-setp-of-intersect
        (implies (and (constrel-setp x)
                      (constrel-setp y))
                 (constrel-setp (intersect x y))))

      Theorem: constrel-setp-of-difference

      (defthm constrel-setp-of-difference
        (implies (constrel-setp x)
                 (constrel-setp (difference x y))))

      Theorem: constrel-setp-of-delete

      (defthm constrel-setp-of-delete
        (implies (constrel-setp x)
                 (constrel-setp (delete a x))))