• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
        • Transforms
          • Expression-sizing
          • Occform
          • Oprewrite
          • Expand-functions
            • Vl-expr-expand-function-calls
            • Vl-expand-function-call
            • Vl-module-expand-functions
            • Vl-modulelist-expand-functions
            • Vl-check-bad-funcalls
            • Vl-funtemplate
              • Vl-funtemplate-p
                • Vl-fun-vardecllist-to-vardecls
                • Vl-funinputlist-to-vardecls
                • Vl-fundecl-expansion-template
                • Vl-funinput-to-vardecl
                • Vl-fundecllist-expansion-templates
                • Vl-fun-vardecllist-types-okp
                • Vl-portdecllist-types-okp
                • Vl-fun-vardecl-to-vardecl
                • Vl-find-funtemplate
                • Vl-funtemplatelist
              • Vl-funtemplate-fix
              • Vl-funtemplate-equiv
              • Make-vl-funtemplate
              • Vl-funtemplate->locals
              • Vl-funtemplate->inputs
              • Vl-funtemplate->assigns
              • Change-vl-funtemplate
              • Vl-funtemplate->out
              • Vl-funtemplate->name
            • Vl-funbody-to-assignments
            • Vl-assignlist->rhses
            • Vl-fundecl-expand-params
            • Vl-fun-stmt-okp
            • Vl-fundecllist-expand-params
            • Vl-remove-fake-function-vardecls
            • Vl-design-expand-functions
          • Delayredux
          • Unparameterization
          • Caseelim
          • Split
          • Selresolve
          • Weirdint-elim
          • Vl-delta
          • Replicate-insts
          • Rangeresolve
          • Propagate
          • Clean-selects
          • Clean-params
          • Blankargs
          • Inline-mods
          • Expr-simp
          • Trunc
          • Always-top
          • Gatesplit
          • Gate-elim
          • Expression-optimization
          • Elim-supplies
          • Wildelim
          • Drop-blankports
          • Clean-warnings
          • Addinstnames
          • Custom-transform-hooks
          • Annotate
          • Latchcode
          • Elim-unused-vars
          • Problem-modules
        • Lint
        • Mlib
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Vl-funtemplate

Vl-funtemplate-p

Recognizer for vl-funtemplate structures.

Signature
(vl-funtemplate-p x) → *

Definitions and Theorems

Function: vl-funtemplate-p

(defun vl-funtemplate-p (x)
 (declare (xargs :guard t))
 (let ((__function__ 'vl-funtemplate-p))
  (declare (ignorable __function__))
  (and
    (consp x)
    (eq (car x) :vl-funtemplate)
    (std::prod-consp (cdr x))
    (std::prod-consp (std::prod-car (cdr x)))
    (std::prod-consp (std::prod-cdr (cdr x)))
    (std::prod-consp (std::prod-cdr (std::prod-cdr (cdr x))))
    (b*
     ((name (std::prod-car (std::prod-car (cdr x))))
      (inputs (std::prod-cdr (std::prod-car (cdr x))))
      (locals (std::prod-car (std::prod-cdr (cdr x))))
      (out (std::prod-car (std::prod-cdr (std::prod-cdr (cdr x)))))
      (assigns
           (std::prod-cdr (std::prod-cdr (std::prod-cdr (cdr x))))))
     (and (stringp name)
          (vl-vardecllist-p inputs)
          (vl-vardecllist-p locals)
          (vl-vardecl-p out)
          (vl-assignlist-p assigns))))))

Theorem: consp-when-vl-funtemplate-p

(defthm consp-when-vl-funtemplate-p
  (implies (vl-funtemplate-p x) (consp x))
  :rule-classes :compound-recognizer)

Subtopics

Vl-fun-vardecllist-to-vardecls
(vl-fun-vardecllist-to-vardecls x) maps vl-fun-vardecl-to-vardecl across a list.
Vl-funinputlist-to-vardecls
(vl-funinputlist-to-vardecls x) maps vl-funinput-to-vardecl across a list.
Vl-fundecl-expansion-template
Generate the initial template for expanding a function.
Vl-funinput-to-vardecl
Convert a function's input declaration into a net declaration for its funtemplate.
Vl-fundecllist-expansion-templates
Generate the initial templates for expanding a list of functions.
Vl-fun-vardecllist-types-okp
Ensure that a function's variables are simple enough to convert into nets.
Vl-portdecllist-types-okp
Ensure that a function's inputs are simple enough to convert into nets.
Vl-fun-vardecl-to-vardecl
Convert a function's var declaration into a net declaration for its funtemplate.
Vl-find-funtemplate
Find a function template by name.
Vl-funtemplatelist
A list of vl-funtemplate-p objects.