Skip to main content

Module info

Module info 

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

PerAxisMap
Map keyed by coordinate name. Insertion order preserves declaration order so downstream consumers can iterate per-axis in the comprehension’s tuple-shape order.
PredicateInfo
Structured analysis output for one predicate.

Enums§

ConstValue
Constant value used inside RangeConstraint::Bounded / Discrete. Subset of polydat’s Value sufficient 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 all axis ≥ k. Used by the deferred R10 (monotonic-cutoff truncation).
OpaqueReason
Why the analyzer marked a predicate Opaque. Spec §10.9.3.
RangeConstraint
Per-axis value-bound implied by the predicate. Used by the deferred R8 (range-narrowing) and R9 (discrete-set substitution).