Proof

This class encapsulates a cvc5 proof object, which can be retrieved via function cvc5::Solver::getProof() after a cvc5::Solver::checkSat() query returns an unsat result.



class Proof

A cvc5 proof. Proofs are trees and every proof object corresponds to the root step of a proof. The branches of the root step are the premises of the step.

Public Functions

Proof ( )

Nullary constructor. Needed for the Cython API.

~Proof ( )
bool isNull ( ) const

Determine if this is the null proof ( Proof::Proof() ).

Returns :

True if this grammar is the null proof.

ProofRule getRule ( ) const

Get the proof rule used by the root step of the proof.

Returns :

The proof rule.

ProofRewriteRule getRewriteRule ( ) const

Get the proof rewrite rule used by the root step of the proof.

Requires that getRule() does not return #DSL_REWRITE or #THEORY_REWRITE.

Returns :

The proof rewrite rule.

Term getResult ( ) const
Returns :

The conclusion of the root step of the proof.

const std :: vector < Proof > getChildren ( ) const
Returns :

The premises of the root step of the proof.

const std :: vector < Term > getArguments ( ) const
Returns :

The arguments of the root step of the proof as a vector of terms. Some of those terms might be strings.

bool operator == ( const Proof & p ) const

Operator overloading for referential equality of two proofs.

Parameters :

p – The proof to compare to for equality.

Returns :

True if both proofs point to the same internal proof object.

bool operator != ( const Proof & p ) const

Referential disequality operator.

Parameters :

p – The proof to compare to for disequality.

Returns :

True if both proofs point to different internal proof objects.

Friends

friend struct std::hash< Proof >

template < >
struct hash < cvc5 :: Proof >

Hash function for proofs.

Public Functions

size_t operator () ( const cvc5 :: Proof & p ) const