use crate::{
db::ClauseKey,
structures::{atom::Atom, literal::abLiteral},
};
#[derive(Clone)]
pub enum Delta {
BCP(self::BCP),
Resolution(self::Resolution),
ClauseDB(self::ClauseDB),
LiteralDB(self::LiteralDB),
AtomDB(self::AtomDB),
}
#[derive(Clone)]
pub enum BCP {
Conflict {
literal: abLiteral,
clause: ClauseKey,
},
Instance {
clause: ClauseKey,
literal: abLiteral,
},
}
#[derive(Clone)]
pub enum ClauseBuider {
Start,
End,
Literal(abLiteral),
}
#[derive(Clone)]
pub enum Resolution {
Begin,
End,
Subsumed(ClauseKey, abLiteral),
Used(ClauseKey),
}
#[derive(Clone)]
pub enum ClauseDB {
BCP(ClauseKey),
Deletion(ClauseKey),
Transfer(ClauseKey, ClauseKey),
Original(ClauseKey),
ClauseStart,
ClauseLiteral(abLiteral),
Added(ClauseKey),
}
#[derive(Clone)]
pub enum LiteralDB {}
#[derive(Clone)]
pub enum AtomDB {
ExternalRepresentation(String),
Internalised(Atom),
Unsatisfiable(ClauseKey),
}