Documentation

EconCSLib.SocialChoice.FairDivision.Indivisible.Checker

EconCSLib.SocialChoice.FairDivision.Indivisible.Checker #

Noncomputable Bool-valued reflection helpers for indivisible-goods fairness predicates.

For finite instances (finite agents and finite goods), these definitions package each fairness predicate as a Boolean together with a correctness theorem (iff). They are noncomputable because valuations are real-valued; they are not intended for #eval or native_decide.

Main definitions #

Main results #

Typeclass requirements #

References #

Envy-freeness reflection #

noncomputable def SocialChoice.FairDivision.Indivisible.isEnvyFree {N : Type u_1} {G : Type u_2} [Fintype N] (v : Valuation N G) (A : Allocation N G) :

Noncomputable envy-free Boolean reflection helper. Returns true iff A is envy-free under valuation v.

Equations
Instances For

    The envy-free checker is sound and complete.

    EF1 reflection #

    noncomputable def SocialChoice.FairDivision.Indivisible.isEF1 {N : Type u_1} {G : Type u_2} [Fintype N] [DecidableEq N] [DecidableEq G] (v : Valuation N G) (A : Allocation N G) :

    Noncomputable EF1 Boolean reflection helper. Returns true iff A is envy-free up to one good under valuation v.

    Equations
    Instances For
      theorem SocialChoice.FairDivision.Indivisible.isEF1_iff {N : Type u_1} {G : Type u_2} [Fintype N] [DecidableEq N] [DecidableEq G] (v : Valuation N G) (A : Allocation N G) :
      isEF1 v A = true IsEF1 v A

      The EF1 checker is sound and complete.

      EFX reflection #

      noncomputable def SocialChoice.FairDivision.Indivisible.isEFX {N : Type u_1} {G : Type u_2} [Fintype N] [DecidableEq N] [DecidableEq G] (v : Valuation N G) (A : Allocation N G) :

      Noncomputable EFX Boolean reflection helper. Returns true iff A is envy-free up to any good under valuation v.

      Equations
      Instances For
        theorem SocialChoice.FairDivision.Indivisible.isEFX_iff {N : Type u_1} {G : Type u_2} [Fintype N] [DecidableEq N] [DecidableEq G] (v : Valuation N G) (A : Allocation N G) :
        isEFX v A = true IsEFX v A

        The EFX checker is sound and complete.

        Proportionality reflection #

        noncomputable def SocialChoice.FairDivision.Indivisible.isProportional {N : Type u_1} {G : Type u_2} [Fintype N] (n : ) (v : Valuation N G) (allGoods : Finset G) (A : Allocation N G) :

        Noncomputable proportionality Boolean reflection helper for n agents. Returns true iff every agent's bundle value is ≥ 1/n of the total.

        The value codomain is fixed to , so this is noncomputable.

        Equations
        Instances For
          theorem SocialChoice.FairDivision.Indivisible.isProportional_iff {N : Type u_1} {G : Type u_2} [Fintype N] (n : ) (v : Valuation N G) (allGoods : Finset G) (A : Allocation N G) :
          isProportional n v allGoods A = true IsProportional n v allGoods A

          The proportionality checker is sound and complete.