43 lines
645 B
Rust
43 lines
645 B
Rust
#[derive(Clone, Copy, Eq, Hash, PartialEq)]
|
|
pub enum ProofDirection
|
|
{
|
|
Forward,
|
|
Backward,
|
|
}
|
|
|
|
#[derive(Eq, Hash, PartialEq)]
|
|
pub enum CompletionTarget
|
|
{
|
|
Predicate(foliage::PredicateDeclaration),
|
|
Constraint,
|
|
}
|
|
|
|
#[derive(Eq, Hash, PartialEq)]
|
|
pub enum FormulaStatementKind
|
|
{
|
|
Axiom,
|
|
Completion(CompletionTarget),
|
|
Lemma(Option<ProofDirection>),
|
|
Assumption,
|
|
Assertion,
|
|
}
|
|
|
|
pub struct FormulaStatement
|
|
{
|
|
pub kind: FormulaStatementKind,
|
|
pub original_text: String,
|
|
pub formula: foliage::Formula,
|
|
pub proven: bool,
|
|
}
|
|
|
|
pub enum Block
|
|
{
|
|
FormulaStatement(FormulaStatement),
|
|
Whitespace(String),
|
|
}
|
|
|
|
pub struct Project
|
|
{
|
|
pub blocks: Vec<Block>,
|
|
}
|