Theorems / mh_numb_b96188
Mathlib held-out
Number theory · hard
theorem lg_target {n : ℕ} (hn : 1 < n) (hpn : ¬IsPrimePow n) : (Finset.Icc 1 (n - 1)).gcd n.choose = 1 := by- Mathlib declaration
- Choose.gcd_choose_eq_one_of_not_isPrimePow
- Held-out module
- Mathlib.Data.Nat.Choose.Lucas
- Banned modules (itself + downstream)
- 1
- Reference proof premises (reachable / held-out)
- 9 / 1
Traces
Each configuration's full record: what was retrieved, what the model wrote, what Lean said back.
No configuration has attempted this theorem yet.
Reference proof
Mathlib's own source for this declaration, shown for comparison. It may use lemmas the prover is not allowed to use.
/-- For a natural number `n` greater than `1`, assume that `n` is not a prime power, then
the greatest common divisor of `choose n 1, ⋯, choose n (n - 1)` is `1`. -/
theorem gcd_choose_eq_one_of_not_isPrimePow (hn : 1 < n) (hpn : ¬ IsPrimePow n) :
(Icc 1 (n - 1)).gcd n.choose = 1 := by
contrapose! hpn
obtain ⟨q, hq, h⟩ := Nat.exists_prime_and_dvd hpn
simp_rw [Finset.dvd_gcd_iff, ← modEq_zero_iff_dvd] at h
have : Fact (Nat.Prime q) := ⟨hq⟩
have := eq_pow_multiplicity_of_choose_modEq_zero_nat (zero_lt_of_lt hn) h
refine (isPrimePow_nat_iff n).mpr ⟨q, _, hq, Dvd.multiplicity_pos ?_, this.symm⟩
specialize h 1 (by grind)
rw [choose_one_right, modEq_zero_iff_dvd] at h
exact h