use crate::ast::Expr;
#[derive(Debug, Clone)]
pub enum ProofStep {
Assume(Expr),
TheoryLemma(Vec<Expr>, String), Resolution(usize, usize), }
pub struct Proof {
pub steps: Vec<ProofStep>,
}
impl Default for Proof {
fn default() -> Self {
Self::new()
}
}
impl Proof {
pub fn new() -> Self {
Self { steps: Vec::new() }
}
pub fn add_step(&mut self, step: ProofStep) -> usize {
let id = self.steps.len();
self.steps.push(step);
id
}
}
pub mod drat;