Dimensional aggregation #
A multidimensional predicate applies to an object, or ranks two objects, according to how the objects stand on several underlying dimensions. Two aggregation vocabularies share this file.
Rules, in the value-function framework of [sen-1970] as [DAH24] transposes it
to dimensions: a profile assigns each object its vector of dimensional values, and a rule sends
profiles to an overall relation on the objects, read x ⪰ y. Sen's informational requirements
are invariance under a class of transformation vectors (strictly increasing maps, common-unit
positive affine maps, similarities). Arrow's conditions ([arrow-1950]) and the strong Pareto,
Pareto-indifference and anonymity conditions are predicates on rules. Four classical rules are
stated with the conditions they meet or fail: majority ([may-1952]) meets every Arrow condition
but weak-ordering outputs, which Condorcet's cycle refutes; the Pareto rule ([weymark-1984]) is
a quasi-ordering that leaves every trade-off incomparable; the utilitarian rule meets every
Arrow condition but ordinal invariance, failing even ratio-scale invariance; the Cobb–Douglas
rule ([tsui-weymark-1997]) is ratio-scale invariant on non-negative profiles.
Scores for the positive form: a weighted sum of dimensional measures ([waldon-etal-2023]), its normalisation by the host's spatial extent ([tham-2025], [solt-2018-proportional]), and the multiplicative composition of [sassoon-fadlon-2017].
Implementation notes #
- A rule is total on profiles, so Arrow's unrestricted-domain condition is built in; a domain restriction, such as the non-negative profiles the Cobb–Douglas rule needs, is a hypothesis of the statement.
- Outputs are bare relations, because majority rule is not transitive; a weak-ordering-valued
rule bundles into
Core.Order.TotalPreorder.AsymmRelis the strict part of a relation and mathlib'sAntisymmRelits indifference part.
TODO #
- The scores index dimensions by lists. Restating them over
ι → K, so that the utilitarian rule comparesweightedScores, awaits the cleanse of their consumers.
References #
- [K. J. Arrow, A difficulty in the concept of social welfare (1951)][arrow-1950]
- J. D'Ambrosio and B. Hedden, Multidimensional adjectives (2024)
- [K. O. May, A set of independent necessary and sufficient conditions for simple majority decision (1952)][may-1952]
- [G. W. Sassoon and J. Fadlon, The role of dimensions in classification under predicates predicts their status in degree constructions (2017)][sassoon-fadlon-2017]
- [A. K. Sen, Collective choice and social welfare (1970)][sen-1970]
- [S. Solt, Proportional comparatives and relative scales (2018)][solt-2018-proportional]
- [S. W. Tham, Multidimensionality and the scalar components of physical disturbance predicates (2025)][tham-2025]
- [K.-Y. Tsui and J. A. Weymark, Social welfare orderings for ratio-scale measurable utilities (1997)][tsui-weymark-1997]
- [B. Waldon, C. Condoravdi, B. Levin and J. Degen, On the context dependence of artifact noun interpretation (2023)][waldon-etal-2023]
- [J. A. Weymark, Arrow's theorem with social quasi-orderings (1984)][weymark-1984]
Equations
A profile: each object's vector of values, one per dimension.
Equations
- Degree.Aggregation.Profile ι α K = (α → ι → K)
Instances For
An aggregation rule: a relation on the objects, read x ⪰ y, for each profile.
Equations
- Degree.Aggregation.Rule ι α K = (Degree.Aggregation.Profile ι α K → α → α → Prop)
Instances For
Apply a vector of transformations, one per dimension, to a profile.
Equations
- Degree.Aggregation.Profile.transform f v x i = f i (v x i)
Instances For
Informational invariance #
Invariance of a rule under a class of transformation vectors.
Equations
- Degree.Aggregation.Invariant T a = ∀ f ∈ T, ∀ (v : Degree.Aggregation.Profile ι α K), a (Degree.Aggregation.Profile.transform f v) = a v
Instances For
Vectors of strictly increasing transformations; invariance under them is ordinal non-comparability.
Equations
- Degree.Aggregation.ordinal = {f : ι → K → K | ∀ (i : ι), StrictMono (f i)}
Instances For
Common-unit positive affine transformation vectors; invariance under them is cardinal unit comparability.
Equations
- Degree.Aggregation.cardinalUnit = {f : ι → K → K | ∃ (a : K), 0 < a ∧ ∃ (b : ι → K), ∀ (i : ι) (t : K), f i t = a * t + b i}
Instances For
Similarity transformation vectors; invariance under them is ratio-scale non-comparability.
Equations
- Degree.Aggregation.ratio = {f : ι → K → K | ∃ (a : ι → K), (∀ (i : ι), 0 < a i) ∧ ∀ (i : ι) (t : K), f i t = a i * t}
Instances For
Conditions on rules #
Pareto indifference: objects with the same vector of values are indifferent.
Equations
- Degree.Aggregation.ParetoIndifferent a = ∀ (v : Degree.Aggregation.Profile ι α K) (x y : α), v x = v y → AntisymmRel (a v) x y
Instances For
Independence of irrelevant alternatives: the verdict on a pair depends only on the vectors of that pair.
Equations
- Degree.Aggregation.Independent a = ∀ (v w : Degree.Aggregation.Profile ι α K) (x y : α), v x = w x → v y = w y → (a v x y ↔ a w x y)
Instances For
Every output is transitive.
Equations
- Degree.Aggregation.Transitive a = ∀ (v : Degree.Aggregation.Profile ι α K), IsTrans α (a v)
Instances For
Every output is complete.
Equations
- Degree.Aggregation.Complete a = ∀ (v : Degree.Aggregation.Profile ι α K), Std.Total (a v)
Instances For
Every output is a weak ordering, a complete preorder.
Equations
Instances For
Every output is a quasi-ordering, a preorder.
Equations
- Degree.Aggregation.QuasiOrderValued a = ∀ (v : Degree.Aggregation.Profile ι α K), IsPreorder α (a v)
Instances For
Anonymity: permuting the dimensions leaves the output unchanged.
Equations
- Degree.Aggregation.Anonymous a = ∀ (σ : Equiv.Perm ι) (v : Degree.Aggregation.Profile ι α K), (a fun (x : α) => v x ∘ ⇑σ) = a v
Instances For
The output of a weak-ordering-valued rule at a profile, as a bundled total preorder.
Equations
- h.toTotalPreorder v = { le := a v, isPreorder := ⋯, total := ⋯ }
Instances For
Weak Pareto: an object ranked strictly above another on every dimension is strictly preferred.
Equations
- Degree.Aggregation.WeakPareto a = ∀ (v : Degree.Aggregation.Profile ι α K) (x y : α), (∀ (i : ι), v y i < v x i) → AsymmRel (a v) x y
Instances For
Strong Pareto: an object ranked weakly above another on every dimension is weakly preferred, and strictly so if some dimension ranks it strictly above.
Equations
- Degree.Aggregation.StrongPareto a = ∀ (v : Degree.Aggregation.Profile ι α K) (x y : α), v y ≤ v x → a v x y ∧ ((∃ (i : ι), v y i < v x i) → AsymmRel (a v) x y)
Instances For
Dimension i is a dictator: its strict rankings are the strict overall rankings.
Equations
- Degree.Aggregation.IsDictator a i = ∀ (v : Degree.Aggregation.Profile ι α K) (x y : α), v y i < v x i → AsymmRel (a v) x y
Instances For
No dimension is a dictator.
Equations
- Degree.Aggregation.NonDictatorial a = ∀ (i : ι), ¬Degree.Aggregation.IsDictator a i
Instances For
Majority rule #
Majority rule: x ⪰ y iff at least as many dimensions rank x weakly above y as rank
y weakly above x.
Equations
- Degree.Aggregation.majority v x y = ({i : ι | v x i ≤ v y i}.card ≤ {i : ι | v y i ≤ v x i}.card)
Instances For
Equations
- Degree.Aggregation.instDecidableRelMajority v x✝¹ x✝ = id inferInstance
Condorcet's profile: three dimensions ranking three objects cyclically.
Equations
- Degree.Aggregation.condorcet = ![![2, 0, 1], ![1, 2, 0], ![0, 1, 2]]
Instances For
Majority rule does not output transitive relations.
The Pareto rule #
The Pareto rule: x ⪰ y iff every dimension ranks x weakly above y.
Equations
- Degree.Aggregation.paretoRule v x y = (v y ≤ v x)
Instances For
A trade-off, one dimension ranking x strictly above y and another y above x, is
incomparable under the Pareto rule.
The utilitarian rule #
The utilitarian rule with weights c: x ⪰ y iff the weighted sum of values favours
x.
Equations
- Degree.Aggregation.utilitarian c v x y = (c ⬝ᵥ v y ≤ c ⬝ᵥ v x)
Instances For
With two positive weights the utilitarian rule is not even ratio-scale invariant: rescaling one dimension breaks a tie.
The Cobb–Douglas rule #
The Cobb–Douglas rule with exponents c: x ⪰ y iff the weighted geometric product of
values favours x.
Equations
- Degree.Aggregation.cobbDouglas c v x y = (∏ i : ι, v y i ^ c i ≤ ∏ i : ι, v x i ^ c i)
Instances For
On non-negative profiles the Cobb–Douglas rule is ratio-scale invariant.
Arrow's theorem #
G is decisive: whenever every dimension in G ranks x strictly above y, the rule
ranks x strictly above y.
Equations
- Degree.Aggregation.Decisive a G = ∀ (v : Degree.Aggregation.Profile ι α K) (x y : α), (∀ i ∈ G, v y i < v x i) → AsymmRel (a v) x y
Instances For
G is decisive for the pair x, y.
Equations
- Degree.Aggregation.DecisiveOn a G x y = ∀ (v : Degree.Aggregation.Profile ι α K), (∀ i ∈ G, v y i < v x i) → AsymmRel (a v) x y
Instances For
G is almost decisive for the pair x, y: it prevails when every dimension outside G
ranks y strictly above x.
Equations
- Degree.Aggregation.AlmostDecisiveOn a G x y = ∀ (v : Degree.Aggregation.Profile ι α K), (∀ i ∈ G, v y i < v x i) → (∀ i ∉ G, v x i < v y i) → AsymmRel (a v) x y
Instances For
Under ordinal invariance and independence, the verdict on a pair depends only on how each dimension orders the pair.
Field expansion, first half: a group almost decisive for x, y is decisive for x, z.
Field expansion, second half: a group almost decisive for x, y is decisive for z, y.
Field expansion: with three or more objects, a group almost decisive for one pair is decisive for every pair.
Group contraction: a decisive group with two or more dimensions has a decisive proper subgroup.
Arrow's theorem: with three or more objects, a rule that is ordinally invariant, outputs weak orderings, respects weak Pareto and is independent has a dictator.
Arrow's theorem as an impossibility: no rule meets all of Arrow's conditions.
Scores for the positive form #
Lift Bool dimension predicates to K-valued measure functions.
Each d : α → Bool becomes λ x => if d x then 1 else 0.
Equations
- Degree.Aggregation.boolMeasures dims = List.map (fun (d : α → Bool) (x : α) => if d x = true then 1 else 0) dims
Instances For
Weighted score: Σᵢ wᵢ · fᵢ(x), where each fᵢ : α → K is a measure function along one dimension ([waldon-etal-2023]'s eq. (8)).
Equations
- Degree.Aggregation.weightedScore weights measures x = List.foldl (fun (acc : K) (x_1 : K × (α → K)) => match x_1 with | (w, f) => acc + w * f x) 0 (weights.zip measures)
Instances For
Spatially-normalized weighted score: (Σᵢ wᵢ·fᵢ(x)) / s(x).
[tham-2025] eq. 47b for physical disturbance adjectives. The
measures track per-dimension EXTENT of disturbance (e.g., total
crack length, depth-weighted area); the spatial measure tracks the
host entity's SPATIAL EXTENT. A small disturbance on a small host can
score the same as a large disturbance on a large host — boundedness
of the scale comes from the denominator, not from any single
dimension. Returns 0 when spatial x = 0 (avoiding division by
zero); callers should ensure spatial x ≠ 0 for meaningful results.
Equations
- Degree.Aggregation.spatialNormalizedScore weights measures spatial x = if spatial x = 0 then 0 else Degree.Aggregation.weightedScore weights measures x / spatial x
Instances For
Spatially-normalized weighted binding (Bool dimensions): x is F iff its spatially-normalized weighted score over Bool-lifted measures exceeds threshold θ.
Equations
- Degree.Aggregation.spatialNormalizedBinding weights θ dims spatial x = decide (Degree.Aggregation.spatialNormalizedScore weights (Degree.Aggregation.boolMeasures dims) spatial x ≥ θ)
Instances For
The spatial-normalization reduces to plain weighted score when
spatial x = 1 (constant unit host extent).
Spatial normalisation at a zero-extent host returns 0: a host with no spatial extent exhibits no disturbance.
A weighted score bounded by the host's spatial extent normalises to at most 1: [tham-2025]'s boundedness from spatial extent.
A nonnegative weighted score over a nonnegative extent normalises to a nonnegative score;
with spatialNormalizedScore_le_one it lies in [0, 1], the fraction of the totality of
[tham-2025] and [solt-2018-proportional].
Multiplicative (Cobb-Douglas) score: Πᵢ fᵢ(x).
[sassoon-fadlon-2017] argue natural kind nouns compose
multiplicatively: failure on ANY single dimension kills membership.
Contrast with additive weightedScore for artifact nouns.
Equations
- Degree.Aggregation.multiplicativeScore measures x = List.foldl (fun (acc : K) (f : α → K) => acc * f x) 1 measures