Feature-Pullback Preorders #
A FeaturePreorder Carrier Feature is a Preorder Carrier realized as the
pullback of a Preorder Feature through feature : Carrier → Feature. The
induced order is a ≤ a' ↔ feature a ≤ feature a'.
This is mathlib's Preorder.lift packaged with the witnessing feature
data and decidability of ≤. It is the common pattern behind several
constructions in linglib:
Core.Order.SatisfactionOrdering α Criterion— feature is the satisfied criterion set, feature space is(Finset Criterion)ᵒᵈ(or equivalently, the violated set with standard ⊆).Core.Constraint.ConstraintSystem.paretoFeaturePreorder— feature is the score vector, feature space isProfile β nwith pointwise ≤.Semantics.Modality.Kratzer.worldOrdering— feature is the satisfied proposition set, same shape asSatisfactionOrdering.
The reusable theorem #
coarsen_via_monotone states that a monotone map φ : F1 → F2 between
feature spaces lifts dominance under the finer feature to dominance under
the coarser feature, provided f2 = φ ∘ f1. This is the schema underlying
"Pareto-on-violations ⇒ Pareto-on-satisfaction" and any other forgetful
coarsening between qualitatively-comparable representations.
A preorder on Carrier realized as the pullback of a Preorder Feature
through feature : Carrier → Feature.
extends Preorder Carrier, so all of mathlib's order vocabulary
(≤, <, Maximal, IsMax) is available; feature/decLE expose
the construction data. le_iff_feature is the load-bearing coherence
field — the bundled ≤ agrees with the feature pullback.
- feature : Carrier → Feature
- decLE (a a' : Carrier) : Decidable (a ≤ a')
Instances For
Equations
- o.instDecidableLe a a' = o.decLE a a'
Smart constructor: build a FeaturePreorder from a feature map plus
decidability of feature comparison. The induced ≤ is Preorder.lift,
so le_iff_feature is Iff.rfl.
Equations
- Core.Order.FeaturePreorder.ofFeature feature dec = { toPreorder := Preorder.lift feature, feature := feature, decLE := dec, le_iff_feature := ⋯ }
Instances For
Change of feature space (coarsening).
Given two FeaturePreorders on the same carrier with feature maps
o1.feature : Carrier → F1 and o2.feature : Carrier → F2, plus a
monotone map φ : F1 → F2 such that o2.feature = φ ∘ o1.feature,
dominance under o1 implies dominance under o2.
The converse generally fails: collapsing the feature space discards
information. This is the schema behind every "qualitative coarsening"
bridge — e.g. pointwise-Pareto-on-violations ⇒ subset-of-satisfied
in Core/Constraint/Pareto.lean.