Compfiles/Usa1984P2.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned compfiles documentation, Pinned compfiles corpus index

5 declarations, 0 contain sorry, 0 declared as axioms

USA Mathematical Olympiad 1984, Problem 2

Can one find a set of n distinct positive integers such that the geometric mean of any (non-empty, finite) subset is an integer? Can one find an infinite set with this property?

Imports (8)
Imported by 1 file
  1. theorem Usa1984P2.factorization_eq_of_pow Documented declaration: factorization_eq_of_pow line 40 source

    Source documentation

    The key divisibility fact for the second part: if y * C and z * C (with y, z, C positive) are both k-th powers, then k divides the difference of the multiplicities of any number p in the prime factorizations of y and z.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat, LT.lt, OfNat.ofNat, Ne, Eq, HPow.hPow, HMul.hMul, Dvd.dvd, Int, HSub.hSub, Finsupp, Nat.factorization

    Proof uses: False, mul_ne_zero, Eq.symm, Eq.mp, congrArg, zero_pow, LT.lt.ne', Eq.mpr, HSMul.hSMul, id, Nat.factorization_pow, Finsupp.smul_apply, smul_eq_mul, Eq.refl, Exists.intro, HAdd.hAdd, cast, Eq.trans, congr, Finsupp.add_apply and 45 more

    120 instances, coercions and auxiliary constants left out.

    Tactic trace: 20 steps

    Open to load the checked before-and-after goal states.

    theorem factorization_eq_of_pow (k : ℕ) (hk : 0 < k) (y z C : ℕ)
        (hy : y ≠ 0) (hz : z ≠ 0) (hC : C ≠ 0)
        (u : ℕ) (hu : u ^ k = y * C) (v : ℕ) (hv : v ^ k = z * C) (p : ℕ) :
        (k : ℤ) ∣ (Nat.factorization y p : ℤ) - Nat.factorization z p := by
    …
  2. determine Usa1984P2.does_exist_finite line 69 source

    no axioms what this means

    Statement uses: Bool

    Proof uses: Bool.true

  3. determine Usa1984P2.does_exist_infinite line 71 source

    no axioms what this means

    Statement uses: Bool

    Proof uses: Bool.false

  4. problem Usa1984P2.usa1984_p2a line 73 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat, ite, Eq, Bool, Usa1984P2.does_exist_finite, Bool.true, Exists, Finset, And, Finset.card, Membership.mem, LT.lt, OfNat.ofNat, LE.le, Finset.Nonempty, HPow.hPow, Finset.prod, Not

    Proof uses: id, Function.Injective, Nat.factorial, Nat.pow_left_injective, Nat.factorial_ne_zero, Exists.intro, Finset.image, Finset.Icc, And.intro, Eq.mpr, congrArg, Finset.card_image_of_injOn, Function.Injective.injOn, of_eq_true, Eq.trans, True, congrFun', HSub.hSub, HAdd.hAdd, Nat.card_Icc and 22 more

    65 instances, coercions and auxiliary constants left out.

    Tactic trace: 26 steps

    Open to load the checked before-and-after goal states.

  5. problem Usa1984P2.usa1984_p2b line 104 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: ite, Eq, Bool, Usa1984P2.does_exist_infinite, Bool.true, Exists, Set, Nat, And, Set.Infinite, Membership.mem, LT.lt, OfNat.ofNat, Finset, Finset.Nonempty, LE.le, HPow.hPow, Finset.card, Finset.prod, Not

    Proof uses: id, False, Set.Nonempty, Set.Infinite.nonempty, SDiff.sdiff, Singleton.singleton, Set.Infinite.sdiff, Set.finite_singleton, Eq.mp, congrArg, propext, Set.mem_singleton_iff, Set.mem_sdiff, Ne, Ne.symm, LT.lt.ne', Finsupp, Nat.factorization, Nat.factorization_inj, Iff.mp and 36 more

    81 instances, coercions and auxiliary constants left out.

    Tactic trace: 41 steps

    Open to load the checked before-and-after goal states.