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)
105, index_in_LC_index(0)
110 InferenceItemType _T,
113 size_t _index_in_lemmata)
121, index_in_lemmata(_index_in_lemmata)
122, index_in_LC_index(0)
127 InferenceItemType _T,
142, index_in_LC_index(_LC_i)
147 InferenceItemType _T,
153 size_t _index_in_path)
160, index_in_path(_index_in_path)
165 out <<
"Inference Item: ";
167 case InferenceItemType::Start:
168 out <<
"Start: clause number = "
169 << to_string(si.
C_2);
171 case InferenceItemType::Reduction:
172 out <<
"Reduction: L = " << si.
L <<
" index = "
174 out <<
" Substitution: " << si.
sigma;
176 case InferenceItemType::Extension:
177 out <<
"Extension: L = " << si.
L <<
" C_2 = "
179 <<
" L' = " << to_string(si.
Lprime);
180 out <<
" Substitution: " << si.
sigma;
182 case InferenceItemType::Axiom:
185 case InferenceItemType::Lemma:
186 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. This may or may not be reusable,...
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.