• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
      • Fgl
      • Vwsim
      • Vl
        • Syntax
        • Loader
          • Preprocessor
          • Vl-loadconfig
          • Vl-loadstate
          • Lexer
          • Parser
            • Parse-expressions
            • Parse-udps
            • Parse-statements
            • Parse-property
            • Vl-genelements
            • Parse-paramdecls
            • Parse-blockitems
            • Parse-utils
            • Parse-insts
            • Parse-functions
            • Parse-assignments
            • Parse-clocking
              • Vl-sort-clocking-block-items
                • Vl-parse-normal-clocking-declaration
                • Vl-parse-list-of-clocking-decl-assigns
                • Vl-clocking-direction-head
                • Vl-parse-default-skew-item
                • Vl-parse-clocking-block-item
                • Vl-parse-global-clocking-declaration
                • Vl-parse-clocking-direction
                • Vl-parse-clocking-block-items-until-endclocking
                • Vl-defaultskew-item
                • Vl-parse-clocking-skew
                • Vl-parse-defaultdisable
                • Vl-maybe-parse-clocking-skew
                • Vl-clocking-block-item
                • Vl-clocking-block-item-list
                • Vl-defaultskew-item-list
              • Parse-strengths
              • Vl-parse-genvar-declaration
              • Vl-parse
              • Parse-netdecls
              • Parse-asserts
              • Vl-maybe-parse-lifetime
              • Parse-dpi-import-export
              • Parse-ports
              • Parse-timeunits
              • Seq
              • Parse-packages
              • Parse-eventctrl
            • Vl-load-merge-descriptions
            • Vl-find-basename/extension
            • Vl-load-file
            • Vl-loadresult
            • Scope-of-defines
            • Vl-find-file
            • Vl-flush-out-descriptions
            • Vl-description
            • Vl-read-file
            • Vl-includeskips-report-gather
            • Vl-load-main
            • Extended-characters
            • Vl-load
            • Vl-load-description
            • Vl-descriptions-left-to-load
            • Inject-warnings
            • Vl-preprocess-debug
            • Vl-write-preprocessor-debug-file
            • Vl-read-file-report-gather
            • Vl-load-descriptions
            • Vl-load-files
            • Translate-off
            • Vl-load-read-file-hook
            • Vl-read-file-report
            • Vl-loadstate-pad
            • Vl-load-summary
            • Vl-collect-modules-from-descriptions
            • Vl-loadstate->warnings
            • Vl-iskips-report
            • Vl-descriptionlist
          • Warnings
          • Getting-started
          • Utilities
          • Printer
          • Kit
          • Mlib
          • Transforms
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • Parse-clocking

    Vl-sort-clocking-block-items

    Signature
    (vl-sort-clocking-block-items x idefaults odefaults 
                                  clkassigns properties sequences) 
     
      → 
    (mv idefaults odefaults clkassigns properties sequences)
    Arguments
    x — Guard (vl-clocking-block-item-list-p x).
    idefaults — Guard (vl-defaultskew-item-list-p idefaults).
    odefaults — Guard (vl-defaultskew-item-list-p odefaults).
    clkassigns — Guard (vl-clkassignlist-p clkassigns).
    properties — Guard (vl-propertylist-p properties).
    sequences — Guard (vl-sequencelist-p sequences).
    Returns
    idefaults — Type (vl-defaultskew-item-list-p idefaults).
    odefaults — Type (vl-defaultskew-item-list-p odefaults).
    clkassigns — Type (vl-clkassignlist-p clkassigns).
    properties — Type (vl-propertylist-p properties).
    sequences — Type (vl-sequencelist-p sequences).

    Definitions and Theorems

    Function: vl-sort-clocking-block-items

    (defun vl-sort-clocking-block-items
           (x idefaults odefaults
              clkassigns properties sequences)
      (declare (xargs :guard (and (vl-clocking-block-item-list-p x)
                                  (vl-defaultskew-item-list-p idefaults)
                                  (vl-defaultskew-item-list-p odefaults)
                                  (vl-clkassignlist-p clkassigns)
                                  (vl-propertylist-p properties)
                                  (vl-sequencelist-p sequences))))
      (let ((__function__ 'vl-sort-clocking-block-items))
        (declare (ignorable __function__))
        (if (atom x)
            (mv (vl-defaultskew-item-list-fix idefaults)
                (vl-defaultskew-item-list-fix odefaults)
                (vl-clkassignlist-fix clkassigns)
                (vl-propertylist-fix properties)
                (vl-sequencelist-fix sequences))
          (let* ((item (car x)) (tag (tag item)))
            (vl-sort-clocking-block-items
                 (cdr x)
                 (if (and (eq tag :vl-defaultskew)
                          (vl-defaultskew-item->inputp item))
                     (cons item idefaults)
                   idefaults)
                 (if (and (eq tag :vl-defaultskew)
                          (not (vl-defaultskew-item->inputp item)))
                     (cons item odefaults)
                   odefaults)
                 (if (eq tag :vl-clkassign)
                     (cons item clkassigns)
                   clkassigns)
                 (if (eq tag :vl-property)
                     (cons item properties)
                   properties)
                 (if (eq tag :vl-sequence)
                     (cons item sequences)
                   sequences))))))

    Theorem: vl-defaultskew-item-list-p-of-vl-sort-clocking-block-items.idefaults

    (defthm
     vl-defaultskew-item-list-p-of-vl-sort-clocking-block-items.idefaults
     (b*
      (((mv ?idefaults ?odefaults
            ?clkassigns ?properties ?sequences)
        (vl-sort-clocking-block-items x idefaults odefaults
                                      clkassigns properties sequences)))
      (vl-defaultskew-item-list-p idefaults))
     :rule-classes :rewrite)

    Theorem: vl-defaultskew-item-list-p-of-vl-sort-clocking-block-items.odefaults

    (defthm
     vl-defaultskew-item-list-p-of-vl-sort-clocking-block-items.odefaults
     (b*
      (((mv ?idefaults ?odefaults
            ?clkassigns ?properties ?sequences)
        (vl-sort-clocking-block-items x idefaults odefaults
                                      clkassigns properties sequences)))
      (vl-defaultskew-item-list-p odefaults))
     :rule-classes :rewrite)

    Theorem: vl-clkassignlist-p-of-vl-sort-clocking-block-items.clkassigns

    (defthm
          vl-clkassignlist-p-of-vl-sort-clocking-block-items.clkassigns
     (b*
      (((mv ?idefaults ?odefaults
            ?clkassigns ?properties ?sequences)
        (vl-sort-clocking-block-items x idefaults odefaults
                                      clkassigns properties sequences)))
      (vl-clkassignlist-p clkassigns))
     :rule-classes :rewrite)

    Theorem: vl-propertylist-p-of-vl-sort-clocking-block-items.properties

    (defthm vl-propertylist-p-of-vl-sort-clocking-block-items.properties
     (b*
      (((mv ?idefaults ?odefaults
            ?clkassigns ?properties ?sequences)
        (vl-sort-clocking-block-items x idefaults odefaults
                                      clkassigns properties sequences)))
      (vl-propertylist-p properties))
     :rule-classes :rewrite)

    Theorem: vl-sequencelist-p-of-vl-sort-clocking-block-items.sequences

    (defthm vl-sequencelist-p-of-vl-sort-clocking-block-items.sequences
     (b*
      (((mv ?idefaults ?odefaults
            ?clkassigns ?properties ?sequences)
        (vl-sort-clocking-block-items x idefaults odefaults
                                      clkassigns properties sequences)))
      (vl-sequencelist-p sequences))
     :rule-classes :rewrite)