Documentation

LeanPool.MatrixMultiplicationAllFields.LinearAlgebra.MatrixMultiplication.Entropy.ComplexFiniteEntropy

Finite entropy, rate estimates and ordered asymptotic limits.

The contribution of one mass to Shannon entropy, using natural logarithms.

Equations
Instances For
    theorem MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.finiteEntropy_equiv {A : Type u_1} {B : Type u_2} [Fintype A] [Fintype B] (e : A ≃ B) (p : B → ℝ) :
    (finiteEntropy fun (a : A) => p (e a)) = finiteEntropy p
    theorem MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.finiteEntropy_chain {A : Type u_1} {B : Type u_2} [Fintype A] [Fintype B] (p : A → ℝ) (q : A → B → ℝ) (hq : ∀ (a : A), ∑ b : B, q a b = 1) :
    (finiteEntropy fun (ab : A × B) => p ab.1 * q ab.1 ab.2) = finiteEntropy p + ∑ a : A, p a * finiteEntropy (q a)

    A nonnegative probability mass function on a finite type.

    • mass : A → ℝ

      Probability mass assigned to each point.

    • nonneg (a : A) : 0 ≤ self.mass a
    • total : ∑ a : A, self.mass a = 1
    Instances For
      noncomputable def MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.FiniteLaw.map {A : Type u_1} {B : Type u_2} [Fintype A] [Fintype B] (p : FiniteLaw A) (f : A → B) :

      Push a finite probability law forward along a map.

      Equations
      • p.map f = { mass := fun (b : B) => ∑ a : A, if f a = b then p.mass a else 0, nonneg := ⋯, total := ⋯ }
      Instances For
        @[simp]
        theorem MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.FiniteLaw.map_mass {A : Type u_1} {B : Type u_2} [Fintype A] [Fintype B] [DecidableEq B] (p : FiniteLaw A) (f : A → B) (b : B) :
        (p.map f).mass b = ∑ a : A, if f a = b then p.mass a else 0
        theorem MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.FiniteLaw.map_mass_apply {A : Type u_1} {B : Type u_2} [Fintype A] [Fintype B] (p : FiniteLaw A) (f : A → B) (hf : Function.Injective f) (a : A) :
        (p.map f).mass (f a) = p.mass a

        The joint law obtained by sampling a point and then its conditional law.

        Equations
        • p.joint q = { mass := fun (ab : A × B) => p.mass ab.1 * (q ab.1).mass ab.2, nonneg := ⋯, total := ⋯ }
        Instances For
          noncomputable def MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.FiniteLaw.conditional {A : Type u_1} {B : Type u_2} [Fintype A] [Fintype B] (p : FiniteLaw A) (f : A → B) (b : B) :

          Condition on a fiber, retaining the original law when that fiber has zero mass.

          Equations
          Instances For
            theorem MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.FiniteLaw.map_mass_mul_conditional {A : Type u_1} {B : Type u_2} [Fintype A] [Fintype B] [DecidableEq B] (p : FiniteLaw A) (f : A → B) (b : B) (a : A) :
            (p.map f).mass b * (p.conditional f b).mass a = if f a = b then p.mass a else 0