Skip to content

Commit

Permalink
Revise Haddocks for Crucible backends (#1249)
Browse files Browse the repository at this point in the history
The fact that these backends use an `AssumptionStack` is an
implementation detail that is not exposed via their interface, instead
clients interact with `getProofObligations`.

Also, point to a module that helps with dispatching such obligations.
  • Loading branch information
langston-barrett authored Sep 11, 2024
1 parent 6235955 commit 86f1f2e
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions crucible/src/Lang/Crucible/Backend.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,11 @@ offline solver connection, while the
'Lang.Crucible.Backend.Online.OnlineBackend' is designed to be used with an
online solver.
The 'AS.AssumptionStack' tracks the assumptions that are in scope for each
assertion, accounting for the branching and merging structure of programs. The
symbolic simulator manages the 'AS.AssumptionStack'. After symbolic simulation
completes, the caller should traverse the 'AS.AssumptionStack' (or use
combinators like 'AS.proofGoalsToList') to discharge the resulting proof
obligations with a solver backend.
The backend tracks the assumptions that are in scope for each assertion,
accounting for the branching and merging structure of programs. After
symbolic simulation completes, the caller should traverse the collected
'ProofObligations' (via 'getProofObligations') to discharge the resulting proof
obligations with a solver backend. See also "Lang.Crucible.Backend.Prove".
-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DataKinds #-}
Expand Down

0 comments on commit 86f1f2e

Please sign in to comment.