Expand description
PredicateInfo and supporting enums — spec §10.9.3.
Five independent assertions the analyzer makes about a predicate:
factorization— how the predicate decomposes by coordinate.monotonicity— per-axis direction of truth.range_constraint— per-axis value-bound implications.determinism— whether the predicate is referentially transparent.coords_referenced— the set of{name}references in the predicate text.
All fields are independent — a predicate may have rich factorization but no monotonicity, etc.
Structs§
- PerAxis
Map - Map keyed by coordinate name. Insertion order preserves declaration order so downstream consumers can iterate per-axis in the comprehension’s tuple-shape order.
- Predicate
Info - Structured analysis output for one predicate.
Enums§
- Const
Value - Constant value used inside
RangeConstraint::Bounded/Discrete. Subset of polydat’sValuesufficient for the initial recognizer catalog. - Determinism
- Whether a predicate is referentially transparent. Same
(predicate, coords)always produces the same boolean. - Factorization
- Per-coordinate decomposition of a predicate.
- Monotonicity
- Per-axis monotonicity direction. “Increasing” means: once
the predicate becomes true for
axis = k, it stays true for allaxis ≥ k. Used by the deferred R10 (monotonic-cutoff truncation). - Opaque
Reason - Why the analyzer marked a predicate
Opaque. Spec §10.9.3. - Range
Constraint - Per-axis value-bound implied by the predicate. Used by the deferred R8 (range-narrowing) and R9 (discrete-set substitution).