• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Error-checking
        • Apt
        • Abnf
        • Fty-extensions
        • Isar
        • Kestrel-utilities
          • Omaps
          • Directed-untranslate
          • Include-book-paths
          • Ubi
          • Checkpoint-list
          • Digits-any-base
          • Context-message-pair
          • Numbered-names
          • With-auto-termination
          • Theorems-about-true-list-lists
          • Make-termination-theorem
          • Sublis-expr+
          • Prove$
          • Defthm<w
          • System-utilities-non-built-in
          • Integer-range-fix
          • Add-const-to-untranslate-preprocess
          • Integers-from-to
          • Minimize-ruler-extenders
          • Unsigned-byte-fix
          • Signed-byte-fix
          • Defthmr
          • Paired-names
          • Unsigned-byte-list-fix
          • Signed-byte-list-fix
          • Show-books
          • Checkpoint-list-pretty
          • List-utilities
          • Skip-in-book
          • Typed-tuplep
          • Defunt
          • Keyword-value-list-to-alist
          • Magic-macroexpand
          • Top-command-number-fn
            • Bits-as-digits-in-base-2
            • Show-checkpoint-list
            • Ubyte11s-as-digits-in-base-2048
            • Named-formulas
            • Bytes-as-digits-in-base-256
            • String-utilities
            • Make-keyword-value-list-from-keys-and-value
            • Integer-range-listp
            • Defmacroq
            • Apply-fn-if-known
            • Trans-eval-error-triple
            • Checkpoint-info-list
            • Previous-subsumer-hints
            • Fms!-lst
            • Zp-listp
            • Doublets-to-alist
            • Trans-eval-state
            • Injections
            • Theorems-about-osets
            • Typed-list-utilities
            • Book-runes-alist
            • User-interface
            • Bits/ubyte11s-digit-grouping
            • Bits/bytes-digit-grouping
            • Message-utilities
            • Subsetp-eq-linear
            • Strict-merge-sort-<
            • Miscellaneous-enumerations
            • Maybe-unquote
            • Oset-utilities
            • Thm<w
            • Defthmd<w
          • Prime-field-constraint-systems
          • Soft
          • Bv
          • Imp-language
          • Event-macros
          • Bitcoin
          • Ethereum
          • Yul
          • Zcash
          • ACL2-programming-language
          • Prime-fields
          • Java
          • C
          • Syntheto
          • Number-theory
          • Cryptography
          • Lists-light
          • File-io-light
          • Json
          • Built-ins
          • Solidity
          • Axe
          • Std-extensions
          • Htclient
          • Typed-lists-light
          • Arithmetic-light
        • X86isa
        • Execloader
        • Axe
      • Testing-utilities
      • Math
    • Kestrel-utilities

    Top-command-number-fn

    Returns the number of the most recent top-level ACL2 command.

    Signature
    (top-command-number-fn state) → num
    Returns
    num — Type (integerp num).

    When a new command is accepted by the ACL2 top-level interface, the top command number is incremented and assigned to the new command.

    You can see the numbers assigned to your commands with the pbt history function.

    Some history functions that can change the top command number include u, ubu!, and (tsee reset-prehistory), for example.

    Definitions and Theorems

    Function: top-command-number-fn

    (defun
     top-command-number-fn (state)
     (declare (xargs :stobjs (state)))
     (declare (xargs :guard t))
     (let
        ((__function__ 'top-command-number-fn))
        (declare (ignorable __function__))
        (let* ((wrld (w state))
               (base-info (global-val 'command-number-baseline-info
                                      wrld))
               (command-number-base (access command-number-baseline-info
                                            base-info :current))
               (command-number-current
                    (access-command-tuple-number (cddar wrld)))
               (user-command-number-current (- command-number-current
                                               command-number-base)))
              (if (integerp user-command-number-current)
                  user-command-number-current 0))))

    Theorem: integerp-of-top-command-number-fn

    (defthm integerp-of-top-command-number-fn
            (b* ((num (top-command-number-fn state)))
                (integerp num))
            :rule-classes :rewrite)