Skip to main content

PathCondition

Type Alias PathCondition 

Source
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

§marker: String

Stable description of the expression shape that could not be lowered.

§paths: BTreeSet<String>

Values paths mentioned by the unlowerable expression.

§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.