Documentation

EconCSLib.SocialChoice.FairDivision.Divisible.Basic

EconCSLib.SocialChoice.FairDivision.Divisible.Basic #

Foundational definitions for divisible goods (cake-cutting) allocation.

Main definitions #

Design #

The "cake" is an abstract type Ω with a MeasurableSpace Ω. This mirrors the indivisible track (where G is an abstract type of goods), with Set Ω playing the role of Finset G.

Allocation is a plain function type alias; the partition predicate IsAllocation is kept separate so that algorithms can manipulate raw allocations before proving correctness. This follows the same separation principle as Allocation / IsAllocation in SocialChoice.FairDivision.Indivisible.Basic.

CakeValuation N Ω V stays value-polymorphic because measure-based valuations naturally take values in ENNReal. The bundled real-valued divisible cardinal interface lives in Divisible.Instance.

MeasureValuation is the standard concrete case where each agent's value for a piece is given by their personal (possibly non-atomic) measure. This corresponds to AdditiveValuation in the indivisible track.

The fairness predicates IsEnvyFree, IsProportional, and IsEquitable are thin specializations of the shared SocialChoice.FairDivision fairness layer to the share type Set Ω.

References #

Fairness predicates #

def SocialChoice.FairDivision.Divisible.IsEnvyFree {N : Type u_1} {Ω : Type u_2} {V : Type u_3} [Preorder V] (μ : CakeValuation N Ω V) (A : Allocation N Ω) :

Envy-free (EF): every agent weakly prefers their own piece over any other agent's piece.

i j, μ_i(A_j) ≤ μ_i(A_i).

For divisible goods with non-atomic measures, EF allocations always exist. This is the key difference from the indivisible setting where EF need not exist.

Equations
Instances For
    def SocialChoice.FairDivision.Divisible.IsProportional {N : Type u_1} {Ω : Type u_2} {V : Type u_3} [Preorder V] [Semiring V] (n : ) (μ : CakeValuation N Ω V) (A : Allocation N Ω) :

    Proportional (PROP): each agent values their piece at least 1 / n of the whole cake.

    Stated as μ_i(Ω) ≤ n * μ_i(A_i) to avoid division.

    Equations
    Instances For
      def SocialChoice.FairDivision.Divisible.IsEquitable {N : Type u_1} {Ω : Type u_2} {V : Type u_3} [Preorder V] (cv : CakeValuation N Ω V) (A : Allocation N Ω) :

      Equitable: every agent assigns exactly the same value to their own piece.

      Equations
      Instances For

        EF implies proportional #

        EF implies proportional for MeasureValuation partitions.