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

    Prove-named-formulas

    Try to prove a list of named formulas, one after the other.

    Signature
    (prove-named-formulas named-formulas named-hints verbose state) 
      → 
    (mv success msg state)
    Arguments
    named-formulas — Named formulas to prove (an alist from names to untranslated terms).
        Guard (symbol-alistp named-formulas).
    named-hints — Alist from names of formulas to proof hints to prove the corresponding formulas.
        Guard (symbol-truelist-alistp named-hints).
    verbose — Print progress messages or not.
        Guard (booleanp verbose).
    Returns
    success — A booleanp.
    msg — A msgp.

    Besides returning an indication of success or failure, return a structured message (printable with ~@). When the proof of a named formula fails, the message is the error message generated by that proof attempt. When all the proofs of the named formulas succeed, currently the message is empty, but future versions of this function could return some non-empty message instead.

    If the verbose argument is t, also print progress messages for the named formulas.

    Definitions and Theorems

    Function: prove-named-formulas

    (defun prove-named-formulas
           (named-formulas named-hints verbose state)
     (declare (xargs :stobjs (state)))
     (declare (xargs :guard (and (symbol-alistp named-formulas)
                                 (symbol-truelist-alistp named-hints)
                                 (booleanp verbose))))
     (let ((__function__ 'prove-named-formulas))
      (declare (ignorable __function__))
      (cond
       ((endp named-formulas) (mv t "" state))
       (t (b* ((named-formula (car named-formulas))
               (name (car named-formula))
               (formula (cdr named-formula))
               (hints (cdr (assoc-eq name named-hints)))
               ((mv success msg state)
                (prove-named-formula name formula hints verbose state)))
            (if success (prove-named-formulas (cdr named-formulas)
                                              named-hints verbose state)
              (mv nil msg state)))))))