Skip to content

Conversation

@gcarpio21
Copy link
Member

Objective

This PR aims to extend support for retrieving proofs of unsatisfiability from the CVC5 solver according to a general proof interface that would be used to do the same for other capable solvers.

Key Changes

  • Introduced Proof, and ProofRule as the main components for handling proofs.
  • Implemented proof retrieval for the CVC solver.
  • Added multiple tests for retrieving proofs in edges cases and different theories.

It is now possible to enable proof generating capabilities from CVC5 by passing ProverOptions.GENERATE_PROOFS when creating a new ProverEnvironment instance. Then when a query returns UNSAT one can call getProof() to retrieve the proof of unsatisfiability.

…objects in `BasicProverEnvironment` and multiple classes that implement said interface: `BasicProverEnvironmentWithAssumptionsWrapper`, `DebuggingBasicProverEnvironment`, `LoggingBasicProverEnvironment`, `StatisticsBasicProverEnvironment`, `SynchronizedBasicProverEnvironment`, `SynchronizedBasicProverEnvironmentWithContext`.
…objects in abstract class `AbstractProver` as well as flag `generateProofs` and method `checkGenerateProofs`.
…oof objects from the solvers into `Proof` objects.
…mpl` handles transformation from the solver's native proof into the common `Proof`.
…ing common `Proof`s from solvers. Conditions include: different theories, trivial proofs, simple proofs, not enabling proof production, etc.
@gcarpio21 gcarpio21 requested a review from baierd January 16, 2026 19:11
@gcarpio21 gcarpio21 self-assigned this Jan 16, 2026
@gcarpio21 gcarpio21 linked an issue Jan 16, 2026 that may be closed by this pull request
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Add Proof Support to API

1 participant