• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
        • Svex-stvs
        • Svex-decomposition-methodology
        • Sv-versus-esim
        • Svex-decomp
        • Svex-compose-dfs
        • Svex-compilation
        • Moddb
        • Svmods
        • Svstmt
        • Sv-tutorial
        • Expressions
          • Rewriting
          • Svex
            • Svar
            • Least-fixpoint
            • Svex-p
            • Svex-select
            • Svex-alist
            • Svex-equiv
            • Svexlist
            • Svex-call
            • Fnsym
            • Svex-quote
            • Svex-var
            • Svcall-rw
            • Svcall
            • Svex-kind
            • Svcall*
            • Svex-fix
            • Svex-count
            • Svex-1z
            • Svex-1x
            • Svex-z
            • Svex-x
          • Bit-blasting
          • Functions
          • 4vmask
          • Why-infinite-width
          • Svex-vars
          • Evaluation
          • Values
        • Symbolic-test-vector
        • Vl-to-svex
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Expressions

Svex

Our core expression data type. A Symbolic Vector Expression may be either a constant 4vec, a variable, or a function applied to subexpressions.

This is a sum-of-products (i.e., union) type, introduced by defflexsum.

Members
:quote → svex-quote
A ``quoted constant'' 4vec, which represents itself.
:var → svex-var
A variable, which represents a 4vec.
:call → svex-call
A function applied to some expressions.

See expressions for background. Each svex represents a single 4vec result. The semantics are given by svex-eval.

Our svex expressions are always created with hons for automatic structure sharing. Most operations over these expressions should typically be memoized in some way or another.

Subtopics

Svar
A single variable in a symbolic vector expression.
Least-fixpoint
Discussion of the least-fixpoint theory used in SV
Svex-p
Recognizer for svex structures.
Svex-select
Svex-alist
Alist binding variables (svars) to expressions svexes.
Svex-equiv
Basic equivalence relation for svex structures.
Svexlist
A list of svex-p objects.
Svex-call
A function applied to some expressions.
Fnsym
A valid function name in an svex expressions.
Svex-quote
A ``quoted constant'' 4vec, which represents itself.
Svex-var
A variable, which represents a 4vec.
Svcall-rw
Safely construct an svex for a function call, with rewriting.
Svcall
Safely construct an svex for a function call.
Svex-kind
Get the kind (tag) of a svex structure.
Svcall*
Safely construct an svex for a function call, with evaluation of quotes and simplification of concatenations and right-shifts.
Svex-fix
Fixing function for svex structures.
Svex-count
Measure for recurring over svex structures.
Svex-1z
An svex constant for an single X bit (lsb), upper bits all 0.
Svex-1x
An svex constant for an single X bit (lsb), upper bits all 0.
Svex-z
An svex constant for an infinite-width X.
Svex-x
An svex constant for an infinite-width X.