Compfiles/Imo1994P6.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

10 declarations, 0 contain sorry, 0 declared as axioms

International Mathematical Olympiad 1994, Problem 6

Show that there exists a set A of positive integers with the following property: For any infinite set S of primes there exist two positive integers m ∈ A and n ∉ A each of which is a product of k distinct elements of S for some k ≥ 2.

Imports (4)
Imported by 1 file
  1. def Imo1994P6.IsProductOfkDistinctMembers line 31 source

    standard axioms: Quot.sound, propext what this means

    Statement uses: Nat, Set

    Proof uses: Exists, Finset, And, Eq, Finset.card, Finset.prod, Membership.mem

    4 instances, coercions and auxiliary constants left out.

  2. def Imo1994P6.Primes line 36 source

    standard axioms: propext what this means

    Statement uses: Set, Nat

    Proof uses: Set.ofPred, Nat.Prime

  3. instance Imo1994P6.(instance at line 37) line 37 source
  4. def Imo1994P6.primes_iso line 38 source

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

    Statement uses: OrderIso, Nat, Imo1994P6.Primes, Membership.mem, Set

    Proof uses: Nat.Subtype.orderIsoOfNat

    5 instances, coercions and auxiliary constants left out.

  5. def Imo1994P6.ω Number of distinct prime factors of x line 41 source

    Source comment

    Number of distinct prime factors of x

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

    Statement uses: Nat

    Proof uses: Finset.card, Nat.primeFactors

    def ω : ℕ → ℕ := fun x ↦ (Nat.primeFactors x).card
  6. lemma Imo1994P6.prod_of_primes line 43 source

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

    Statement uses: Set, Nat, Finset, Membership.mem, Nat.Prime, Eq, Nat.primeFactors, Finset.prod, Finset.map, Subtype, Function.Embedding.mk, Subtype.val_injective

    Proof uses: Eq.symm, Finset.prod_map, Eq.mpr, id, congrArg, Nat.primeFactors_prod, Subtype.mk, Iff.mpr, Iff.of_eq, Eq.refl, Exists, Eq.mp, Eq.trans, And, Function.Embedding, funext, propext, exists_prop_congr, of_eq_true, eq_true

    17 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

  7. lemma Imo1994P6.minFac_prod_primes line 50 source

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

    Statement uses: Set, Nat, OrderIso, Membership.mem, Nat.Prime, LT.lt, OfNat.ofNat, Eq, Nat.minFac, Finset.prod, Finset.image, HAdd.hAdd, Finset.range

    Proof uses: Finset, Eq.mpr, id, congrArg, rfl, Iff.mpr, Exists, And, Finset.mem_image, Exists.intro, And.intro, Finset.mem_range, of_eq_true, Eq.trans, True, congrFun', zero_add, eq_self, Subtype.prop, Ne and 24 more

    54 instances, coercions and auxiliary constants left out.

    Tactic trace: 20 steps

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

  8. lemma Imo1994P6.prod_of_distinct_members line 77 source

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

    Statement uses: Nat, Set, OrderIso, Membership.mem, Imo1994P6.IsProductOfkDistinctMembers, Finset.prod, Finset.image, HAdd.hAdd, Finset.range

    Proof uses: id, Finset, Exists.intro, And, Eq, Finset.card, Function.Injective, Eq.mpr, congrArg, Finset.card_image_of_injective, And.intro, rfl

    26 instances, coercions and auxiliary constants left out.

    Tactic trace: 11 steps

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

  9. lemma Imo1994P6.primeFactors_card line 89 source

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

    Statement uses: Set, Nat, OrderIso, Membership.mem, Nat.Prime, Eq, Imo1994P6.ω, Finset.prod, Finset.image, HAdd.hAdd, Finset.range

    Proof uses: Finset, id, Eq.mpr, Finset.card, Nat.primeFactors, Finset.map, Subtype, Function.Embedding.mk, Subtype.val_injective, congrArg, Imo1994P6.prod_of_primes, congrFun', Finset.card_map, Finset.card_image_of_injective, Nat.add_right_cancel, OrderIso.injective, Finset.card_range

    24 instances, coercions and auxiliary constants left out.

    Tactic trace: 10 steps

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

  10. problem Imo1994P6.imo1994_p6 line 103 source

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

    Statement uses: Exists, Set, Nat, And, Membership.mem, LT.lt, OfNat.ofNat, Infinite, Nat.Prime, LE.le, Imo1994P6.IsProductOfkDistinctMembers, Not

    Proof uses: Set.ofPred, Imo1994P6.Primes, OrderIso, Imo1994P6.primes_iso, HSub.hSub, Imo1994P6.ω, Nat.minFac, Exists.intro, And.intro, Nat.Subtype.orderIsoOfNat, HAdd.hAdd, OrderIso.symm, Subtype.mk, Subtype.val_prop, id, Subtype, Subtype.prop, Iff.mpr, Subtype.mk_lt_mk, OrderIso.strictMono and 27 more

    60 instances, coercions and auxiliary constants left out.

    Tactic trace: 35 steps

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