• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
      • Ipasir
      • Aignet
        • Base-api
        • Aignet-construction
        • Representation
          • Aignet-impl
          • Node
          • Network
          • Combinational-type
          • Typecode
          • Stypep
            • Sequential-type
              • Regp
        • Aignet-copy-init
        • Aignet-simplify-marked-with-tracking
        • Aignet-cnf
        • Aignet-simplify-with-tracking
        • Aignet-complete-copy
        • Aignet-eval
        • Semantics
        • Aignet-transforms
        • Aignet-simplify-marked
        • Aignet-read-aiger
        • Aignet-write-aiger
        • Aignet-abc-interface
        • Utilities
      • Aig
      • Satlink
      • Truth
      • Ubdds
      • Bdd
      • Faig
      • Bed
      • 4v
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Testing-utilities
    • Math
  • Stypep

Sequential-type

See stypep.

Definitions and Theorems

Function: stypep

(defun stypep (x)
  (declare (xargs :guard t))
  (or (eq x ':pi)
      (eq x ':reg)
      (eq x ':po)
      (eq x ':nxst)
      (eq x ':and)
      (eq x ':xor)
      (eq x ':const)))

Theorem: type-when-stypep

(defthm type-when-stypep
  (implies (stypep x)
           (if (symbolp x)
               (if (not (equal x 't))
                   (not (equal x 'nil))
                 'nil)
             'nil))
  :rule-classes :compound-recognizer)

Theorem: stypep-possibilities

(defthm stypep-possibilities
  (implies (stypep x)
           (or (equal x ':pi)
               (equal x ':reg)
               (equal x ':po)
               (equal x ':nxst)
               (equal x ':and)
               (equal x ':xor)
               (equal x ':const)))
  :rule-classes :forward-chaining)

Function: stype-fix$inline

(defun stype-fix$inline (x)
  (declare (xargs :guard (stypep x)))
  (mbe :logic (if (stypep x) x ':const)
       :exec x))

Theorem: return-type-of-stype-fix

(defthm return-type-of-stype-fix
  (stypep (stype-fix x)))

Theorem: stype-fix-idempotent

(defthm stype-fix-idempotent
  (implies (stypep x)
           (equal (stype-fix x) x)))

Function: stype-equiv$inline

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

Theorem: stype-equiv-is-an-equivalence

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

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

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

Theorem: stype-fix-under-stype-equiv

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

Subtopics

Regp
Correlates the sequential-type of a node with the regp/xorp of its bit encoding. This bit is set for :reg, :nxst, and xor nodes, so this returns 1 for those types and 0 for others.