25#include "InferenceItem.hpp"
28ostream& operator<<(ostream& out,
const InferenceItemType& inf) {
30 case InferenceItemType::Start:
31 out <<
"Start inference";
33 case InferenceItemType::Reduction:
34 out <<
"Reduction inference";
36 case InferenceItemType::Extension:
37 out <<
"Extension inference";
39 case InferenceItemType::Axiom:
40 out <<
"Axiom inference";
42 case InferenceItemType::Lemma:
43 out <<
"Lemma inference";
52: T(InferenceItemType::None)
102 InferenceItemType _T,
105 size_t _index_in_lemmata)
113, index_in_lemmata(_index_in_lemmata)
117 InferenceItemType _T,
134 InferenceItemType _T,
140 size_t _index_in_path)
147, index_in_path(_index_in_path)
152 out <<
"Inference Item: ";
154 case InferenceItemType::Start:
155 out <<
"Start: clause number = "
156 << to_string(si.
C_2);
158 case InferenceItemType::Reduction:
159 out <<
"Reduction: L = " << si.
L <<
" index = "
161 out <<
" Substitution: " << si.
sigma;
163 case InferenceItemType::Extension:
164 out <<
"Extension: L = " << si.
L <<
" C_2 = "
166 <<
" L' = " << to_string(si.
Lprime);
167 out <<
" Substitution: " << si.
sigma;
169 case InferenceItemType::Axiom:
172 case InferenceItemType::Lemma:
173 out <<
"Lemma: L = " << si.
L <<
" index = "
Basic representation of literals, bundling together (pointers to) a Predicate, a collection of argume...
General representation of a substitution.
Full representation of inferences, beyond just the name.
LitNum Lindex
The index of the literal within the clause being used.
LitNum Lprime
The index of the literal in C_2 being used.
Substitution sigma
A copy of the substitution that makes the rule applicable.
Literal L
The Literal that is used to make the inference.
ClauseNum C_2
For extensions, the number of the clause for which a fresh copy is being made.
InferenceItemType T
What kind of inference is this?
InferenceItem()
Constructor - probably unused.