Documentation

Complexitylib.Circuits.ExactFourier.Internal.RawPositive

Exact Fourier circuits: raw positive #

Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a. Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/FourierCircuit/RawPositive.lean

Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.

theorem Complexity.ExactFourier.Packing.RawPrice.embedded (p : RawPrice) {α β : Type} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] (e : α ↪ β) (M : Matrix α α ℂ) (hM : IsUnit M) :
theorem Complexity.ExactFourier.MatrixSymmetry.inverse_tensor {α β : Type} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] (M : Matrix α α ℂ) (N : Matrix β β ℂ) (hM : IsUnit M) (hN : IsUnit N) :
(Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) M N)⁻¹ = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) M⁻¹ N⁻¹
theorem Complexity.ExactFourier.MatrixSymmetry.transpose_tensor {α β : Type} (M : Matrix α α ℂ) (N : Matrix β β ℂ) :
(Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) M N).transpose = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) M.transpose N.transpose
noncomputable def Complexity.ExactFourier.Packing.RawPrice.symValue (p : RawPrice) {α : Type} [Fintype α] [DecidableEq α] (M : Matrix α α ℂ) :

Average the raw prices of a matrix, its inverse, its transpose, and inverse transpose.

Equations
Instances For
    theorem Complexity.ExactFourier.Packing.RawPrice.sym_reindex (p : RawPrice) {α β : Type} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] (e : α ≃ β) (M : Matrix α α ℂ) (hM : IsUnit M) :
    theorem Complexity.ExactFourier.Packing.RawPrice.sym_mul (p : RawPrice) {α : Type} [Fintype α] [DecidableEq α] (M N : Matrix α α ℂ) (hM : IsUnit M) (hN : IsUnit N) :
    p.symValue (M * N) ≤ p.symValue M + p.symValue N
    theorem Complexity.ExactFourier.Packing.RawPrice.sym_monomial (p : RawPrice) {α : Type} [Fintype α] [DecidableEq α] (M L R : Matrix α α ℂ) (hM : IsUnit M) (hL : MonomialMatrix L) (hR : MonomialMatrix R) :
    p.symValue (L * M * R) = p.symValue M
    theorem Complexity.ExactFourier.Packing.RawPrice.sym_tensor (p : RawPrice) {α β : Type} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] (M : Matrix α α ℂ) (N : Matrix β β ℂ) (hM : IsUnit M) (hN : IsUnit N) :
    p.symValue (Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) M N) = ↑(Fintype.card β) * p.symValue M + ↑(Fintype.card α) * p.symValue N
    theorem Complexity.ExactFourier.Packing.RawPrice.sym_sum (p : RawPrice) {α β : Type} [Fintype α] [Fintype β] [DecidableEq α] [DecidableEq β] (M : Matrix α α ℂ) (N : Matrix β β ℂ) (hM : IsUnit M) (hN : IsUnit N) :

    The matrix price obtained by symmetrizing a raw comparison price.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Keep the selected rows of K and use identity rows at all remaining positions.

      Equations
      Instances For
        theorem Complexity.ExactFourier.BasisExchange.rows_insert {ι : Type} [Fintype ι] [DecidableEq ι] (K : Matrix ι ι ℂ) (H : Finset ι) (j : ι) (hj : j ∉ H) :
        (rows K H).updateRow j (rows K Hᶜ j) = rows K (insert j H) ∧ (rows K Hᶜ).updateRow j (rows K H j) = rows K (insert j H)ᶜ
        theorem Complexity.ExactFourier.BasisExchange.price_many {ι : Type} [Fintype ι] [DecidableEq ι] (p : MatrixPrice) (K : Matrix ι ι ℂ) (hU : ∀ (H : Finset ι), IsUnit (rows K H)) (H : Finset ι) :
        p.value (rows K Hᶜ * (rows K H)⁻¹) = p.value K
        theorem Complexity.ExactFourier.BasisExchange.rows_unit {ι : Type} [Fintype ι] [DecidableEq ι] [LinearOrder ι] (K : Matrix ι ι ℂ) (hl : K.IsLowerTriangular) (hd : ∀ (i : ι), K i i = 1) (H : Finset ι) :
        IsUnit (rows K H)
        theorem Complexity.ExactFourier.BasisExchange.price_triangular {ι : Type} [Fintype ι] [DecidableEq ι] [LinearOrder ι] (p : MatrixPrice) (K : Matrix ι ι ℂ) (hl : K.IsLowerTriangular) (hd : ∀ (i : ι), K i i = 1) (H : Finset ι) :
        p.value (rows K Hᶜ * (rows K H)⁻¹) = p.value K
        @[reducible, inline]

        Bit strings represented recursively by a sum of two copies of the shorter strings.

        Equations
        Instances For
          @[reducible]
          Equations

          The identity plus the nilpotent signed-bit matrix D m.

          Equations
          Instances For