pub enum ProofRule {
Show 19 variants
Conjunction,
DisjunctionCheck {
detail: String,
},
DisjunctionIntro {
side: String,
},
Negation,
ModalPassthrough {
kind: String,
},
ExistsWitness {
var: String,
term: LogicalTerm,
},
ExistsFailed,
ForallVacuous,
ForallVerified {
entities: Vec<LogicalTerm>,
},
ForallCounterexample {
entity: LogicalTerm,
},
CountResult {
expected: u32,
actual: u32,
},
PredicateCheck {
method: String,
detail: String,
},
ComputeCheck {
method: String,
detail: String,
},
Asserted {
fact: String,
},
Derived {
label: String,
fact: String,
},
ProofRef {
fact: String,
},
EqualitySubstitution {
original: String,
equality_facts: String,
substituted: String,
},
RuleAttemptFailed {
rule_label: String,
failed_condition: String,
},
PredicateNotFound {
predicate: String,
},
}Expand description
Proof rule applied at a single proof step.
This IS the serde wire type (named fields, #[serde(tag = "type")]): the same
type crosses every native boundary (nibli-reason → nibli-engine/nibli-wasm → JSON →
nibli-ui). nibli-protocol re-exports it and owns only the JSON helpers; the WIT
boundary (nibli-pipeline/nibli-host) keeps its generated tuple-shaped mirror by necessity.
The serde attributes are the JSON contract — do not rename a field or tag.
Variants§
Conjunction
DisjunctionCheck
DisjunctionIntro
Negation
ModalPassthrough
ExistsWitness
ExistsFailed
ForallVacuous
ForallVerified
Fields
§
entities: Vec<LogicalTerm>ForallCounterexample
Fields
§
entity: LogicalTermCountResult
PredicateCheck
ComputeCheck
Asserted
Derived
ProofRef
EqualitySubstitution
Equality substitution: fact proved by substituting equivalent terms. Fields: original fact, equality facts used, substituted fact that was found.
RuleAttemptFailed
Rule was tried but a condition failed.
PredicateNotFound
Predicate not found in fact store and no rule could derive it.
Trait Implementations§
impl StructuralPartialEq for ProofRule
Auto Trait Implementations§
impl Freeze for ProofRule
impl RefUnwindSafe for ProofRule
impl Send for ProofRule
impl Sync for ProofRule
impl Unpin for ProofRule
impl UnsafeUnpin for ProofRule
impl UnwindSafe for ProofRule
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