Theorem: Behrend.bound
File: Mathlib/Combinatorics/Additive/Behrend.lean

tactic: apply div_lt_floor _
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ ↑N ^ (1 / ↑(nValue N)) / exp 1 < ↑(dValue N)

tactic: rw [← log_le_log, log_rpow, mul_comm, ← div_eq_mul_one_div]
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 2 / (1 - 2 / exp 1) ≤ ↑N ^ (1 / ↑(nValue N))

tactic: apply rpow_pos_of_pos
state_before: case h₁
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < ↑N ^ (1 / ↑(nValue N))

tactic: rw [cast_pos]
state_before: case h₁.hx
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < ↑N

tactic: exact hN.trans_lt' (by norm_num1)
state_before: case h₁.hx
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < N

tactic: apply le_trans _ (div_le_div_of_le_left _ _ (ceil_lt_mul _).le)
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ log (2 / (1 - 2 / exp 1)) ≤ log ↑N / ↑(nValue N)

tactic: rw [mul_comm, ← div_div, div_sqrt, le_div_iff]
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ log (2 / (1 - 2 / exp 1)) ≤ log ↑N / (1.38 * Real.sqrt (log ↑N))

α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 ≤ log ↑N

α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < ↑⌈Real.sqrt (log ↑N)⌉₊

α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 50 / 19 ≤ Real.sqrt (log ↑N)

tactic: apply le_sqrt_of_sq_le
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 50 / 19 ≤ Real.sqrt (log ↑N)

tactic: refine' le_trans _ this
state_before: case h
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
this : ↑12 * log 2 ≤ log ↑N
⊢ (50 / 19) ^ 2 ≤ log ↑N

tactic: simp only [cast_one]
state_before: case h
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
this : ↑12 * log 2 ≤ log ↑N
⊢ (50 / 19) ^ 2 ≤ ↑12 * log 2

tactic: rw [← div_le_iff']
state_before: case h
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
this : ↑12 * log 2 ≤ log ↑N
⊢ (50 / 19) ^ 2 ≤ ↑12 * log 2

tactic: norm_num
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ log (2 / (1 - 2 / exp 1)) * 1.38 ≤ Real.sqrt (log ↑N)

tactic: exact le_sqrt_log hN
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ log (2 / (1 - 2 / exp 1)) * (69 / 50) ≤ Real.sqrt (log ↑N)

tactic: norm_num1
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < 1.38

tactic: apply log_nonneg
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 ≤ log ↑N

tactic: rw [one_le_cast]
state_before: case hx
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 1 ≤ ↑N

tactic: exact hN.trans' (by norm_num1)
state_before: case hx
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 1 ≤ N

tactic: norm_num1
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 1 ≤ 4096

tactic: rw [cast_pos, lt_ceil, cast_zero, Real.sqrt_pos]
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < ↑⌈Real.sqrt (log ↑N)⌉₊

tactic: refine' log_pos _
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < log ↑N

tactic: rw [one_lt_cast]
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 1 < ↑N

tactic: exact hN.trans_lt' (by norm_num1)
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 1 < N

tactic: norm_num1
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 1 < 4096

tactic: rw [← log_rpow zero_lt_two, log_le_log, rpow_nat_cast]
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ ↑12 * log 2 ≤ log ↑N

tactic: rw [cast_pos]
state_before: case h₁
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < ↑N

tactic: exact hN.trans_lt' (by norm_num1)
state_before: case h₁
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < N

tactic: norm_num1
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 2 ^ 12 ≤ ↑N

tactic: exact_mod_cast hN
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 4096 ≤ ↑N

tactic: exact rpow_pos_of_pos zero_lt_two _
state_before: case h
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < 2 ^ ↑12

tactic: norm_num1
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < 4096

tactic: exact log_two_gt_d9.le.trans' (by norm_num1)
state_before: case h
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
this : ↑12 * log 2 ≤ log ↑N
⊢ (50 / 19) ^ 2 / ↑12 ≤ log 2

tactic: norm_num1
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
this : ↑12 * log 2 ≤ log ↑N
⊢ (50 / 19) ^ 2 / ↑12 ≤ 0.6931471803

tactic: norm_num1
state_before: case h
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
this : ↑12 * log 2 ≤ log ↑N
⊢ 0 < ↑12

tactic: rw [cast_pos]
state_before: case hx
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < ↑N

tactic: exact hN.trans_lt' (by norm_num1)
state_before: case hx
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < N

tactic: norm_num1
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < 4096

tactic: refine' div_pos zero_lt_two _
state_before: case h
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < 2 / (1 - 2 / exp 1)

tactic: rw [sub_pos, div_lt_one (exp_pos _)]
state_before: case h
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < 1 - 2 / exp 1

tactic: exact lt_of_le_of_lt (by norm_num1) exp_one_gt_d9
state_before: case h
α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 2 < exp 1

tactic: norm_num1
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 2 ≤ 2.7182818283

tactic: norm_num1
state_before: α : Type ?u.786208
β : Type ?u.786211
n d k N : ℕ
x : Fin n → ℕ
hN : 4096 ≤ N
⊢ 0 < 4096