• 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
          • Delayredux
          • Unparameterization
          • Caseelim
            • Vl-casezx-stmt-elim
            • Vl-casezx-matchexpr
            • Vl-modulelist-caseelim
            • Vl-casezx-match-any-expr
            • Vl-casestmt-elim
            • Vl-casestmt-size-warnings
            • Vl-casezx-elim-aux
            • Vl-stmt-caseelim
              • Vl-stmtlist-caseelim
            • Case-statement-problems
            • Vl-casestmt-compare-expr
            • Vl-initiallist-caseelim
            • Vl-alwayslist-caseelim
            • Vl-casestmt-elim-aux
            • Vl-initial-caseelim
            • Vl-always-caseelim
            • Vl-casestmt-sizes-agreep
            • Vl-module-caseelim
            • Vl-design-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
  • Caseelim

Vl-stmt-caseelim

Recursively eliminate case, casez, and casex statements within a statement.

Signature
(vl-stmt-caseelim x ctx warnings ss) → (mv warnings new-x)
Arguments
x — Guard (vl-stmt-p x).
ctx — Guard (vl-modelement-p ctx).
warnings — Guard (vl-warninglist-p warnings).
ss — Guard (vl-scopestack-p ss).
Returns
warnings — Type (vl-warninglist-p warnings).
new-x — Type (vl-stmt-p new-x).

Theorem: return-type-of-vl-stmt-caseelim.warnings

(defthm return-type-of-vl-stmt-caseelim.warnings
  (b* (((mv ?warnings ?new-x)
        (vl-stmt-caseelim x ctx warnings ss)))
    (vl-warninglist-p warnings))
  :rule-classes :rewrite)

Theorem: return-type-of-vl-stmt-caseelim.new-x

(defthm return-type-of-vl-stmt-caseelim.new-x
  (b* (((mv ?warnings ?new-x)
        (vl-stmt-caseelim x ctx warnings ss)))
    (vl-stmt-p new-x))
  :rule-classes :rewrite)

Theorem: return-type-of-vl-stmtlist-caseelim.warnings

(defthm return-type-of-vl-stmtlist-caseelim.warnings
  (b* (((mv ?warnings ?new-x)
        (vl-stmtlist-caseelim x ctx warnings ss)))
    (vl-warninglist-p warnings))
  :rule-classes :rewrite)

Theorem: return-type-of-vl-stmtlist-caseelim.new-x

(defthm return-type-of-vl-stmtlist-caseelim.new-x
  (b* (((mv ?warnings ?new-x)
        (vl-stmtlist-caseelim x ctx warnings ss)))
    (and (vl-stmtlist-p new-x)
         (equal (len new-x) (len x))))
  :rule-classes :rewrite)

Theorem: vl-stmt-caseelim-of-vl-stmt-fix-x

(defthm vl-stmt-caseelim-of-vl-stmt-fix-x
  (equal (vl-stmt-caseelim (vl-stmt-fix x)
                           ctx warnings ss)
         (vl-stmt-caseelim x ctx warnings ss)))

Theorem: vl-stmt-caseelim-of-vl-modelement-fix-ctx

(defthm vl-stmt-caseelim-of-vl-modelement-fix-ctx
  (equal (vl-stmt-caseelim x (vl-modelement-fix ctx)
                           warnings ss)
         (vl-stmt-caseelim x ctx warnings ss)))

Theorem: vl-stmt-caseelim-of-vl-warninglist-fix-warnings

(defthm vl-stmt-caseelim-of-vl-warninglist-fix-warnings
  (equal (vl-stmt-caseelim x ctx (vl-warninglist-fix warnings)
                           ss)
         (vl-stmt-caseelim x ctx warnings ss)))

Theorem: vl-stmt-caseelim-of-vl-scopestack-fix-ss

(defthm vl-stmt-caseelim-of-vl-scopestack-fix-ss
  (equal (vl-stmt-caseelim x ctx warnings (vl-scopestack-fix ss))
         (vl-stmt-caseelim x ctx warnings ss)))

Theorem: vl-stmtlist-caseelim-of-vl-stmtlist-fix-x

(defthm vl-stmtlist-caseelim-of-vl-stmtlist-fix-x
  (equal (vl-stmtlist-caseelim (vl-stmtlist-fix x)
                               ctx warnings ss)
         (vl-stmtlist-caseelim x ctx warnings ss)))

Theorem: vl-stmtlist-caseelim-of-vl-modelement-fix-ctx

(defthm vl-stmtlist-caseelim-of-vl-modelement-fix-ctx
  (equal (vl-stmtlist-caseelim x (vl-modelement-fix ctx)
                               warnings ss)
         (vl-stmtlist-caseelim x ctx warnings ss)))

Theorem: vl-stmtlist-caseelim-of-vl-warninglist-fix-warnings

(defthm vl-stmtlist-caseelim-of-vl-warninglist-fix-warnings
  (equal (vl-stmtlist-caseelim x ctx (vl-warninglist-fix warnings)
                               ss)
         (vl-stmtlist-caseelim x ctx warnings ss)))

Theorem: vl-stmtlist-caseelim-of-vl-scopestack-fix-ss

(defthm vl-stmtlist-caseelim-of-vl-scopestack-fix-ss
 (equal (vl-stmtlist-caseelim x ctx warnings (vl-scopestack-fix ss))
        (vl-stmtlist-caseelim x ctx warnings ss)))

Theorem: vl-stmt-caseelim-vl-stmt-equiv-congruence-on-x

(defthm vl-stmt-caseelim-vl-stmt-equiv-congruence-on-x
  (implies (vl-stmt-equiv x x-equiv)
           (equal (vl-stmt-caseelim x ctx warnings ss)
                  (vl-stmt-caseelim x-equiv ctx warnings ss)))
  :rule-classes :congruence)

Theorem: vl-stmt-caseelim-vl-modelement-equiv-congruence-on-ctx

(defthm vl-stmt-caseelim-vl-modelement-equiv-congruence-on-ctx
  (implies (vl-modelement-equiv ctx ctx-equiv)
           (equal (vl-stmt-caseelim x ctx warnings ss)
                  (vl-stmt-caseelim x ctx-equiv warnings ss)))
  :rule-classes :congruence)

Theorem: vl-stmt-caseelim-vl-warninglist-equiv-congruence-on-warnings

(defthm vl-stmt-caseelim-vl-warninglist-equiv-congruence-on-warnings
  (implies (vl-warninglist-equiv warnings warnings-equiv)
           (equal (vl-stmt-caseelim x ctx warnings ss)
                  (vl-stmt-caseelim x ctx warnings-equiv ss)))
  :rule-classes :congruence)

Theorem: vl-stmt-caseelim-vl-scopestack-equiv-congruence-on-ss

(defthm vl-stmt-caseelim-vl-scopestack-equiv-congruence-on-ss
  (implies (vl-scopestack-equiv ss ss-equiv)
           (equal (vl-stmt-caseelim x ctx warnings ss)
                  (vl-stmt-caseelim x ctx warnings ss-equiv)))
  :rule-classes :congruence)

Theorem: vl-stmtlist-caseelim-vl-stmtlist-equiv-congruence-on-x

(defthm vl-stmtlist-caseelim-vl-stmtlist-equiv-congruence-on-x
  (implies (vl-stmtlist-equiv x x-equiv)
           (equal (vl-stmtlist-caseelim x ctx warnings ss)
                  (vl-stmtlist-caseelim x-equiv ctx warnings ss)))
  :rule-classes :congruence)

Theorem: vl-stmtlist-caseelim-vl-modelement-equiv-congruence-on-ctx

(defthm vl-stmtlist-caseelim-vl-modelement-equiv-congruence-on-ctx
  (implies (vl-modelement-equiv ctx ctx-equiv)
           (equal (vl-stmtlist-caseelim x ctx warnings ss)
                  (vl-stmtlist-caseelim x ctx-equiv warnings ss)))
  :rule-classes :congruence)

Theorem: vl-stmtlist-caseelim-vl-warninglist-equiv-congruence-on-warnings

(defthm
   vl-stmtlist-caseelim-vl-warninglist-equiv-congruence-on-warnings
  (implies (vl-warninglist-equiv warnings warnings-equiv)
           (equal (vl-stmtlist-caseelim x ctx warnings ss)
                  (vl-stmtlist-caseelim x ctx warnings-equiv ss)))
  :rule-classes :congruence)

Theorem: vl-stmtlist-caseelim-vl-scopestack-equiv-congruence-on-ss

(defthm vl-stmtlist-caseelim-vl-scopestack-equiv-congruence-on-ss
  (implies (vl-scopestack-equiv ss ss-equiv)
           (equal (vl-stmtlist-caseelim x ctx warnings ss)
                  (vl-stmtlist-caseelim x ctx warnings ss-equiv)))
  :rule-classes :congruence)

Subtopics

Vl-stmtlist-caseelim