DetermFootprint — LEGACY deterministic range theory (quarantined) #
Deprecated / quarantined. The deterministic (
Function.End-based) lens-range theory, superseded byFootprint(sub-probability kernels — countability-free, self-range holds). Retained only forCounterExamplesand not-yet-migrated consumers. New code: useFootprint.
- updates : Set (Function.End m)
- double_commutant : (Submonoid.centralizer (Submonoid.centralizer self.updates).carrier).carrier = self.updates
Instances For
Equations
- instComplDetermFootprint = { compl := fun (range : DetermFootprint m) => { updates := (Submonoid.centralizer range.updates).carrier, id := ⋯, comp := ⋯, double_commutant := ⋯ } }
Equations
Instances For
Equations
- DetermFootprint.from generators = { updates := ↑(Submonoid.centralizer (Submonoid.centralizer generators).carrier), id := ⋯, comp := ⋯, double_commutant := ⋯ }
Instances For
Equations
- instPartialOrderDetermFootprint = { le := fun (x y : DetermFootprint m) => x.updates ≤ y.updates, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯, le_antisymm := ⋯ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- instBoundedOrderDetermFootprint = { top := { updates := ⊤, id := ⋯, comp := ⋯, double_commutant := ⋯ }, le_top := ⋯, bot := DetermFootprint.from ∅, bot_le := ⋯ }
Disjoint lenses have ranges contained in each other's complements: if
disjoint v L, then every v-update lives in L.compl.range.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Orbits and the global getter #
The R-orbit equivalence on m: s ~ s' iff one is reachable from the other via
R-updates (the equivalence closure of the directed orbit relation, since R is a
monoid not a group).
Equations
- R.orbit_setoid = { r := Relation.EqvGen fun (s s' : m) => ∃ f ∈ R.updates, f s = s', iseqv := ⋯ }
Instances For
The "global getter" of a DetermFootprint: the quotient projection onto orbit-classes.
Reading: two states give the same getter value iff they are in the same R-orbit.
For a lens-derived range R = l.range, two states are in the same R-orbit iff they
differ only in l's content — so this getter encodes the complement of l.
Convention: glob A is typically "what A touches", i.e. the commutant's orbits,
so one writes glob A := A.range.commutant.global_getter (commutant = Rᶜ).
Equivalently glob A := A.rangeᶜ.global_getter.
Equations
- R.global_getter = { get := Quotient.mk R.orbit_setoid }
Instances For
The "touched" getter: the same construction applied to the commutant.
For a lens-derived range R = l.range, this is isomorphic to l.toGetter.