/*#[derive(Clone, Copy, Eq, Hash, PartialEq)] pub enum ProofDirection { Forward, Backward, } #[derive(Eq, Hash, PartialEq)] pub enum CompletionTarget { Predicate(std::rc::Rc), Constraint, } pub struct CompletionFormula { pub target: CompletionTarget, pub formula: foliage::Formula, } pub struct Lemma { pub direction: Option, pub formula: foliage::Formula, } pub struct Specification { pub axioms: foliage::Formulas, pub lemmas: Vec, pub assumptions: foliage::Formulas, pub assertions: foliage::Formulas, pub input_constants: foliage::FunctionDeclarations, pub input_predicates: foliage::PredicateDeclarations, }*/