25#ifndef SUBSTITUTIONSTACK_HPP
26#define SUBSTITUTIONSTACK_HPP
30#include "Substitution.hpp"
General representation of a substitution.
As you build a proof you make substitutions that apply to the entire proof: if you backtrack during t...
void backtrack()
Remove variables from the stack, and remove substitutions as you go, as far back as the most recent b...
SubstitutionStack(const SubstitutionStack &)=delete
As usual, you really don't want to be messing with this kind of thing, so let the compiler find your ...
void clear()
Reset everything.
void push_all(Substitution &)
Take all the substitutions provided and add the corresponding variables to the stack.
vector< size_t > backtrack_points
Indexes on the stack that can be backtracked to.
SubstitutionStack()
If you need a different initialization, you're probably doing something wrong.
vector< Variable * > stack
Stack of pointers to Variables that have been substituted.
size_t next_index
Self-explanatory.