Documentation

Complexitylib.RationalHitting.Internal.LaurentReduction

Rational hitting lists: laurent reduction #

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

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

@[reducible, inline]

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

Equations
Instances For

    Membership in K[[t]], inside K((t)).

    Equations
    Instances For

      The constant coefficient of a Laurent series.

      Equations
      Instances For
        def Complexity.RationalHitting.LaurentReduction.reduce {K : Type u_1} [Field K] {ι : Type u_2} (x : ι → F K) :
        ι → K

        Take the constant coefficient in each coordinate.

        Equations
        Instances For
          theorem Complexity.RationalHitting.LaurentReduction.normalize_vector {K : Type u_1} [Field K] {ι : Type u_2} [Fintype ι] (x : ι → F K) (hx : x ≠ 0) :
          ∃ (c : ι) (u : F K), u ≠ 0 ∧ (∀ (i : ι), Integral (u * x i)) ∧ u * x c = 1

          Coefficientwise integrality, not an arbitrary sublattice.

          Equations
          Instances For
            theorem Complexity.RationalHitting.LaurentReduction.IntegralVector.smul {K : Type u_1} [Field K] {ι : Type u_2} {x : ι → F K} {a : F K} (ha : Integral a) (hx : IntegralVector x) :

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

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              structure Complexity.RationalHitting.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 Complexity.RationalHitting.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 Complexity.RationalHitting.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 Complexity.RationalHitting.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 Complexity.RationalHitting.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 Complexity.RationalHitting.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 Complexity.RationalHitting.LaurentReduction.reduce_C_smul {K : Type u_1} [Field K] {ι : Type u_2} (a : K) (v : ι → F K) :
                def Complexity.RationalHitting.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.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Complexity.RationalHitting.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.

                  Equations
                  Instances For
                    theorem Complexity.RationalHitting.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 Complexity.RationalHitting.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.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      theorem Complexity.RationalHitting.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 Complexity.RationalHitting.LaurentReduction.reduction_weighted_supported {K : Type u_1} [Field K] {ι : Type u_2} [Fintype ι] (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.

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

                      Equations
                      • b.subframe a ha = { length := k, vector := b.vector ∘ a, coordinate := b.coordinate ∘ a, span_eq := ⋯, vector_integral := ⋯, coordinate_integral := ⋯, pairing := ⋯, reduced_independent := ⋯ }
                      Instances For
                        theorem Complexity.RationalHitting.LaurentReduction.exists_projection_subspace {K : Type u_1} [Field K] {ι : Type u_2} [Fintype ι] {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 Complexity.RationalHitting.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.

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

                          Vectors whose coordinates vanish above the truncation threshold.

                          Equations
                          Instances For

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

                            noncomputable def Complexity.RationalHitting.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.

                            Equations
                            Instances For
                              theorem Complexity.RationalHitting.LaurentReduction.liftMap_apply {K : Type v_1} [Field K] {ι : Type v_2} {κ : Type v_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 Complexity.RationalHitting.LaurentReduction.liftMap_comp {K : Type v_1} [Field K] {ι : Type v_2} {κ : Type v_3} {τ : Type v_4} [Fintype ι] [DecidableEq ι] [Fintype κ] [DecidableEq κ] (P : (κ → K) →ₗ[K] τ → K) (Q : (ι → K) →ₗ[K] κ → K) :
                              theorem Complexity.RationalHitting.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 Complexity.RationalHitting.LaurentReduction.reduction_liftMap {K : Type v_1} [Field K] {ι : Type v_2} {κ : Type v_3} [Fintype ι] [DecidableEq ι] (P : (ι → K) →ₗ[K] κ → K) (x : ι → F K) :
                              reduce ((liftMap P) x) = P (reduce x)
                              noncomputable def Complexity.RationalHitting.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.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                @[simp]
                                theorem Complexity.RationalHitting.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 Complexity.RationalHitting.LaurentReduction.liftEquiv_symm {K : Type u_1} [Field K] {ι : Type u_2} {κ : Type u_3} [Fintype ι] [DecidableEq ι] [Fintype κ] [DecidableEq κ] (E : (ι → K) ≃ₗ[K] κ → K) :
                                theorem Complexity.RationalHitting.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 Complexity.RationalHitting.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 Complexity.RationalHitting.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).

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  theorem Complexity.RationalHitting.LaurentReduction.conjugatedWeight_injective {K : Type u_1} [Field K] {ι : Type u_2} [Fintype ι] [DecidableEq ι] (Ein Eout : (ι → K) ≃ₗ[K] ι → K) (w : ι → ℕ) :
                                  theorem Complexity.RationalHitting.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) :