• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
      • Ipasir
      • Aignet
        • Base-api
        • Aignet-construction
        • Representation
          • Aignet-impl
          • Node
          • Network
          • Combinational-type
          • Stypep
            • Sequential-type
              • Regp
          • Typecode
        • 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.