Documentation

HexLLLMathlib.IntegerLattice

The Mathlib Submodule generated by the rows of an executable integer matrix.

Equations
Instances For
    @[simp]

    Executable row-lattice membership agrees with membership in the generated submodule.

    Every matrix row belongs to the submodule generated by all rows.

    def HexLLLMathlib.prefixSubmodule {n m : } (b : Hex.Matrix n m) (t : ) :

    The submodule generated by rows whose indices are strictly below t.

    Equations
    Instances For
      theorem HexLLLMathlib.row_mem_prefixSubmodule {n m : } (b : Hex.Matrix n m) (t : ) (i : Fin n) (hi : i < t) :

      Every row before t belongs to the submodule generated by that row prefix.

      The submodule generated by a row prefix lies in the full row lattice.

      theorem HexLLLMathlib.vecMul_mem_prefixSubmodule_of_vector {n m : } (b : Hex.Matrix n m) (c : Vector n) (t : ) (hc : ∀ (i : Fin n), t ic[i] = 0) :

      A row combination supported before t belongs to the corresponding prefix submodule.

      View an executable integer row as a vector in Mathlib's standard Euclidean space on Fin m.

      Equations
      Instances For

        View a Mathlib-side integer lattice vector in Mathlib's standard Euclidean space on Fin m.

        Equations
        Instances For
          @[simp]

          The Euclidean squared norm of an integer row embedded into EuclideanSpace ℝ (Fin m) equals the real cast of the executable integer squared norm.

          The Euclidean squared norm of a lattice vector embedded into EuclideanSpace ℝ (Fin m) equals the real cast of the executable integer squared norm of its Vector preimage.

          theorem HexLLLMathlib.reduced_first_row_norm_sq_le {n m : } (b : Hex.Matrix n m) (δ η : ) ( : 1 / 2 η) (hδη : η * η < δ) (hδ' : δ 1) (hn : 1 n) (hli : b.independent) (hred : Hex.isLLLReduced b δ η) (x : Fin m) (hx : x latticeSubmodule b) (hx0 : x 0) :
          intRowToEuclidean (b.row 0, ) ^ 2 ↑((1 / (δ - η * η)) ^ (n - 1)) * intVectorToEuclidean x ^ 2

          Mathlib-Euclidean-norm formulation of the LLL short-vector guarantee for an already (δ, η)-LLL-reduced executable basis.

          The input vector is assumed to lie in the Mathlib latticeSubmodule. The proof method converts that hypothesis back through mem_latticeSubmodule_iff, applies the executable Hex.short_vector_bound_of_size_bound for the rational squared-norm inequality, then transports both sides through the concrete Euclidean norm coercions above.

          Consumed downstream at η = 11/20 for the public Hex.lll headline (α = 1/(δ − 121/400), precondition 121/400 < δ); also at η = 1/2 for the native Hex.lllNative classical statement (α = 1/(δ − 1/4), precondition 1/4 < δ).