EconCSLib.Foundation.Preference #
Abstract interfaces for agent preferences, shared across the library.
Mathlib already provides Preorder (reflexive + transitive) and
LinearOrder (total + antisymmetric + decidable). This file adds
domain-specific vocabulary on top, without fixing a specific representation.
The library uses two complementary interfaces:
- ambient order instances such as
[TotalPreorder A]when a type carries one relevant preference order, for example a payoff type; - bundled preferences
Pref Awhen several agents may rank the same outcome type differently.
Design #
- Weak preference
a ≿ b= Mathlib'sa ≤ bon aPreorder - Strict preference
a ≻ b= Mathlib'sa < b=a ≤ b ∧ ¬(b ≤ a) - Indifference
a ∼ b=a ≤ b ∧ b ≤ a(need not implya = bwithout antisymmetry) - For social choice (ordinal strict preferences): use
LinearOrder - For utility theory (allowing indifference): use
Preorder+IsTotal
Main definitions #
Indifferent—a ∼ biffa ≤ b ∧ b ≤ aStrictlyPreferred—a ≻ biffa < b(alias for readability)TotalPreorder— a preorder where≤is total (no antisymmetry required)Pref— a bundled total preorder, for agent-indexed preferencesRepresentsPreference— utility functionurepresents preference≤
References #
- [MSZ] Maschler, Solan, Zamir, Game Theory, Chapter 2, Definitions 2.1–2.7
Relation-level vocabulary #
Derived strict preference is transitive when the weak relation is transitive.
Indifference and strict preference #
Indifference is reflexive.
Indifference is symmetric.
Indifference is transitive.
Strict preference is just < from the preorder. [MSZ 2.5]
Equations
- StrictlyPreferred a b = (a < b)
Instances For
Strict preference is asymmetric: a ≻ b → ¬(b ≻ a). [MSZ Ex 2.1(a)]
Strict preference is transitive. [MSZ Ex 2.1(a)]
Strict preference is irreflexive. [MSZ Ex 2.1(a)]
Total preorder #
A total preorder: a preorder where ≤ is total (complete).
This is weaker than LinearOrder — it does NOT require antisymmetry
or decidable equality. Two distinct elements can be indifferent.
This is the appropriate notion for weak preferences in utility theory and matching theory. [MSZ 2.1–2.4]
Instances
In a total preorder, any two elements are comparable.
Every LinearOrder is a TotalPreorder.
Equations
- LinearOrder.toTotalPreorder = { toPreorder := inst✝.toPreorder, le_total := ⋯ }
Bundled preferences #
A weak preference relation is admissible if it is reflexive, transitive, and total.
- reflexive : Reflexive R
- transitive : Transitive R
Instances
A bundled weak preference relation.
Use this interface when several agents may rank the same outcome type
differently. Use [TotalPreorder A] when the outcome type carries one
relevant ambient preference order.
- rel : A → A → Prop
- prop : IsPreference self.rel
Instances For
Bundle an explicit total preorder as a preference.
Equations
- Pref.ofTotalPreorder r = { rel := fun (a b : A) => a ≤ b, prop := ⋯ }
Instances For
Bundle an explicit linear order as a preference.
Equations
- Pref.ofLinearOrder r = { rel := fun (a b : A) => a ≤ b, prop := ⋯ }
Instances For
A preference profile assigns each agent a bundled preference.
Equations
- PrefProfile N A = (N → Pref A)
Instances For
Utility representation #
A utility representation preserves strict preference.
A utility representation preserves indifference.
Preference relation axioms (vNM) #
General axioms for preference relations, stated for an arbitrary binary relation.
Lottery-specific axioms (Independence, Continuity) are in Utility.VNMAxioms.
Completeness: every pair is comparable.
Equations
- VNM.Completeness pref = ∀ (a b : A), pref a b ∨ pref b a
Instances For
Transitivity: preference chains compose.
Equations
- VNM.Transitivity pref = ∀ (a b c : A), pref a b → pref b c → pref a c