Theorem: Int.Matrix.exists_ne_zero_int_vec_norm_le
File: Mathlib/NumberTheory/SiegelsLemma.lean

tactic: rcases Finset.exists_ne_map_eq_of_card_lt_of_maps_to
  (card_S_lt_card_T m n A hn hm hA_nezero) (image_T_subset_S m n A)
  with ⟨x, hxT, y, hyT, hneq, hfeq⟩
state_before: m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
⊢ ∃ t, t ≠ 0 ∧ A *ᵥ t = 0 ∧ ‖t‖ ≤ (↑n * ‖A‖) ^ e
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
⊢ ∃ t, t ≠ 0 ∧ A *ᵥ t = 0 ∧ ‖t‖ ≤ (↑n * ‖A‖) ^ e

tactic: refine ⟨x - y, sub_ne_zero.mpr hneq, by simp only [mulVec_sub, sub_eq_zero, hfeq], ?_⟩
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
⊢ ∃ t, t ≠ 0 ∧ A *ᵥ t = 0 ∧ ‖t‖ ≤ (↑n * ‖A‖) ^ e
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
⊢ ‖x - y‖ ≤ (↑n * ‖A‖) ^ e

tactic: have n_mul_norm_A_pow_e_nonneg : 0 ≤ (n * ‖A‖) ^ e := by positivity
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
⊢ ‖x - y‖ ≤ (↑n * ‖A‖) ^ e
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
⊢ ‖x - y‖ ≤ (↑n * ‖A‖) ^ e

tactic: rw [← norm_col (ι := Unit), norm_le_iff n_mul_norm_A_pow_e_nonneg]
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
⊢ ‖x - y‖ ≤ (↑n * ‖A‖) ^ e
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
⊢ ∀ (i : Fin n) (j : Unit), ‖col Unit (x - y) i j‖ ≤ (↑n * ‖A‖) ^ e

tactic: intro i j
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
⊢ ∀ (i : Fin n) (j : Unit), ‖col Unit (x - y) i j‖ ≤ (↑n * ‖A‖) ^ e
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ ‖col Unit (x - y) i j‖ ≤ (↑n * ‖A‖) ^ e

tactic: simp only [col_apply, Pi.sub_apply]
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ ‖col Unit (x - y) i j‖ ≤ (↑n * ‖A‖) ^ e
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ ‖x i - y i‖ ≤ (↑n * ‖A‖) ^ e

tactic: rw [Int.norm_eq_abs, ← Int.cast_abs]
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ ‖x i - y i‖ ≤ (↑n * ‖A‖) ^ e
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ ↑|x i - y i| ≤ (↑n * ‖A‖) ^ e

tactic: refine le_trans ?_ (Nat.floor_le n_mul_norm_A_pow_e_nonneg)
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ ↑|x i - y i| ≤ (↑n * ‖A‖) ^ e
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ ↑|x i - y i| ≤ ↑B

tactic: norm_cast
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ ↑|x i - y i| ≤ ↑B
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ |x i - y i| ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊

tactic: rw [abs_le]
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ |x i - y i| ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ -↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ ≤ x i - y i ∧
    x i - y i ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊

tactic: rw [Finset.mem_Icc] at hxT hyT
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ -↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ ≤ x i - y i ∧
    x i - y i ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊
state_after: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ -↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ ≤ x i - y i ∧
    x i - y i ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊

tactic: constructor
state_before: case intro.intro.intro.intro.intro
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ -↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ ≤ x i - y i ∧
    x i - y i ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊
state_after: case intro.intro.intro.intro.intro.left
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ -↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ ≤ x i - y i

case intro.intro.intro.intro.intro.right
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ x i - y i ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊

tactic: simp only [mulVec_sub, sub_eq_zero, hfeq]
state_before: m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
⊢ A *ᵥ (x - y) = 0
state_after: no goals

tactic: positivity
state_before: m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : x ∈ T
y : Fin n → ℤ
hyT : y ∈ T
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
⊢ 0 ≤ (↑n * ‖A‖) ^ e
state_after: no goals

tactic: simp only [neg_le_sub_iff_le_add]
state_before: case intro.intro.intro.intro.intro.left
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ -↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ ≤ x i - y i
state_after: case intro.intro.intro.intro.intro.left
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ y i ≤ x i + ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊

tactic: apply le_trans (hyT.2 i)
state_before: case intro.intro.intro.intro.intro.left
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ y i ≤ x i + ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊
state_after: case intro.intro.intro.intro.intro.left
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ B' i ≤ x i + ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊

tactic: norm_cast
state_before: case intro.intro.intro.intro.intro.left
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ B' i ≤ x i + ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊
state_after: case intro.intro.intro.intro.intro.left
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ (fun x => ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊) i ≤
    x i + ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊

tactic: simp only [le_add_iff_nonneg_left]
state_before: case intro.intro.intro.intro.intro.left
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ (fun x => ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊) i ≤
    x i + ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊
state_after: case intro.intro.intro.intro.intro.left
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ 0 ≤ x i

tactic: exact hxT.1 i
state_before: case intro.intro.intro.intro.intro.left
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ 0 ≤ x i
state_after: no goals

tactic: simp only [tsub_le_iff_right]
state_before: case intro.intro.intro.intro.intro.right
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ x i - y i ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊
state_after: case intro.intro.intro.intro.intro.right
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ x i ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ + y i

tactic: apply le_trans (hxT.2 i)
state_before: case intro.intro.intro.intro.intro.right
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ x i ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ + y i
state_after: case intro.intro.intro.intro.intro.right
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ B' i ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ + y i

tactic: norm_cast
state_before: case intro.intro.intro.intro.intro.right
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ B' i ≤ ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ + y i
state_after: case intro.intro.intro.intro.intro.right
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ (fun x => ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊) i ≤
    ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ + y i

tactic: simp only [le_add_iff_nonneg_right]
state_before: case intro.intro.intro.intro.intro.right
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ (fun x => ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊) i ≤
    ↑⌊(↑n * ‖A‖) ^ ↑(Rat.divInt (↑m) (subNatNat n m))⌋₊ + y i
state_after: case intro.intro.intro.intro.intro.right
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ 0 ≤ y i

tactic: exact hyT.1 i
state_before: case intro.intro.intro.intro.intro.right
m n : ℕ
A : Matrix (Fin m) (Fin n) ℤ
v : Fin n → ℤ
hn : m < n
hm : 0 < m
hA_nezero : A ≠ 0
x : Fin n → ℤ
hxT : 0 ≤ x ∧ x ≤ B'
y : Fin n → ℤ
hyT : 0 ≤ y ∧ y ≤ B'
hneq : x ≠ y
hfeq : A *ᵥ x = A *ᵥ y
n_mul_norm_A_pow_e_nonneg : 0 ≤ (↑n * ‖A‖) ^ e
i : Fin n
j : Unit
⊢ 0 ≤ y i
state_after: no goals