pub enum Formula {
Atom(Atomic),
Neg(usize),
Conj(usize, usize),
Disj(usize, usize),
Impl(usize, usize),
Univ(usize, String, usize),
Exist(usize, String, usize),
Comp(usize, String, usize),
}Expand description
Represents a recursive logical formula in the Abstract Syntax Tree (AST).
The structure forms a directed acyclic graph when mapped to FormulaArena.
Variants§
Atom(Atomic)
An atomic proposition.
Neg(usize)
Logical negation of an inner formula.
Conj(usize, usize)
Logical conjunction (AND) of two formulas.
Disj(usize, usize)
Logical disjunction (OR) of two formulas.
Impl(usize, usize)
Logical implication (=>) between two formulas.
Univ(usize, String, usize)
Universal quantification (∀) over a variable name in an inner formula.
Exist(usize, String, usize)
Existential quantification (∃) over a variable name in an inner formula.
Comp(usize, String, usize)
Set comprehension ({x | P(x)}), defining a new set based on a predicate.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Formula
impl<'de> Deserialize<'de> for Formula
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Formula
impl StructuralPartialEq for Formula
Auto Trait Implementations§
impl Freeze for Formula
impl RefUnwindSafe for Formula
impl Send for Formula
impl Sync for Formula
impl Unpin for Formula
impl UnsafeUnpin for Formula
impl UnwindSafe for Formula
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more