Cvc5Proof

This struct encapsulates a cvc5 proof object, which can be retrieved via function cvc5_get_proof() after a cvc5_check_sat() query returns an unsat result.


typedef struct cvc5_proof_t *Cvc5Proof

A cvc5 proof.


Cvc5ProofRule cvc5_proof_get_rule(Cvc5Proof proof)

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

Returns:

The proof rule.

Cvc5ProofRewriteRule cvc5_proof_get_rewrite_rule(Cvc5Proof proof)

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

Requires that cvc5_proof_get_rule() does not return CVC5_PROOF_RULE_DSL_REWRITE or CVC5_PROOF_RULE_THEORY_REWRITE.

Parameters:

proof – The proof.

Returns:

The proof rewrite rule.

Cvc5Term cvc5_proof_get_result(Cvc5Proof proof)

Get the conclusion of the root step of a given proof.

Parameters:

proof – The proof.

Returns:

The conclusion term.

const Cvc5Proof *cvc5_proof_get_children(Cvc5Proof proof, size_t *size)

Get the premises of the root step of a given proof.

Note

The returned Cvc5Proof array pointer is only valid until the next call to this function.

Parameters:
  • proof – The proof.

  • size – Output parameter to store the number of resulting premise proofs.

Returns:

The premise proofs.

const Cvc5Term *cvc5_proof_get_arguments(Cvc5Proof proof, size_t *size)

Get the arguments of the root step of a given proof.

Parameters:
  • proof – The proof.

  • size – Output parameter to store the number of resulting argument terms.

Returns:

The argument terms.

bool cvc5_proof_is_equal(Cvc5Proof a, Cvc5Proof b)

Compare two proofs for referential equality.

Parameters:
  • a – The first proof.

  • b – The second proof.

Returns:

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

bool cvc5_proof_is_disequal(Cvc5Proof a, Cvc5Proof b)

Compare two proofs for referential disequality.

Parameters:
  • a – The first proof.

  • b – The second proof.

Returns:

True if both proof pointers point to different internal proof objects.

size_t cvc5_proof_hash(Cvc5Proof proof)

Compute the hash value of a proof.

Parameters:

proof – The proof.

Returns:

The hash value of the proof.

Cvc5Proof cvc5_proof_copy(Cvc5Proof proof)

Make copy of proof, increases reference counter of proof.

Note

This step is optional and allows users to manage resources in a more fine-grained manner.

Parameters:

proof – The proof to copy.

Returns:

The same proof with its reference count increased by one.

void cvc5_proof_release(Cvc5Proof proof)

Release copy of proof, decrements reference counter of proof.

Note

This step is optional and allows users to release resources in a more fine-grained manner. Further, any API function that returns a copy that is owned by the callee of the function and thus, can be released.

Parameters:

proof – The proof to release.