Documentation

Complexity.Computability.Circuit.Rational.LaurentReduction

Reduction of Laurent-series subspaces at zero #

Subspaces of ι → K⸨X⸩ are reduced to subspaces of ι → K by taking constant coefficients of their integral (power-series) members. Valuation-adapted Gaussian elimination produces an integral frame, which shows that this reduction preserves dimension. Multiplying coordinates by powers of the parameter then gives a rank inequality between filtrations, which is the order reversal step of the small-subspace expansion argument.

Main definitions #

Main results #

References #

@[reducible, inline]

The Laurent-series coefficient field used for reduction at the parameter zero.

Instances For

    Membership in K⟦X⟧, inside K⸨X⸩.

    Instances For

      The constant coefficient of a Laurent series.

      Instances For
        def Cslib.Circuits.Rational.LaurentReduction.reduce {K : Type u_1} [Field K] {ι : Type u_2} (x : ι → F K) :
        ι → K

        Take the constant coefficient in each coordinate.

        Instances For
          theorem Cslib.Circuits.Rational.LaurentReduction.Integral.add {K : Type u_1} [Field K] {x y : F K} (hx : Integral x) (hy : Integral y) :
          Integral (x + y)
          theorem Cslib.Circuits.Rational.LaurentReduction.Integral.sub {K : Type u_1} [Field K] {x y : F K} (hx : Integral x) (hy : Integral y) :
          Integral (x - y)
          theorem Cslib.Circuits.Rational.LaurentReduction.Integral.mul {K : Type u_1} [Field K] {x y : F K} (hx : Integral x) (hy : Integral y) :
          Integral (x * y)
          theorem Cslib.Circuits.Rational.LaurentReduction.normalize_vector {K : Type u_1} [Field K] {ι : Type u_2} [Finite ι] (x : ι → F K) (hx : x ≠ 0) :
          ∃ (c : ι) (u : F K), u ≠ 0 ∧ (∀ (i : ι), Integral (u * x i)) ∧ u * x c = 1
          def Cslib.Circuits.Rational.LaurentReduction.IntegralVector {K : Type u_1} [Field K] {ι : Type u_2} (x : ι → F K) :

          Coefficientwise integrality, not an arbitrary sublattice.

          Instances For
            theorem Cslib.Circuits.Rational.LaurentReduction.IntegralVector.add {K : Type u_1} [Field K] {ι : Type u_2} {x y : ι → F K} (hx : IntegralVector x) (hy : IntegralVector y) :
            theorem Cslib.Circuits.Rational.LaurentReduction.IntegralVector.sub {K : Type u_1} [Field K] {ι : Type u_2} {x y : ι → F K} (hx : IntegralVector x) (hy : IntegralVector y) :
            theorem Cslib.Circuits.Rational.LaurentReduction.IntegralVector.smul {K : Type u_1} [Field K] {ι : Type u_2} {x : ι → F K} {a : F K} (ha : Integral a) (hx : IntegralVector x) :
            def Cslib.Circuits.Rational.LaurentReduction.IntegralFunctional {K : Type u_1} [Field K] {ι : Type u_2} (f : (ι → F K) →ₗ[F K] F K) :

            A coordinate functional which is defined integrally on the full ambient integral lattice.

            Instances For
              structure Cslib.Circuits.Rational.LaurentReduction.IntegralFrame {K : Type u_1} [Field K] {ι : Type u_2} (U : Submodule (F K) (ι → F K)) :
              Type (max u_1 u_2)

              An integral spanning frame with integral dual coordinates and independent reductions.

              Instances For

                Valuation-adapted Gaussian elimination constructs an integral frame for any Laurent-series subspace. The coordinate functionals guarantee saturation.

                theorem Cslib.Circuits.Rational.LaurentReduction.IntegralFrame.vector_mem {K : Type u_1} [Field K] {ι : Type u_2} {U : Submodule (F K) (ι → F K)} (b : IntegralFrame U) (j : Fin b.length) :
                b.vector j ∈ U
                theorem Cslib.Circuits.Rational.LaurentReduction.IntegralFrame.integral_coordinates {K : Type u_1} [Field K] {ι : Type u_2} {U : Submodule (F K) (ι → F K)} (b : IntegralFrame U) (x : ι → F K) (hx : IntegralVector x) (j : Fin b.length) :

                Full integral-lattice saturation: every integral member has integral basis coordinates, explicitly given by the constructed functionals.

                theorem Cslib.Circuits.Rational.LaurentReduction.IntegralFrame.sum_coordinates {K : Type u_1} [Field K] {ι : Type u_2} {U : Submodule (F K) (ι → F K)} (b : IntegralFrame U) (x : ι → F K) (hx : x ∈ U) :
                ∑ j : Fin b.length, (b.coordinate j) x • b.vector j = x
                theorem Cslib.Circuits.Rational.LaurentReduction.reduce_sum {K : Type u_1} [Field K] {ι : Type u_2} {τ : Type u_3} (s : Finset τ) (v : τ → ι → F K) :
                reduce (∑ j ∈ s, v j) = ∑ j ∈ s, reduce (v j)
                theorem Cslib.Circuits.Rational.LaurentReduction.reduce_smul {K : Type u_1} [Field K] {ι : Type u_2} {a : F K} {v : ι → F K} (ha : Integral a) (hv : IntegralVector v) :
                theorem Cslib.Circuits.Rational.LaurentReduction.reduce_C_smul {K : Type u_1} [Field K] {ι : Type u_2} (a : K) (v : ι → F K) :
                def Cslib.Circuits.Rational.LaurentReduction.reducedSet {K : Type u_1} [Field K] {ι : Type u_2} (U : Submodule (F K) (ι → F K)) :
                Set (ι → K)

                The reduction uses every integral member of U.

                Instances For
                  def Cslib.Circuits.Rational.LaurentReduction.reducedSubspace {K : Type u_1} [Field K] {ι : Type u_2} (U : Submodule (F K) (ι → F K)) :
                  Submodule K (ι → K)

                  The subspace spanned by reductions of integral vectors in the original subspace.

                  Instances For
                    theorem Cslib.Circuits.Rational.LaurentReduction.reducedSet_eq_span {K : Type u_1} [Field K] {ι : Type u_2} {U : Submodule (F K) (ι → F K)} (b : IntegralFrame U) :
                    reducedSet U = ↑(Submodule.span K (Set.range fun (j : Fin b.length) => reduce (b.vector j)))

                    Full integral reduction preserves dimension.

                    noncomputable def Cslib.Circuits.Rational.LaurentReduction.weightMap {K : Type u_1} [Field K] {ι : Type u_2} (w : ι → ℕ) :
                    (ι → F K) →ₗ[F K] ι → F K

                    Multiplication by t^a, written as its identical Laurent monomial.

                    Instances For
                      theorem Cslib.Circuits.Rational.LaurentReduction.weighted_high_reduction_zero {K : Type u_1} [Field K] {ι : Type u_2} (w : ι → ℕ) (A : ℕ) (x : ι → F K) (hx : IntegralVector x) (hlow : ∃ (j : ι), w j ≤ A ∧ reduction (x j) ≠ 0) (c : F K) (hc : c ≠ 0) (hy : IntegralVector (c • (weightMap w) x)) (i : ι) :
                      A < w i → reduction ((c • (weightMap w) x) i) = 0

                      The key valuation step of order reversal: an integral normalized input having a nonzero low reduction cannot give a high leading output coefficient.

                      theorem Cslib.Circuits.Rational.LaurentReduction.reduction_weighted_supported {K : Type u_1} [Field K] {ι : Type u_2} [Finite ι] (w : ι → ℕ) (A : ℕ) (U : Submodule (F K) (ι → F K)) (hdetect : ∀ x ∈ U, IntegralVector x → (∀ (i : ι), w i ≤ A → reduction (x i) = 0) → reduce x = 0) (y : ι → F K) (hyU : y ∈ Submodule.map (weightMap w) U) (hyI : IntegralVector y) (i : ι) :
                      A < w i → reduction (y i) = 0

                      Low coordinates detect reduction throughout U. This controls its full integral image lattice, not only the images of an arbitrary integral basis.

                      def Cslib.Circuits.Rational.LaurentReduction.IntegralFrame.subframe {K : Type u_1} [Field K] {ι : Type u_2} {U : Submodule (F K) (ι → F K)} (b : IntegralFrame U) {k : ℕ} (a : Fin k → Fin b.length) (ha : Function.Injective a) :

                      Restrict an integral frame to a selected family of basis vectors.

                      Instances For
                        theorem Cslib.Circuits.Rational.LaurentReduction.exists_projection_subspace {K : Type u_1} [Field K] {ι : Type u_2} [Finite ι] {V : Type u_3} [AddCommGroup V] [Module K V] (U : Submodule (F K) (ι → F K)) (P : (ι → K) →ₗ[K] V) :
                        ∃ U' ≤ U, Module.finrank (F K) ↥U' = Module.finrank K ↥(Submodule.map P (reducedSubspace U)) ∧ ∀ x ∈ U', IntegralVector x → P (reduce x) = 0 → reduce x = 0

                        Choose an integral-lattice subspace on whose reduction a specified projection is injective, of dimension equal to that projection's rank.

                        def Cslib.Circuits.Rational.LaurentReduction.lowProjection {K : Type u_1} [Field K] {ι : Type u_2} (w : ι → ℕ) (A : ℕ) :
                        (ι → K) →ₗ[K] { i : ι // w i ≤ A } → K

                        Low coordinate projection and its complementary support subspace.

                        Instances For
                          def Cslib.Circuits.Rational.LaurentReduction.lowSupported {K : Type u_1} [Field K] {ι : Type u_2} (w : ι → ℕ) (A : ℕ) :
                          Submodule K (ι → K)

                          Vectors whose coordinates vanish above the truncation threshold.

                          Instances For
                            theorem Cslib.Circuits.Rational.LaurentReduction.weighted_filtration_rank {K : Type u_1} [Field K] {ι : Type u_2} [Finite ι] (w : ι → ℕ) (A : ℕ) (U W : Submodule (F K) (ι → F K)) (hW : Submodule.map (weightMap w) U ≤ W) :

                            Filtration version of order reversal, before a constant coordinate change. This uses the whole integral lattice on both sides.

                            noncomputable def Cslib.Circuits.Rational.LaurentReduction.liftMap {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [DecidableEq ι] (P : (ι → K) →ₗ[K] κ → K) :
                            (ι → F K) →ₗ[F K] κ → F K

                            Extend a linear map to Laurent-series vectors using its constant coefficient matrix.

                            Instances For
                              theorem Cslib.Circuits.Rational.LaurentReduction.liftMap_apply {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [DecidableEq ι] (P : (ι → K) →ₗ[K] κ → K) (x : ι → F K) (j : κ) :
                              (liftMap P) x j = ∑ i : ι, HahnSeries.C (LinearMap.toMatrix' P j i) * x i
                              theorem Cslib.Circuits.Rational.LaurentReduction.liftMap_comp {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} {τ : Type u_4} [Fintype ι] [DecidableEq ι] [Fintype κ] [DecidableEq κ] (P : (κ → K) →ₗ[K] τ → K) (Q : (ι → K) →ₗ[K] κ → K) :
                              theorem Cslib.Circuits.Rational.LaurentReduction.liftMap_integral {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [DecidableEq ι] (P : (ι → K) →ₗ[K] κ → K) {x : ι → F K} (hx : IntegralVector x) :
                              theorem Cslib.Circuits.Rational.LaurentReduction.reduction_liftMap {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [DecidableEq ι] (P : (ι → K) →ₗ[K] κ → K) (x : ι → F K) :
                              reduce ((liftMap P) x) = P (reduce x)
                              noncomputable def Cslib.Circuits.Rational.LaurentReduction.liftEquiv {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [DecidableEq ι] [Fintype κ] [DecidableEq κ] (E : (ι → K) ≃ₗ[K] κ → K) :
                              (ι → F K) ≃ₗ[F K] κ → F K

                              Extend a linear equivalence to Laurent-series vectors.

                              Instances For
                                @[simp]
                                theorem Cslib.Circuits.Rational.LaurentReduction.liftEquiv_toLinearMap {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [DecidableEq ι] [Fintype κ] [DecidableEq κ] (E : (ι → K) ≃ₗ[K] κ → K) :
                                ↑(liftEquiv E) = liftMap ↑E
                                theorem Cslib.Circuits.Rational.LaurentReduction.liftEquiv_symm {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [DecidableEq ι] [Fintype κ] [DecidableEq κ] (E : (ι → K) ≃ₗ[K] κ → K) :
                                theorem Cslib.Circuits.Rational.LaurentReduction.integral_liftEquiv_iff {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [DecidableEq ι] [Fintype κ] [DecidableEq κ] (E : (ι → K) ≃ₗ[K] κ → K) (x : ι → F K) :
                                theorem Cslib.Circuits.Rational.LaurentReduction.reducedSubspace_liftEquiv {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [DecidableEq ι] [Fintype κ] [DecidableEq κ] (E : (ι → K) ≃ₗ[K] κ → K) (U : Submodule (F K) (ι → F K)) :
                                noncomputable def Cslib.Circuits.Rational.LaurentReduction.conjugatedWeight {K : Type u_1} [Field K] {ι : Type u_2} [Fintype ι] [DecidableEq ι] (Ein Eout : (ι → K) ≃ₗ[K] ι → K) (w : ι → ℕ) :
                                (ι → F K) →ₗ[F K] ι → F K

                                Constant coordinates on the input and output may differ (Taylor on the input, reverse Taylor on the output in the application).

                                Instances For
                                  theorem Cslib.Circuits.Rational.LaurentReduction.conjugatedWeight_injective {K : Type u_1} [Field K] {ι : Type u_2} [Fintype ι] [DecidableEq ι] (Ein Eout : (ι → K) ≃ₗ[K] ι → K) (w : ι → ℕ) :
                                  theorem Cslib.Circuits.Rational.LaurentReduction.conjugated_filtration_rank {K : Type u_1} [Field K] {ι : Type u_2} [Fintype ι] [DecidableEq ι] (Ein Eout : (ι → K) ≃ₗ[K] ι → K) (w : ι → ℕ) (A : ℕ) (U W : Submodule (F K) (ι → F K)) (hW : Submodule.map (conjugatedWeight Ein Eout w) U ≤ W) :