Documentation

Gametheory.Brouwer_product

noncomputable def total_card {I : Type u_1} [Fintype I] [Inhabited I] (card : Iℕ+) :

Total number of coordinates: the sum of card i over all i.

Equations
Instances For
    @[reducible, inline]
    abbrev BigSimplex {I : Type u_1} [Fintype I] [Inhabited I] (card : Iℕ+) :
    Set (Fin (total_card card))

    The big simplex on total_card card coordinates.

    Equations
    Instances For
      @[reducible, inline]
      abbrev ProductSimplices {I : Type u_1} (card : Iℕ+) :
      Type u_1

      The product of simplices indexed by I.

      Equations
      Instances For
        noncomputable def prefix_sum {I : Type u_1} [Fintype I] [LinearOrder I] (card : Iℕ+) (i : I) :

        Cumulative sum of card over indices strictly less than i.

        Equations
        Instances For
          theorem index_split_existence {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (k : Fin (total_card card)) :
          ∃ (p : (i : I) × Fin (card i)), prefix_sum card p.fst k k < prefix_sum card p.fst + (card p.fst) p.snd = k - prefix_sum card p.fst

          A flat index k belongs to a unique block i with an in-block index j.

          noncomputable def index_split {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (k : Fin (total_card card)) :
          (i : I) × Fin (card i)

          Split a flat index k into its block/index pair (i, j).

          Equations
          Instances For
            theorem index_split_spec {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (k : Fin (total_card card)) :
            have p := index_split card k; prefix_sum card p.fst k k < prefix_sum card p.fst + (card p.fst) p.snd = k - prefix_sum card p.fst

            Specification of index_split: bounds and value relation for (i, j).

            noncomputable def index_combine {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (p : (i : I) × Fin (card i)) :
            Fin (total_card card)

            Combine a block/index pair (i, j) back into a flat index.

            Equations
            Instances For
              theorem index_split_combine_inverse {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (p : (i : I) × Fin (card i)) :
              index_split card (index_combine card p) = p

              index_split is a left inverse to index_combine.

              theorem index_combine_split_inverse {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (k : Fin (total_card card)) :
              index_combine card (index_split card k) = k

              index_combine is a left inverse to index_split.

              noncomputable def blockWeight {I : Type u_1} [Fintype I] [Inhabited I] (card : Iℕ+) (i : I) :

              Weight (size fraction) of block i: (card i) / (total_card card).

              Equations
              Instances For
                noncomputable def blockSum {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (i : I) (x : (BigSimplex card)) :

                Sum of coordinates of x over the block i.

                Equations
                Instances For
                  noncomputable def uniformProduct {I : Type u_1} (card : Iℕ+) :

                  The uniform point in each block simplex.

                  Equations
                  Instances For
                    noncomputable def z_uniform {I : Type u_1} [Fintype I] [Inhabited I] (card : Iℕ+) :
                    (BigSimplex card)

                    The uniform point in the big simplex.

                    Equations
                    Instances For
                      noncomputable def deficit {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (x : (BigSimplex card)) :

                      Total positive shortfall of block sums relative to block weights.

                      Equations
                      Instances For
                        noncomputable def tPush {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (x : (BigSimplex card)) :

                        Amount to push x toward z_uniform (always in [0, 1]).

                        Equations
                        Instances For
                          noncomputable def pushTowardsZ {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (x : (BigSimplex card)) :
                          (BigSimplex card)

                          Convex push of x toward z_uniform by amount tPush.

                          Equations
                          Instances For
                            noncomputable def project_to_product {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (x : (BigSimplex card)) :

                            Retraction from the big simplex to the product of simplices.

                            Equations
                            Instances For
                              noncomputable def embed_from_product {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (y : ProductSimplices card) :
                              (BigSimplex card)

                              Embedding of the product of simplices into the big simplex.

                              Equations
                              Instances For
                                theorem blockWeight_pos {I : Type u_1} [Fintype I] [Inhabited I] (card : Iℕ+) (i : I) :
                                0 < blockWeight card i
                                theorem blockSum_nonneg {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (i : I) (x : (BigSimplex card)) :
                                0 blockSum card i x

                                blockSum card i x is always nonnegative.

                                theorem deficit_nonneg {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (x : (BigSimplex card)) :
                                0 deficit card x

                                deficit card x is always nonnegative.

                                theorem tPush_mem_Icc {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (x : (BigSimplex card)) :
                                tPush card x Set.Icc 0 1

                                tPush card x is always in [0, 1].

                                theorem blockSum_pushTowardsZ_formula {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (i : I) (x : (BigSimplex card)) :
                                blockSum card i (pushTowardsZ card x) = (1 - tPush card x) * blockSum card i x + tPush card x * blockWeight card i

                                The block sum after pushing towards z_uniform follows a linear formula.

                                theorem blockSum_pushTowardsZ_pos {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (i : I) (x : (BigSimplex card)) :
                                0 < blockSum card i (pushTowardsZ card x)

                                The block sum after pushing towards z_uniform is always positive.

                                theorem blockSum_continuous {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (i : I) :

                                Continuity of blockSum card i.

                                theorem deficit_continuous {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) :

                                Continuity of deficit card.

                                theorem tPush_continuous {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) :

                                Continuity of tPush card.

                                theorem pushTowardsZ_continuous {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) :

                                Continuity of pushTowardsZ card.

                                theorem project_continuous {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) :

                                Continuity of project_to_product.

                                theorem embed_continuous {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) :

                                Continuity of embed_from_product.

                                theorem Brouwer_Product {I : Type u_1} [Fintype I] [DecidableEq I] [Inhabited I] [LinearOrder I] (card : Iℕ+) (f : ProductSimplices cardProductSimplices card) (hf : Continuous f) :
                                ∃ (x : ProductSimplices card), f x = x

                                Brouwer fixed point theorem for a product of simplices, via a retraction.