Documentation

EconCSLib.Foundation.Utility.Lottery

EconCSLib.Foundation.Utility.Lottery #

Lotteries (probability distributions over finite outcome sets) and their algebraic properties. A lottery is an element of stdSimplex ๐•œ O โ€” a non-negative function summing to 1.

This module provides game-theory-specific vocabulary on top of Mathlib's stdSimplex, including convex combinations (compound lotteries) and expected value.

Main definitions #

Main results #

References #

Lottery type #

@[reducible, inline]
abbrev Lottery (๐•œ : Type u_2) (O : Type u_3) [Semiring ๐•œ] [PartialOrder ๐•œ] [Fintype O] :
Set (O โ†’ ๐•œ)

A lottery over outcomes O: a probability distribution. Just stdSimplex ๐•œ O with a game-theoretic name.

Equations
Instances For

    Constructors #

    Lottery is a thin domain-flavored shell over stdSimplex. The constructors below are definitional aliases of the Core operations:

    so existing call sites and KB references continue resolving unchanged.

    @[reducible, inline]
    abbrev Lottery.pure {๐•œ : Type u_1} [Field ๐•œ] [LinearOrder ๐•œ] [IsStrictOrderedRing ๐•œ] {O : Type u_2} [Fintype O] [DecidableEq O] (oโ‚€ : O) :
    โ†‘(Lottery ๐•œ O)

    A pure (degenerate) lottery: outcome oโ‚€ with probability 1. Alias of stdSimplex.pure.

    Equations
    Instances For
      @[reducible, inline]
      abbrev Lottery.mix {๐•œ : Type u_1} [Field ๐•œ] [LinearOrder ๐•œ] [IsStrictOrderedRing ๐•œ] {O : Type u_2} [Fintype O] (ฮฑ : ๐•œ) (hฮฑโ‚€ : 0 โ‰ค ฮฑ) (hฮฑโ‚ : ฮฑ โ‰ค 1) (Lโ‚ Lโ‚‚ : โ†‘(Lottery ๐•œ O)) :
      โ†‘(Lottery ๐•œ O)

      Convex combination of two lotteries: the compound lottery [ฮฑ(Lโ‚), (1-ฮฑ)(Lโ‚‚)] after simplification. [MSZ Axiom 2.16]

      Alias of stdSimplex.mix: mix ฮฑ Lโ‚ Lโ‚‚ = ฮฑ ยท Lโ‚ + (1-ฮฑ) ยท Lโ‚‚ pointwise.

      Equations
      • Lottery.mix ฮฑ hฮฑโ‚€ hฮฑโ‚ Lโ‚ Lโ‚‚ = stdSimplex.mix ฮฑ hฮฑโ‚€ hฮฑโ‚ Lโ‚ Lโ‚‚
      Instances For

        Expected value #

        @[reducible, inline]
        abbrev Lottery.expectedValue {๐•œ : Type u_1} [Field ๐•œ] [LinearOrder ๐•œ] {O : Type u_2} [Fintype O] (L : โ†‘(Lottery ๐•œ O)) (f : O โ†’ ๐•œ) :
        ๐•œ

        Expected value of f under lottery L: E_L[f] = โˆ‘ o, L(o) ยท f(o).

        Alias of wsum from Math.Simplex.

        Equations
        Instances For

          Properties #

          All four properties below are thin wrappers around the simplex lemmas (wsum_pure_apply, wsum_mix, wsum_le_wsum, wsum_const).

          theorem Lottery.expectedValue_pure {๐•œ : Type u_1} [Field ๐•œ] [LinearOrder ๐•œ] [IsStrictOrderedRing ๐•œ] {O : Type u_2} [Fintype O] [DecidableEq O] (oโ‚€ : O) (f : O โ†’ ๐•œ) :
          expectedValue (pure oโ‚€) f = f oโ‚€

          Expected value of a pure lottery equals the outcome value.

          theorem Lottery.expectedValue_mix {๐•œ : Type u_1} [Field ๐•œ] [LinearOrder ๐•œ] [IsStrictOrderedRing ๐•œ] {O : Type u_2} [Fintype O] (ฮฑ : ๐•œ) (hฮฑโ‚€ : 0 โ‰ค ฮฑ) (hฮฑโ‚ : ฮฑ โ‰ค 1) (Lโ‚ Lโ‚‚ : โ†‘(Lottery ๐•œ O)) (f : O โ†’ ๐•œ) :
          expectedValue (mix ฮฑ hฮฑโ‚€ hฮฑโ‚ Lโ‚ Lโ‚‚) f = ฮฑ * expectedValue Lโ‚ f + (1 - ฮฑ) * expectedValue Lโ‚‚ f

          Linearity of expected value under convex combination. E[mix ฮฑ Lโ‚ Lโ‚‚] = ฮฑ ยท E[Lโ‚] + (1-ฮฑ) ยท E[Lโ‚‚]

          This is the key property corresponding to [MSZ Axiom 2.16] (simplification of compound lotteries).

          theorem Lottery.expectedValue_mono {๐•œ : Type u_1} [Field ๐•œ] [LinearOrder ๐•œ] [IsStrictOrderedRing ๐•œ] {O : Type u_2} [Fintype O] {L : โ†‘(Lottery ๐•œ O)} {f g : O โ†’ ๐•œ} (h : โˆ€ (o : O), f o โ‰ค g o) :

          Expected value is monotone: if f โ‰ค g pointwise, then E[f] โ‰ค E[g].

          theorem Lottery.expectedValue_const {๐•œ : Type u_1} [Field ๐•œ] [LinearOrder ๐•œ] [IsStrictOrderedRing ๐•œ] {O : Type u_2} [Fintype O] (L : โ†‘(Lottery ๐•œ O)) (c : ๐•œ) :
          (expectedValue L fun (x : O) => c) = c

          Expected value of a constant is the constant.

          Linear utility #

          def IsLinearUtility {๐•œ : Type u_1} [Field ๐•œ] [LinearOrder ๐•œ] [IsStrictOrderedRing ๐•œ] {O : Type u_2} [Fintype O] (u : โ†‘(Lottery ๐•œ O) โ†’ ๐•œ) :

          A utility function u is linear (in the vNM sense) if it respects compound lottery simplification: u([ฮฑ(Lโ‚), (1-ฮฑ)(Lโ‚‚)]) = ฮฑ ยท u(Lโ‚) + (1-ฮฑ) ยท u(Lโ‚‚).

          Equivalently, u(L) = E_L[u โˆ˜ outcome] for some function on outcomes. [MSZ Definition 2.10]

          Equations
          • IsLinearUtility u = โˆ€ (ฮฑ : ๐•œ) (hฮฑโ‚€ : 0 โ‰ค ฮฑ) (hฮฑโ‚ : ฮฑ โ‰ค 1) (Lโ‚ Lโ‚‚ : โ†‘(Lottery ๐•œ O)), u (Lottery.mix ฮฑ hฮฑโ‚€ hฮฑโ‚ Lโ‚ Lโ‚‚) = ฮฑ * u Lโ‚ + (1 - ฮฑ) * u Lโ‚‚
          Instances For
            theorem expectedValue_isLinearUtility {๐•œ : Type u_1} [Field ๐•œ] [LinearOrder ๐•œ] [IsStrictOrderedRing ๐•œ] {O : Type u_2} [Fintype O] (f : O โ†’ ๐•œ) :
            IsLinearUtility fun (L : โ†‘(Lottery ๐•œ O)) => Lottery.expectedValue L f

            Expected value (with respect to a fixed payoff function) is a linear utility.