Documentation

HexLLLMathlib.Bridge

The executable-to-Mathlib correspondence: the integer row lattice as a Submodule, its identification with Hex.Matrix.memLattice, the EuclideanSpace embeddings with their norm transport, and the conditional Euclidean short-vector bound for an already-reduced basis.

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

Equations
Instances For
    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

      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

          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 route 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 < δ).