• 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
        • Lint
        • Mlib
          • Scopestack
          • Filtering-by-name
          • Vl-namefactory
          • Substitution
          • Allexprs
          • Hid-tools
          • Vl-consteval
          • Range-tools
          • Lvalexprs
          • Hierarchy
            • Vl-remove-unnecessary-elements
            • Vl-necessary-elements-transitive
            • Vl-dependent-elements-transitive
            • Vl-necessary-elements-direct
            • Vl-modulelist-everinstanced
            • Vl-dependent-elements-direct
            • Vl-modulelist-toplevel
            • Vl-design-deporder-modules
            • Vl-design-check-complete
            • Vl-design-upgraph
            • Immdeps
              • Immdeps-main
                • Vl-expr-immdeps
                  • Vl-exprlist-immdeps
                • Vl-atomguts-immdeps
                • Vl-maybe-delayoreventcontrol-immdeps
                • Vl-packeddimensionlist-immdeps
                • Vl-namedparamvaluelist-immdeps
                • Vl-maybe-packeddimension-immdeps
                • Vl-delayoreventcontrol-immdeps
                • Vl-repeateventcontrol-immdeps
                • Vl-packeddimension-immdeps
                • Vl-namedparamvalue-immdeps
                • Vl-maybe-paramvalue-immdeps
                • Vl-paramvaluelist-immdeps
                • Vl-maybe-gatedelay-immdeps
                • Vl-maybe-datatype-immdeps
                • Vl-plainarglist-immdeps
                • Vl-paramtype-immdeps
                • Vl-namedarglist-immdeps
                • Vl-eventcontrol-immdeps
                • Vl-enumitemlist-immdeps
                • Vl-enumbasetype-immdeps
                • Vl-enumbasekind-immdeps
                • Vl-delaycontrol-immdeps
                • Vl-argumentlist-immdeps
                • Vl-paramvalue-immdeps
                • Vl-paramargs-immdeps
                • Vl-maybe-range-immdeps
                • Vl-maybe-expr-immdeps
                • Vl-gatedelay-immdeps
                • Vl-evatomlist-immdeps
                • Vl-arguments-immdeps
                • Vl-rangelist-immdeps
                • Vl-plainarg-immdeps
                • Vl-namedarg-immdeps
                • Vl-enumitem-immdeps
                • Vl-range-immdeps
                • Vl-modelement-immdeps
                • Vl-evatom-immdeps
                • Vl-interfaceportlist-immdeps
                • Vl-regularportlist-immdeps
                • Vl-modport-portlist-immdeps
                • Vl-interfaceport-immdeps
                • Vl-taskdecllist-immdeps
                • Vl-taskdecl-immdeps
                • Vl-portdecllist-immdeps
                • Vl-paramdecllist-immdeps
                • Vl-modport-port-immdeps
                • Vl-gateinstlist-immdeps
                • Vl-fundecl-immdeps
                • Vl-vardecllist-immdeps
                • Vl-typedeflist-immdeps
                • Vl-regularport-immdeps
                • Vl-paramdecl-immdeps
                • Vl-modportlist-immdeps
                • Vl-modinstlist-immdeps
                • Vl-modinst-immdeps
                • Vl-initiallist-immdeps
                • Vl-importlist-immdeps
                • Vl-gateinst-immdeps
                • Vl-fundecllist-immdeps
                • Vl-assignlist-immdeps
                • Vl-alwayslist-immdeps
                • Vl-vardecl-immdeps
                • Vl-typedef-immdeps
                • Vl-portlist-immdeps
                • Vl-portdecl-immdeps
                • Vl-modport-immdeps
                • Vl-initial-immdeps
                • Vl-assign-immdeps
                • Vl-aliaslist-immdeps
                • Vl-port-immdeps
                • Vl-import-immdeps
                • Vl-always-immdeps
                • Vl-alias-immdeps
              • Vl-immdeps
              • Immdeps-top
              • Vl-immdepgraph
              • Vl-depgraph
            • Vl-design-downgraph
            • Vl-collect-dependencies
            • Vl-hierarchy-free
          • Finding-by-name
          • Expr-tools
          • Expr-slicing
          • Stripping-functions
          • Stmt-tools
          • Modnamespace
          • Vl-parse-expr-from-str
          • Welltyped
          • Reordering-by-name
          • Flat-warnings
          • Genblob
          • Expr-building
          • Datatype-tools
          • Syscalls
          • Relocate
          • Expr-cleaning
          • Namemangle
          • Caremask
          • Port-tools
          • Lvalues
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Immdeps-main

Vl-expr-immdeps

Gather immediate dependencies for an expression.

Signature
(vl-expr-immdeps x ans &key (ss 'ss) (ctx 'ctx)) → ans
Arguments
x — Expression we're processing.
    Guard (vl-expr-p x).
ans — Answer we are building.
    Guard (vl-immdeps-p ans).
ss — Our current scope.
    Guard (vl-scopestack-p ss).
ctx — Context for warnings.
    Guard (acl2::any-p ctx).
Returns
ans — Type (vl-immdeps-p ans).

Theorem: return-type-of-vl-expr-immdeps.ans

(defthm return-type-of-vl-expr-immdeps.ans
  (b* ((?ans (vl-expr-immdeps-fn x ans ss ctx)))
    (vl-immdeps-p ans))
  :rule-classes :rewrite)

Theorem: return-type-of-vl-exprlist-immdeps.new-ans

(defthm return-type-of-vl-exprlist-immdeps.new-ans
  (b* ((?new-ans (vl-exprlist-immdeps-fn x ans ss ctx)))
    (vl-immdeps-p new-ans))
  :rule-classes :rewrite)

Theorem: vl-expr-immdeps-fn-of-vl-expr-fix-x

(defthm vl-expr-immdeps-fn-of-vl-expr-fix-x
  (equal (vl-expr-immdeps-fn (vl-expr-fix x)
                             ans ss ctx)
         (vl-expr-immdeps-fn x ans ss ctx)))

Theorem: vl-expr-immdeps-fn-of-vl-immdeps-fix-ans

(defthm vl-expr-immdeps-fn-of-vl-immdeps-fix-ans
  (equal (vl-expr-immdeps-fn x (vl-immdeps-fix ans)
                             ss ctx)
         (vl-expr-immdeps-fn x ans ss ctx)))

Theorem: vl-expr-immdeps-fn-of-vl-scopestack-fix-ss

(defthm vl-expr-immdeps-fn-of-vl-scopestack-fix-ss
  (equal (vl-expr-immdeps-fn x ans (vl-scopestack-fix ss)
                             ctx)
         (vl-expr-immdeps-fn x ans ss ctx)))

Theorem: vl-expr-immdeps-fn-of-identity-ctx

(defthm vl-expr-immdeps-fn-of-identity-ctx
  (equal (vl-expr-immdeps-fn x ans ss (identity ctx))
         (vl-expr-immdeps-fn x ans ss ctx)))

Theorem: vl-exprlist-immdeps-fn-of-vl-exprlist-fix-x

(defthm vl-exprlist-immdeps-fn-of-vl-exprlist-fix-x
  (equal (vl-exprlist-immdeps-fn (vl-exprlist-fix x)
                                 ans ss ctx)
         (vl-exprlist-immdeps-fn x ans ss ctx)))

Theorem: vl-exprlist-immdeps-fn-of-vl-immdeps-fix-ans

(defthm vl-exprlist-immdeps-fn-of-vl-immdeps-fix-ans
  (equal (vl-exprlist-immdeps-fn x (vl-immdeps-fix ans)
                                 ss ctx)
         (vl-exprlist-immdeps-fn x ans ss ctx)))

Theorem: vl-exprlist-immdeps-fn-of-vl-scopestack-fix-ss

(defthm vl-exprlist-immdeps-fn-of-vl-scopestack-fix-ss
  (equal (vl-exprlist-immdeps-fn x ans (vl-scopestack-fix ss)
                                 ctx)
         (vl-exprlist-immdeps-fn x ans ss ctx)))

Theorem: vl-exprlist-immdeps-fn-of-identity-ctx

(defthm vl-exprlist-immdeps-fn-of-identity-ctx
  (equal (vl-exprlist-immdeps-fn x ans ss (identity ctx))
         (vl-exprlist-immdeps-fn x ans ss ctx)))

Theorem: vl-expr-immdeps-fn-vl-expr-equiv-congruence-on-x

(defthm vl-expr-immdeps-fn-vl-expr-equiv-congruence-on-x
  (implies (vl-expr-equiv x x-equiv)
           (equal (vl-expr-immdeps-fn x ans ss ctx)
                  (vl-expr-immdeps-fn x-equiv ans ss ctx)))
  :rule-classes :congruence)

Theorem: vl-expr-immdeps-fn-vl-immdeps-equiv-congruence-on-ans

(defthm vl-expr-immdeps-fn-vl-immdeps-equiv-congruence-on-ans
  (implies (vl-immdeps-equiv ans ans-equiv)
           (equal (vl-expr-immdeps-fn x ans ss ctx)
                  (vl-expr-immdeps-fn x ans-equiv ss ctx)))
  :rule-classes :congruence)

Theorem: vl-expr-immdeps-fn-vl-scopestack-equiv-congruence-on-ss

(defthm vl-expr-immdeps-fn-vl-scopestack-equiv-congruence-on-ss
  (implies (vl-scopestack-equiv ss ss-equiv)
           (equal (vl-expr-immdeps-fn x ans ss ctx)
                  (vl-expr-immdeps-fn x ans ss-equiv ctx)))
  :rule-classes :congruence)

Theorem: vl-expr-immdeps-fn-equal-congruence-on-ctx

(defthm vl-expr-immdeps-fn-equal-congruence-on-ctx
  (implies (equal ctx ctx-equiv)
           (equal (vl-expr-immdeps-fn x ans ss ctx)
                  (vl-expr-immdeps-fn x ans ss ctx-equiv)))
  :rule-classes :congruence)

Theorem: vl-exprlist-immdeps-fn-vl-exprlist-equiv-congruence-on-x

(defthm vl-exprlist-immdeps-fn-vl-exprlist-equiv-congruence-on-x
  (implies (vl-exprlist-equiv x x-equiv)
           (equal (vl-exprlist-immdeps-fn x ans ss ctx)
                  (vl-exprlist-immdeps-fn x-equiv ans ss ctx)))
  :rule-classes :congruence)

Theorem: vl-exprlist-immdeps-fn-vl-immdeps-equiv-congruence-on-ans

(defthm vl-exprlist-immdeps-fn-vl-immdeps-equiv-congruence-on-ans
  (implies (vl-immdeps-equiv ans ans-equiv)
           (equal (vl-exprlist-immdeps-fn x ans ss ctx)
                  (vl-exprlist-immdeps-fn x ans-equiv ss ctx)))
  :rule-classes :congruence)

Theorem: vl-exprlist-immdeps-fn-vl-scopestack-equiv-congruence-on-ss

(defthm vl-exprlist-immdeps-fn-vl-scopestack-equiv-congruence-on-ss
  (implies (vl-scopestack-equiv ss ss-equiv)
           (equal (vl-exprlist-immdeps-fn x ans ss ctx)
                  (vl-exprlist-immdeps-fn x ans ss-equiv ctx)))
  :rule-classes :congruence)

Theorem: vl-exprlist-immdeps-fn-equal-congruence-on-ctx

(defthm vl-exprlist-immdeps-fn-equal-congruence-on-ctx
  (implies (equal ctx ctx-equiv)
           (equal (vl-exprlist-immdeps-fn x ans ss ctx)
                  (vl-exprlist-immdeps-fn x ans ss ctx-equiv)))
  :rule-classes :congruence)

Subtopics

Vl-exprlist-immdeps