Documentation

Atlas.AnAlgorithmistsToolkit.code.IntegerProgramming

def IntegerProgramming.IP.IsFeasible {m n : } (A : Matrix (Fin m) (Fin n) ) (b : Fin m) :
Instances For
    Instances For
      theorem IntegerProgramming.lattice_approx_bound_sum {n : } (b : Fin nEuclideanSpace (Fin n)) (h_sorted : ∀ (i j : Fin n), i jb i ^ 2 b j ^ 2) (x : EuclideanSpace (Fin n)) :
      yLattice n b, x - y ^ 2 1 / 4 * i : Fin n, b i ^ 2
      theorem IntegerProgramming.lattice_approx_bound_chain {n : } (hn : 0 < n) (b : Fin nEuclideanSpace (Fin n)) (h_sorted : ∀ (i j : Fin n), i jb i ^ 2 b j ^ 2) (x : EuclideanSpace (Fin n)) :
      yLattice n b, x - y ^ 2 1 / 4 * i : Fin n, b i ^ 2 x - y ^ 2 n / 4 * b n - 1, ^ 2
      Instances For
        noncomputable def IntegerProgramming.fritzJohnRadius (n : ) :
        Instances For
          noncomputable def IntegerProgramming.layerCountBound (k : ) :
          Instances For
            noncomputable def IntegerProgramming.candidateBox (n : ) :
            Finset (Fin n)
            Instances For
              theorem IntegerProgramming.fritz_john_lll_geometric_containment {n : } (hn : 0 < n) {m : } (A : Matrix (Fin m) (Fin n) ) (b : Fin m) (hfeas : IP.IsFeasible A b) :
              ∃ (basis : Fin nEuclideanSpace (Fin n)) (P : EuclideanSpace (Fin n)), IsLLLReduced basis (∀ (i j : Fin n), i jbasis i ^ 2 basis j ^ 2) basis n - 1, 2 / n ∀ (x : Fin n), A.mulVec (Int.cast x) bi : Fin n, (x i) basis i Metric.ball P (fritzJohnRadius n)
              theorem IntegerProgramming.lattice_coord_projection_bound {n : } (hn : 0 < n) (basis : Fin nEuclideanSpace (Fin n)) (P : EuclideanSpace (Fin n)) (hred : IsLLLReduced basis) (hsorted : ∀ (i j : Fin n), i jbasis i ^ 2 basis j ^ 2) (hbn : basis n - 1, 2 / n) (c : Fin n) (hball : i : Fin n, (c i) basis i Metric.ball P (fritzJohnRadius n)) (i : Fin n) :
              theorem IntegerProgramming.lattice_coord_bound_in_ball {n : } (hn : 0 < n) (basis : Fin nEuclideanSpace (Fin n)) (P : EuclideanSpace (Fin n)) (hred : IsLLLReduced basis) (hsorted : ∀ (i j : Fin n), i jbasis i ^ 2 basis j ^ 2) (hbn : basis n - 1, 2 / n) (c : Fin n) (hball : i : Fin n, (c i) basis i Metric.ball P (fritzJohnRadius n)) (i : Fin n) :
              |c i| (lenstraBound n)
              theorem IntegerProgramming.lenstra_solution_in_candidateBox (n m : ) (A : Matrix (Fin m) (Fin n) ) (b : Fin m) :
              IP.IsFeasible A bxcandidateBox n, A.mulVec (Int.cast x) b
              theorem IntegerProgramming.lenstra_ip_fpt (n m : ) (A : Matrix (Fin m) (Fin n) ) (b : Fin m) :
              (candidateBox n).card (2 * lenstraBound n + 1) ^ n (IP.IsFeasible A bxcandidateBox n, A.mulVec (Int.cast x) b)