pub type PathCondition = Predicate;Expand description
The condition under which a guarded arm materializes.
This is exactly the existing typed predicate lattice; the fragment domain deliberately introduces no parallel guard representation.
Aliased Type§
pub enum PathCondition {
True,
False,
Approximate {
marker: String,
paths: BTreeSet<String>,
sound_subset: Vec<Guard>,
},
Guard(Guard),
Not(Box<Predicate>),
And(Vec<Predicate>),
Or(Vec<Predicate>),
}Variants§
True
Formula that holds for every input.
False
Formula that holds for no input.
Approximate
A control condition whose exact relation could not be lowered.
The paths remain available for diagnostics and conservative attribution, but consumers must not turn this marker into a narrowing schema condition.
Fields
sound_subset: Vec<Guard>Guards whose conjunction IMPLIES the real condition (a sound subset). Usable only in POSITIVE polarity where firing less often is safe — a fail-arm’s outer condition — never through a negation, which would invert the containment. Empty when no bounded strengthening was recognized.
Guard(Guard)
Exactly lowerable atomic guard.
Not(Box<Predicate>)
Logical negation of a predicate.
And(Vec<Predicate>)
Conjunction of every enclosed predicate.
Or(Vec<Predicate>)
Disjunction of the enclosed predicates.