Connect++ 0.6.0
A fast, readable connection prover for first-order logic.
Loading...
Searching...
No Matches
StackItem Struct Reference

Stack items: each contains its own material for generating possible next inferences. More...

#include <StackItem.hpp>

Collaboration diagram for StackItem:

Public Member Functions

void stack_item_setup ()
 Basic setup collected in a method to avoid repeating it in the various constructors.
 
void reduction_initialize (Unifier &)
 Make sure you do this!
 
void reduction_move_to_next_result (Unifier &)
 Before you do anything else, set up the first result.
 
bool reduction_is_empty () const
 Have we exhaused all possible reductions?
 
void reduction_restrict_backtrack ()
 Indicate that we don't want any further possibilities.
 
InferenceItem next_reduction (Unifier &)
 Find the next possible reduction or indicate there is none. The state of the object keeps track of where we are.
 
void all_reductions (vector< InferenceItem > &, Unifier &)
 Generate all possible reductions in one go, should you need to.
 
void extension_initialize (Matrix &, Unifier &)
 Make sure you do this!
 
void extension_move_to_next_result (Matrix &, Unifier &)
 Before you do anything else, set up the first result.
 
bool extension_is_empty () const
 Have we exhaused all possible extensions?
 
void extension_restrict_backtrack ()
 Indicate that we don't want any further possibilities.
 
InferenceItem next_extension (Matrix &, Unifier &)
 Find the next possible extension or indicate there is none. The state of the object keeps track of where we are.
 
void all_extensions (vector< InferenceItem > &, Matrix &, Unifier &)
 Generate all possible extensions in one go, should you need to.
 
 StackItem (StackItemType sit)
 
 StackItem (StackItemType sit, const Clause &_c, const SimplePath &_p)
 
 StackItem (StackItemType sit, const Clause &_c, const SimplePath &_p, const Lemmata &_l)
 
 StackItem (StackItemType sit, const Clause &_c, const SimplePath &_p, uint32_t _d)
 
 StackItem (StackItemType sit, const Clause &_c, const SimplePath &_p, const Lemmata &_l, uint32_t _d)
 
 StackItem (StackItemType sit, const Clause &_c, const SimplePath &_p, const Substitution &_sub, uint32_t _d)
 
 StackItem (StackItemType sit, const Clause &_c, const SimplePath &_p, const Lemmata &_l, const Substitution &_sub, uint32_t _d)
 
void initialize (Matrix &, Unifier &)
 Call this after the constructor but before you want to use the enumeration of possible actions.
 
void restrict_backtrack ()
 Adjust the collection of actions to limit backtracking.
 
void add_all_extensions_to_actions (Matrix &, Unifier &)
 You may really want to generate all the extensions at once.
 
void add_all_reductions_to_actions (Unifier &)
 You may really want to generate all the reductions at once.
 
bool no_more_inferences ()
 Is there anything left to do?
 
InferenceItem get_next_inference (Matrix &, Unifier &)
 Get the next inference to try.
 
string to_string_unsubbed () const
 Make a string representation.
 
void clear ()
 Delete all the remaining possible actions.
 
void set_this_action (const InferenceItem &inf_i)
 Basic set method.
 
void set_bt_restriction_index (size_t i)
 Basic set method.
 

Public Attributes

StackItemType item_type
 What type of StackItem is this?
 
Clause c
 Each node in the proof tree is a tuple of clause, matrix, path, lemmata: this is the clause.
 
SimplePath p
 Each node in the proof tree is a tuple of clause, matrix, path, lemmata: this is the path.
 
size_t path_length
 Length of current path.
 
Lemmata l
 Each node in the proof tree is a tuple of clause, matrix, path, lemmata: this is the lemmata.
 
Substitution sub
 Some nodes in the proof tree have an associated substitution.
 
vector< InferenceItemactions
 Actions available to try.
 
uint32_t depth
 How deep in the proof tree are we?
 
InferenceItem this_action
 Action that got you to this clause, path etc.
 
size_t bt_restriction_index
 Pointer that allows a right branch to know where to delete alternatives for restricted backtracking.
 
Literal reduction_lit
 Literal of interest.
 
Literal reduction_neg_lit
 Negation of literal of interest.
 
LitNum reduction_ind
 Index of literal of interest.
 
size_t reduction_current_path_index
 Which possible reduction will we consider next?
 
bool reduction_backtrack_restricted
 Setting this to true stops any further possibilities from being generated.
 
InferenceItem reduction_next_result
 We always want to know the next available result, and especially need to try to find it so that we actually know when there are none left.
 
bool reduction_no_more_results
 Make it easy to know when there are no more possibilities.
 
Literal extension_lit
 Literal of interest.
 
Literal extension_neg_lit
 Negation of literal of interest.
 
LitNum extension_ind
 Index of literal of interest.
 
size_t extension_i
 Index computed for neg_lit telling us where to find the information we need in the matrix index.
 
size_t extension_index_entry_size
 Size of matrix index entry.
 
size_t extension_current_index_entry
 Which possible extension will we consider next?
 
bool extension_backtrack_restricted
 Setting this to true stops any further possibilities from being generated.
 
InferenceItem extension_next_result
 We always want to know the next available result, and especially need to try to find it so that we actually know when there are none left.
 
bool extension_no_more_results
 Make it easy to know when there are no more possibilities.
 

Detailed Description

Stack items: each contains its own material for generating possible next inferences.

Note: this is really performance critical. It probably looks as though there's a lot of unnecessary stuff here, but that's generally so that it can be computed once and stored.

Definition at line 56 of file StackItem.hpp.

Constructor & Destructor Documentation

◆ StackItem() [1/7]

StackItem::StackItem ( StackItemType sit)
inline

Definition at line 270 of file StackItem.hpp.

271 : item_type(sit)
272 , c()
273 , p()
274 , l()
275 , sub()
276 , actions()
277 , depth(0)
278 , this_action()
280 { stack_item_setup(); }
SimplePath p
Each node in the proof tree is a tuple of clause, matrix, path, lemmata: this is the path.
Definition StackItem.hpp:70
vector< InferenceItem > actions
Actions available to try.
Definition StackItem.hpp:96
Substitution sub
Some nodes in the proof tree have an associated substitution.
Definition StackItem.hpp:84
uint32_t depth
How deep in the proof tree are we?
size_t bt_restriction_index
Pointer that allows a right branch to know where to delete alternatives for restricted backtracking.
InferenceItem this_action
Action that got you to this clause, path etc.
Lemmata l
Each node in the proof tree is a tuple of clause, matrix, path, lemmata: this is the lemmata.
Definition StackItem.hpp:79
Clause c
Each node in the proof tree is a tuple of clause, matrix, path, lemmata: this is the clause.
Definition StackItem.hpp:65
StackItemType item_type
What type of StackItem is this?
Definition StackItem.hpp:60
void stack_item_setup()
Basic setup collected in a method to avoid repeating it in the various constructors.
Definition StackItem.cpp:51

◆ StackItem() [2/7]

StackItem::StackItem ( StackItemType sit,
const Clause & _c,
const SimplePath & _p )
inline

Definition at line 282 of file StackItem.hpp.

285 : item_type(sit)
286 , c(_c)
287 , p(_p)
288 , l()
289 , sub()
290 , actions()
291 , depth(0)
292 , this_action()
294 { stack_item_setup(); }

◆ StackItem() [3/7]

StackItem::StackItem ( StackItemType sit,
const Clause & _c,
const SimplePath & _p,
const Lemmata & _l )
inline

Definition at line 296 of file StackItem.hpp.

300 : item_type(sit)
301 , c(_c)
302 , p(_p)
303 , l(_l)
304 , sub()
305 , actions()
306 , depth(0)
307 , this_action()
309 { stack_item_setup(); }

◆ StackItem() [4/7]

StackItem::StackItem ( StackItemType sit,
const Clause & _c,
const SimplePath & _p,
uint32_t _d )
inline

Definition at line 311 of file StackItem.hpp.

315 : item_type(sit)
316 , c(_c)
317 , p(_p)
318 , l()
319 , sub()
320 , actions()
321 , depth(_d)
322 , this_action()
324 { stack_item_setup(); }

◆ StackItem() [5/7]

StackItem::StackItem ( StackItemType sit,
const Clause & _c,
const SimplePath & _p,
const Lemmata & _l,
uint32_t _d )
inline

Definition at line 326 of file StackItem.hpp.

331 : item_type(sit)
332 , c(_c)
333 , p(_p)
334 , l(_l)
335 , sub()
336 , actions()
337 , depth(_d)
338 , this_action()
340 { stack_item_setup(); }

◆ StackItem() [6/7]

StackItem::StackItem ( StackItemType sit,
const Clause & _c,
const SimplePath & _p,
const Substitution & _sub,
uint32_t _d )
inline

Definition at line 342 of file StackItem.hpp.

347 : item_type(sit)
348 , c(_c)
349 , p(_p)
350 , l()
351 , sub(_sub)
352 , actions()
353 , depth(_d)
354 , this_action()
356 { stack_item_setup(); }

◆ StackItem() [7/7]

StackItem::StackItem ( StackItemType sit,
const Clause & _c,
const SimplePath & _p,
const Lemmata & _l,
const Substitution & _sub,
uint32_t _d )
inline

Definition at line 358 of file StackItem.hpp.

364 : item_type(sit)
365 , c(_c)
366 , p(_p)
367 , l(_l)
368 , sub(_sub)
369 , actions()
370 , depth(_d)
371 , this_action()
373 { stack_item_setup(); }

Member Function Documentation

◆ add_all_extensions_to_actions()

void StackItem::add_all_extensions_to_actions ( Matrix & _m,
Unifier & _u )

You may really want to generate all the extensions at once.

Definition at line 178 of file StackItem.cpp.

178 {
179 all_extensions(actions, _m, _u);
180}
void all_extensions(vector< InferenceItem > &, Matrix &, Unifier &)
Generate all possible extensions in one go, should you need to.

◆ add_all_reductions_to_actions()

void StackItem::add_all_reductions_to_actions ( Unifier & _u)

You may really want to generate all the reductions at once.

Definition at line 182 of file StackItem.cpp.

182 {
184}
void all_reductions(vector< InferenceItem > &, Unifier &)
Generate all possible reductions in one go, should you need to.

◆ all_extensions()

void StackItem::all_extensions ( vector< InferenceItem > & extensions,
Matrix & _m,
Unifier & _u )

Generate all possible extensions in one go, should you need to.

Definition at line 156 of file StackItem.cpp.

157 {
159 extensions.push_back(extension_next_result);
161 }
162}
bool extension_no_more_results
Make it easy to know when there are no more possibilities.
InferenceItem extension_next_result
We always want to know the next available result, and especially need to try to find it so that we ac...
void extension_move_to_next_result(Matrix &, Unifier &)
Before you do anything else, set up the first result.

◆ all_reductions()

void StackItem::all_reductions ( vector< InferenceItem > & reductions,
Unifier & _u )

Generate all possible reductions in one go, should you need to.

Definition at line 109 of file StackItem.cpp.

110 {
112 reductions.push_back(reduction_next_result);
114 }
115}
bool reduction_no_more_results
Make it easy to know when there are no more possibilities.
InferenceItem reduction_next_result
We always want to know the next available result, and especially need to try to find it so that we ac...
void reduction_move_to_next_result(Unifier &)
Before you do anything else, set up the first result.
Definition StackItem.cpp:76

◆ clear()

void StackItem::clear ( )
inline

Delete all the remaining possible actions.

Possibly the most aggressive backtracking restriction heuristic available.

Definition at line 415 of file StackItem.hpp.

415{ actions.clear(); }

◆ extension_initialize()

void StackItem::extension_initialize ( Matrix & _m,
Unifier & _u )

Make sure you do this!

Definition at line 117 of file StackItem.cpp.

117 {
122}
size_t get_pred_as_index() const
Turn a Literal into an array index.
Definition Literal.hpp:126
size_t get_index_entry_size(size_t _i) const
The ExtensionEnumerator needs to know this.
Definition Matrix.hpp:229
size_t extension_index_entry_size
Size of matrix index entry.
size_t extension_i
Index computed for neg_lit telling us where to find the information we need in the matrix index.
Literal extension_neg_lit
Negation of literal of interest.

◆ extension_is_empty()

bool StackItem::extension_is_empty ( ) const
inline

Have we exhaused all possible extensions?

Definition at line 244 of file StackItem.hpp.

244 {
246}
bool extension_backtrack_restricted
Setting this to true stops any further possibilities from being generated.

◆ extension_move_to_next_result()

void StackItem::extension_move_to_next_result ( Matrix & _m,
Unifier & _u )

Before you do anything else, set up the first result.

This is necessary because we always want to have the next available, or know that there isn't one.

Definition at line 124 of file StackItem.cpp.

124 {
126 return;
127 }
128 UnificationOutcome outcome = UnificationOutcome::ConflictFail;
129 while (outcome != UnificationOutcome::Succeed &&
132 outcome = _u(extension_neg_lit, _m.inspect_index_literal(extension_i, new_index));
133 if (outcome == UnificationOutcome::Succeed) {
134 const MatrixPairType p = _m.get_index_entry(extension_i, new_index);
135 extension_next_result = InferenceItem(InferenceItemType::Extension,
137 p.first, p.second, extension_i, new_index);
138 _u.backtrack();
139 return;
140 }
141 _u.backtrack();
142 }
144}
const Literal & inspect_index_literal(size_t i, size_t j)
Straightforward get method.
Definition Matrix.hpp:265
MatrixPairType get_index_entry(size_t _i, size_t _j) const
The ExtensionEnumerator needs to know this.
Definition Matrix.hpp:235
void backtrack()
Apply the backtracking process to the substitution that has been constructed.
Definition Unifier.cpp:195
Full representation of inferences, beyond just the name.
size_t extension_current_index_entry
Which possible extension will we consider next?
Literal extension_lit
Literal of interest.
LitNum extension_ind
Index of literal of interest.

◆ extension_restrict_backtrack()

void StackItem::extension_restrict_backtrack ( )
inline

Indicate that we don't want any further possibilities.

Definition at line 250 of file StackItem.hpp.

250 {
252}

◆ get_next_inference()

InferenceItem StackItem::get_next_inference ( Matrix & _m,
Unifier & _u )

Get the next inference to try.

Definition at line 190 of file StackItem.cpp.

190 {
191 InferenceItem result;
192 if (actions.size() > 0) {
193 result = actions.back();
194 actions.pop_back();
195 return result;
196 }
197 if (!reduction_is_empty()) {
198 return next_reduction(_u);
199 }
200 if (!extension_is_empty()) {
201 return next_extension(_m, _u);
202 }
203 return result;
204}
InferenceItem next_extension(Matrix &, Unifier &)
Find the next possible extension or indicate there is none. The state of the object keeps track of wh...
bool reduction_is_empty() const
Have we exhaused all possible reductions?
bool extension_is_empty() const
Have we exhaused all possible extensions?
InferenceItem next_reduction(Unifier &)
Find the next possible reduction or indicate there is none. The state of the object keeps track of wh...
Definition StackItem.cpp:99

◆ initialize()

void StackItem::initialize ( Matrix & _m,
Unifier & _u )

Call this after the constructor but before you want to use the enumeration of possible actions.

Definition at line 164 of file StackItem.cpp.

164 {
166 extension_initialize(_m, _u);
167}
void extension_initialize(Matrix &, Unifier &)
Make sure you do this!
void reduction_initialize(Unifier &)
Make sure you do this!
Definition StackItem.cpp:71

◆ next_extension()

InferenceItem StackItem::next_extension ( Matrix & _m,
Unifier & _u )

Find the next possible extension or indicate there is none. The state of the object keeps track of where we are.

Definition at line 146 of file StackItem.cpp.

146 {
147 // Default constructor makes InferenceItemType::None.
148 InferenceItem result;
150 return result;
151 result = extension_next_result;
153 return result;
154}

◆ next_reduction()

InferenceItem StackItem::next_reduction ( Unifier & _u)

Find the next possible reduction or indicate there is none. The state of the object keeps track of where we are.

Definition at line 99 of file StackItem.cpp.

99 {
100 // Default constructor makes InferenceItemType::None.
101 InferenceItem result;
103 return result;
104 result = reduction_next_result;
106 return result;
107}
bool reduction_backtrack_restricted
Setting this to true stops any further possibilities from being generated.

◆ no_more_inferences()

bool StackItem::no_more_inferences ( )

Is there anything left to do?

Definition at line 186 of file StackItem.cpp.

186 {
187 return actions.empty() && reduction_is_empty() && extension_is_empty();
188}

◆ reduction_initialize()

void StackItem::reduction_initialize ( Unifier & _u)

Make sure you do this!

Definition at line 71 of file StackItem.cpp.

◆ reduction_is_empty()

bool StackItem::reduction_is_empty ( ) const
inline

Have we exhaused all possible reductions?

Definition at line 210 of file StackItem.hpp.

◆ reduction_move_to_next_result()

void StackItem::reduction_move_to_next_result ( Unifier & _u)

Before you do anything else, set up the first result.

This is necessary because we always want to have the next available, or know that there isn't one.

Definition at line 76 of file StackItem.cpp.

76 {
77 // Default constructor makes InferenceItemType::None.
79 return;
80 UnificationOutcome outcome = UnificationOutcome::ConflictFail;
81 while (outcome != UnificationOutcome::Succeed &&
85 continue;
86 }
87 outcome = _u(reduction_neg_lit, lit2);
88 if (outcome == UnificationOutcome::Succeed) {
89 reduction_next_result = InferenceItem(InferenceItemType::Reduction, reduction_lit, reduction_ind,
91 _u.backtrack();
92 return;
93 }
94 _u.backtrack();
95 }
97}
Basic representation of literals, bundling together (pointers to) a Predicate, a collection of argume...
Definition Literal.hpp:50
bool is_compatible_with(const Literal *) const
Literals can only be unified if the polarity and actual predicate are the same.
Definition Literal.cpp:74
const Literal & examine_literal(size_t i) const
Access individual literals.
Substitution get_substitution() const
Trivial get methods for the result.
Definition Unifier.hpp:122
size_t reduction_current_path_index
Which possible reduction will we consider next?
Literal reduction_neg_lit
Negation of literal of interest.
Literal reduction_lit
Literal of interest.
LitNum reduction_ind
Index of literal of interest.
size_t path_length
Length of current path.
Definition StackItem.hpp:74

◆ reduction_restrict_backtrack()

void StackItem::reduction_restrict_backtrack ( )
inline

Indicate that we don't want any further possibilities.

Definition at line 216 of file StackItem.hpp.

216 {
218}

◆ restrict_backtrack()

void StackItem::restrict_backtrack ( )

Adjust the collection of actions to limit backtracking.

Of course, you might want to modify how this works if you want to do something more sophisticated. At present you have the leanCop style.

Definition at line 169 of file StackItem.cpp.

169 {
170 /*
171 * Implement the leanCop style restriction on backtracking.
172 */
173 actions.clear();
176}
void extension_restrict_backtrack()
Indicate that we don't want any further possibilities.
void reduction_restrict_backtrack()
Indicate that we don't want any further possibilities.

◆ set_bt_restriction_index()

void StackItem::set_bt_restriction_index ( size_t i)
inline

Basic set method.

Definition at line 425 of file StackItem.hpp.

425 {
427 }

◆ set_this_action()

void StackItem::set_this_action ( const InferenceItem & inf_i)
inline

Basic set method.

Definition at line 419 of file StackItem.hpp.

419 {
420 this_action = inf_i;
421 }

◆ stack_item_setup()

void StackItem::stack_item_setup ( )

Basic setup collected in a method to avoid repeating it in the various constructors.

Definition at line 51 of file StackItem.cpp.

51 {
56 reduction_ind = 0;
60
69}
Literal get_literal(LitNum) const
Get and return the specified Literal.
Definition Clause.cpp:200
void invert()
Basic manipulation - entirely self-explanatory.
Definition Literal.hpp:107
uint32_t length() const
Straightforward get method.

◆ to_string_unsubbed()

string StackItem::to_string_unsubbed ( ) const

Make a string representation.

Definition at line 206 of file StackItem.cpp.

206 {
207 string result;
208 result += "Stack item: ";
209 switch (item_type) {
210 case StackItemType::Start:
211 result += "Start";
212 break;
213 case StackItemType::Axiom:
214 result += "Axiom";
215 break;
216 case StackItemType::Reduction:
217 result += "Reduction";
218 break;
219 case StackItemType::LeftBranch:
220 result += "Left Branch";
221 break;
222 case StackItemType::RightBranch:
223 result += "Right Branch";
224 break;
225 default:
226 break;
227 }
228 result += " with ";
229 result += to_string(actions.size()) += " options\n";
230 result += "C = ";
231 result += c.to_string() += "\n";
232 result += "P = ";
233 result += p.to_string() += "\n";
234 result += "L = ";
235 result += l.to_string() += "\n";
236 result += "Sub = ";
237 result += sub.to_string() += "\n";
238 result += "Depth: ";
239 result += std::to_string(depth);
240 return result;
241}
string to_string(bool=false) const
Convert to a string.
Definition Clause.cpp:244
string to_string(bool=false) const
Convert to a string.
Definition Lemmata.cpp:82
string to_string(bool=false) const
Convert the path to a string.
string to_string(bool=false) const
Make a string representation.

Member Data Documentation

◆ actions

vector<InferenceItem> StackItem::actions

Actions available to try.

These are all the lemmas that can be used to extend the proof further from this point onward. They are tried in order. Reordering here is an obvious approach to making a heuristic, and deletion corresponds to restriction of backtracking.

At some point, remove this and do it in the same way as reductions and extensions.

Definition at line 96 of file StackItem.hpp.

◆ bt_restriction_index

size_t StackItem::bt_restriction_index

Pointer that allows a right branch to know where to delete alternatives for restricted backtracking.

DO NOT try to do this by storing a pointer to the StackItem. As the vector can have its storage reallocated in the background, you end up with all manner of segfaultyness.

Definition at line 113 of file StackItem.hpp.

◆ c

Clause StackItem::c

Each node in the proof tree is a tuple of clause, matrix, path, lemmata: this is the clause.

Definition at line 65 of file StackItem.hpp.

◆ depth

uint32_t StackItem::depth

How deep in the proof tree are we?

Definition at line 100 of file StackItem.hpp.

◆ extension_backtrack_restricted

bool StackItem::extension_backtrack_restricted

Setting this to true stops any further possibilities from being generated.

Definition at line 180 of file StackItem.hpp.

◆ extension_current_index_entry

size_t StackItem::extension_current_index_entry

Which possible extension will we consider next?

Definition at line 175 of file StackItem.hpp.

◆ extension_i

size_t StackItem::extension_i

Index computed for neg_lit telling us where to find the information we need in the matrix index.

Definition at line 167 of file StackItem.hpp.

◆ extension_ind

LitNum StackItem::extension_ind

Index of literal of interest.

Definition at line 162 of file StackItem.hpp.

◆ extension_index_entry_size

size_t StackItem::extension_index_entry_size

Size of matrix index entry.

Definition at line 171 of file StackItem.hpp.

◆ extension_lit

Literal StackItem::extension_lit

Literal of interest.

Definition at line 154 of file StackItem.hpp.

◆ extension_neg_lit

Literal StackItem::extension_neg_lit

Negation of literal of interest.

Definition at line 158 of file StackItem.hpp.

◆ extension_next_result

InferenceItem StackItem::extension_next_result

We always want to know the next available result, and especially need to try to find it so that we actually know when there are none left.

Definition at line 186 of file StackItem.hpp.

◆ extension_no_more_results

bool StackItem::extension_no_more_results

Make it easy to know when there are no more possibilities.

Definition at line 190 of file StackItem.hpp.

◆ item_type

StackItemType StackItem::item_type

What type of StackItem is this?

Definition at line 60 of file StackItem.hpp.

◆ l

Lemmata StackItem::l

Each node in the proof tree is a tuple of clause, matrix, path, lemmata: this is the lemmata.

Definition at line 79 of file StackItem.hpp.

◆ p

SimplePath StackItem::p

Each node in the proof tree is a tuple of clause, matrix, path, lemmata: this is the path.

Definition at line 70 of file StackItem.hpp.

◆ path_length

size_t StackItem::path_length

Length of current path.

Definition at line 74 of file StackItem.hpp.

◆ reduction_backtrack_restricted

bool StackItem::reduction_backtrack_restricted

Setting this to true stops any further possibilities from being generated.

Definition at line 137 of file StackItem.hpp.

◆ reduction_current_path_index

size_t StackItem::reduction_current_path_index

Which possible reduction will we consider next?

Definition at line 132 of file StackItem.hpp.

◆ reduction_ind

LitNum StackItem::reduction_ind

Index of literal of interest.

Definition at line 128 of file StackItem.hpp.

◆ reduction_lit

Literal StackItem::reduction_lit

Literal of interest.

Definition at line 120 of file StackItem.hpp.

◆ reduction_neg_lit

Literal StackItem::reduction_neg_lit

Negation of literal of interest.

Definition at line 124 of file StackItem.hpp.

◆ reduction_next_result

InferenceItem StackItem::reduction_next_result

We always want to know the next available result, and especially need to try to find it so that we actually know when there are none left.

Definition at line 143 of file StackItem.hpp.

◆ reduction_no_more_results

bool StackItem::reduction_no_more_results

Make it easy to know when there are no more possibilities.

Definition at line 147 of file StackItem.hpp.

◆ sub

Substitution StackItem::sub

Some nodes in the proof tree have an associated substitution.

Definition at line 84 of file StackItem.hpp.

◆ this_action

InferenceItem StackItem::this_action

Action that got you to this clause, path etc.

Definition at line 104 of file StackItem.hpp.


The documentation for this struct was generated from the following files: