• 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
          • Vl-lintconfig-p
          • Lucid
          • Skip-detection
            • Sd-problem-p
            • Sd-keylist-find-skipped
            • Sd-keylist->indicies
            • Sd-key-p
            • Sd-patalist-compare
            • Sd-analyze-ctxexprs
              • Sd-problemlist-p
              • Sd-patalist-p
              • Sd-keygen
              • Sd-patalist
              • Sd-keylist-p
              • Sd-analyze-modulelist
              • Sd-analyze-module-aux
              • Sd-analyze-module
              • Sd-pp-problem-long
              • Sd-analyze-modulelist-aux
              • Sd-problem-score
              • Sd-pp-problem-header
              • Sd-analyze-design
              • Sd-problem->
              • Sd-pp-problem-brief
              • Sd-pp-problemlist-long
              • Sd-pp-problemlist-brief
              • Sd-natlist-linear-increments-p
              • Sd-keylist-linear-increments-p
            • Vl-lintresult-p
            • Lint-warning-suppression
            • Condcheck
            • Selfassigns
            • Leftright-check
            • Dupeinst-check
            • Oddexpr-check
            • Remove-toohard
            • Qmarksize-check
            • Portcheck
            • Duplicate-detect
            • Vl-print-certain-warnings
            • Duperhs-check
            • *vl-lint-help*
            • Lint-stmt-rewrite
            • Drop-missing-submodules
            • Check-case
            • Drop-user-submodules
            • Check-namespace
            • Vl-lint
          • Mlib
          • Server
          • Kit
          • Printer
          • Esim-vl
          • Well-formedness
        • Sv
        • Fgl
        • Vwsim
        • Vl
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • Skip-detection

    Sd-analyze-ctxexprs

    Perform skip-detection for a list of expressions.

    Signature: (sd-analyze-ctxexprs ctxexprs global-pats) returns a list of sd-problem-ps.

    • ctxexprs is an vl-exprctxalist-p that associates expressions with their contexts. Generally we expect that this alist includes every expression in a module.
    • global-pats is the sd-patalist-p that was constructed for all names in the module, which is needed by sd-patalist-compare.

    We just call sd-patalist-compare for every expression in ctxexprs and combine the results.

    Definitions and Theorems

    Function: sd-analyze-ctxexprs

    (defun sd-analyze-ctxexprs (ctxexprs global-pats)
     (declare (xargs :guard (and (vl-exprctxalist-p ctxexprs)
                                 (sd-patalist-p global-pats))))
     (if (atom ctxexprs)
         nil
      (b* ((expr (caar ctxexprs))
           (ctx (vl-context1-fix (cdar ctxexprs)))
           (expr-names (vl-expr-names expr))
           (expr-keys (sd-keygen-list expr-names nil))
           (expr-pats (sd-patalist expr-keys))
           (dom (strip-cars expr-pats))
           (report1 (sd-patalist-compare dom expr-pats global-pats ctx))
           (- (flush-hons-get-hash-table-link expr-pats)))
        (append report1
                (sd-analyze-ctxexprs (cdr ctxexprs)
                                     global-pats)))))

    Theorem: true-listp-of-sd-analyze-ctxexprs

    (defthm true-listp-of-sd-analyze-ctxexprs
      (true-listp (sd-analyze-ctxexprs ctxexprs global-pats))
      :rule-classes :type-prescription)

    Theorem: sd-problemlist-p-of-sd-analyze-ctxexprs

    (defthm sd-problemlist-p-of-sd-analyze-ctxexprs
     (implies
         (and (force (vl-exprctxalist-p ctxexprs))
              (force (sd-patalist-p global-pats)))
         (sd-problemlist-p (sd-analyze-ctxexprs ctxexprs global-pats))))