Documentation

Marginis.RamirezVellis2024

Time complexity of the Analyst’s Traveling Salesman algorithm #

ANTHONY RAMIREZ and VYRON VELLIS

We prove for any N the n = 2 version of the statement on page 3 containing the phrase "it is clear that".

theorem clear {N : } (v : Fin N) (w : Fin N) :
let R₀ := 5 * max (dist v 0) (dist w 0); ∀ (i : Fin N), v i Set.Icc (-R₀) R₀
theorem nat_to_int_eq (a : ) (b : ) :
a = ba = b
theorem flip_neg (a : ) (b : ) :
a = -b -a = b
def neg_fit_part (z : ) :
Equations
Instances For
    def neg_fit (z : ) :
    Equations
    Instances For
      theorem sign_nonneg_iff_natAbs_eq (z : ) :
      z.natAbs = z z.sign = 0 z.sign = 1
      theorem neg_fit_iff_pos (z : ) :
      z.natAbs = z neg_fit z = 0
      def spread_fun (z : ) :
      Equations
      Instances For
        theorem spread_fun_inj_explicit (a : ) (b : ) :
        spread_fun a = spread_fun ba = b
        theorem int_countable (B : Set ) :
        B.Countable
        theorem infant_Gauss (n : ) :
        2 * xFinset.range (n + 1), x = n * (n + 1)
        def diag_fun (a : × ) :
        Equations
        Instances For
          theorem mul_2_both_sides (a : ) (b : ) :
          a = b2 * a = 2 * b
          theorem n_sq_add_n_monotone (m : ) (n : ) :
          m n m * (m + 1) n * (n + 1)
          theorem n_sq_add_n_monotone_strict (m : ) (n : ) :
          m < n m * (m + 1) < n * (n + 1)
          theorem pred_legit (c : ) :
          c > 0∃ (a : ), c = a + 1
          theorem range_lem (b : ) (c : ) :
          c * (c + 1) < b * (b + 1) + 2 * cc b
          theorem sum_range (a : ) (c : ) :
          a * (a + 1) 2 * xFinset.range (c + 1), x 2 * xFinset.range (c + 1), x < a * (a + 1) + 2 * ca = c
          theorem sum_range_simp (a : ) (c : ) :
          a c c * (c + 1) < a * (a + 1) + 2 * ca = c
          theorem lemma1 (a : ) (b : ) (c : ) (d : ) :
          a + b = c + d a cb d
          theorem lemma2 (a : ) (b : ) (c : ) (d : ) :
          a + b = c + d a cb d
          theorem lemma2_le (a : ) (b : ) (c : ) (d : ) :
          a + b c + d a cb d
          theorem lt_if_lt_add_right (a : ) (b : ) (c : ) :
          a + c < b + ca < b
          theorem nat_prod_countable (C : Set ( × )) :
          C.Countable
          theorem diag_fun_inj_explicit (a : × ) (b : × ) :
          diag_fun a = diag_fun ba = b
          theorem proj_fst (a : × ) (b : × ) :
          a = ba.1 = b.1
          theorem proj_snd (a : × ) (b : × ) :
          a = ba.2 = b.2
          def diag3_fun (a : × × ) :
          Equations
          Instances For
            theorem nat_trip_prod_countable (D : Set ( × × )) :
            D.Countable
            def rat_fun (q : ) :
            Equations
            Instances For
              theorem rat_fun_inj_explicit (a : ) (b : ) :
              rat_fun a = rat_fun ba = b
              theorem rat_countable (A : Set ) :
              A.Countable
              Equations
              Instances For
                theorem rat_prod_countable (E : Set ( × )) :
                E.Countable