25#ifndef PROOFCHECKER_HPP
26#define PROOFCHECKER_HPP
45using ProofLine = pair<string, vector<size_t>>;
49using ProofType = vector<ProofLine>;
54using RightStackItem = std::tuple<
Clause,
115 bool C_i_ok(
size_t)
const;
123 bool P_i_ok(
size_t)
const;
Representation of clauses.
Representation of the Matrix within a proof.
ProofType proof
Straightforward internal representation of the proof.
VariableIndex * vi
Needed as we need to generate things with new variables.
bool P_i_ok(size_t) const
Check index. Self-explanatory!
bool check_proof()
Check the proof quietly.
bool C_i_ok(size_t) const
Check index. Self-explanatory!
bool Lem_i_ok(size_t) const
Check index. Self-explanatory!
vector< Literal > P
Part of the representation of the current state of the proof.
TermIndex * ti
Needed as we need to generate things with new variables.
vector< Literal > Lem
Part of the representation of the current state of the proof.
Unifier u
Needed to check some proof steps.
Matrix & matrix
Reference to the problem matrix.
Clause C
Part of the representation of the current state of the proof.
vector< RightStackItem > r_stack
Collection of right-hand branches to complete.
size_t num_subs
Use this to undo the substitutions when you've finished.
pair< bool, string > check_proof_verbose()
Check the proof and produce a string with a detailed description.
bool Lit_i_ok(size_t) const
Check index. Self-explanatory!
string state_to_string() const
Make a string containing the current state.
Look after terms, (ideally) using hash consing to avoid storing copies of terms.
Wrap up various applications of unificiation into a single class: all the unification you need to do ...
Storage of named variables, and management of new, anonymous variables.