• 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
        • Set
        • Soft
        • C
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
          • Process-syntheto-toplevel-fn
          • Translation
          • Language
            • Static-semantics
            • Abstract-syntax
            • Outcome
              • Outcome-fix
              • Outcome-case
              • Outcomep
              • Outcome-equiv
              • Outcome-proof-obligation-failure
              • Outcome-transformation-success
              • Outcome-kind
              • Outcome-unexpected-failure
              • Outcome-type-success
              • Outcome-transformation-failure
              • Outcome-theorem-success
              • Outcome-theorem-failure
              • Outcome-specification-success
              • Outcome-function-success
            • Abstract-syntax-operations
            • Outcome-list
            • Outcomes
          • Process-syntheto-toplevel
          • Shallow-embedding
        • File-io-light
        • Cryptography
        • Number-theory
        • Lists-light
        • Axe
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Language

Outcome

Fixtype of Syntheto outcomes.

This is a tagged union type, introduced by fty::deftagsum.

Member Tags → Types
:function-success → outcome-function-success
:type-success → outcome-type-success
:specification-success → outcome-specification-success
:theorem-success → outcome-theorem-success
:transformation-success → outcome-transformation-success
:proof-obligation-failure → outcome-proof-obligation-failure
:theorem-failure → outcome-theorem-failure
:transformation-failure → outcome-transformation-failure
:unexpected-failure → outcome-unexpected-failure

Each type of top-level definition, when submitted to ACL2, will be accepted or rejected. The success or failure of the submission is modeled by an outcome, which is returned to the submitter.

A function or clique of mutually-recursive functions, when submitted successfully to ACL2, is represented by function-success. Similarly, a type definition or clique of mutually-recursive type definitions is represented by type-success. Specifications, theorems, and transformations also have success types.

Since a successful transformation results in new submitted top-level definitions, those are returned as part of the success outcome.

For submission of a top-level definition to be accepted, there are certain implicit proof obligations such as termination and guard verification. If one of these fails, a proof-obligation-failure outcome is returned, containing an expression that could not be proved. This failure may result for a number of different reasons, and may result from a number of different top-level constructs including failure to prove the applicability condition of a transformation.

If a theorem is submitted that is not mechanically proved by ACL2, a theorem-failure outcome is returned.

If a transformation is submitted that is applicable, but fails due to some other reason, potentially a transformation-failure outcome is returned.

Any other submission failure results in a unexpected-failure outcome, which might have been expected but is at least not otherwise classified.

Subtopics

Outcome-fix
Fixing function for outcome structures.
Outcome-case
Case macro for the different kinds of outcome structures.
Outcomep
Recognizer for outcome structures.
Outcome-equiv
Basic equivalence relation for outcome structures.
Outcome-proof-obligation-failure
Outcome-transformation-success
Outcome-kind
Get the kind (tag) of a outcome structure.
Outcome-unexpected-failure
Outcome-type-success
Outcome-transformation-failure
Outcome-theorem-success
Outcome-theorem-failure
Outcome-specification-success
Outcome-function-success