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)
100, index_in_LC_index(0)
105 LitNum _Lindex,
size_t _index_in_lemmata)
113, index_in_lemmata(_index_in_lemmata)
114, index_in_LC_index(0)
119 LitNum _Lindex, ClauseNum _C_2, LitNum _LPrime,
size_t _LC_i,
size_t _LC)
128, index_in_LC_index(_LC_i)
133 LitNum _Lindex, ClauseNum _C_2, LitNum _LPrime,
const Substitution& _sigma,
134 size_t _index_in_path)
141, index_in_path(_index_in_path)
146 out <<
"Inference Item: ";
148 case InferenceItemType::Start:
149 out <<
"Start: clause number = "
150 << to_string(si.
C_2);
152 case InferenceItemType::Reduction:
153 out <<
"Reduction: L = " << si.
L <<
" index = "
155 out <<
" Substitution: " << si.
sigma;
157 case InferenceItemType::Extension:
158 out <<
"Extension: L = " << si.
L <<
" C_2 = "
160 <<
" L' = " << to_string(si.
Lprime);
161 out <<
" Substitution: " << si.
sigma;
163 case InferenceItemType::Axiom:
166 case InferenceItemType::Lemma:
167 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.