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

66 declarations, 0 contain sorry, 0 declared as axioms

International Mathematical Olympiad 1988, Problem 4

Show that the set of real numbers $x$ which satisfy the inequality $$\sum_{k=1}^{70} \frac{k}{x - k} \ge \frac{5}{4}$$ is a union of disjoint intervals, the sum of whose lengths is $1988$.

Imports (2)
Imported by 1 file
  1. abbrev Imo1988P4.singularities line 33 source

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

    Statement uses: Finset, Nat

    Proof uses: Finset.Icc, OfNat.ofNat

    3 instances, coercions and auxiliary constants left out.

  2. abbrev Imo1988P4.f line 37 source

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

    Statement uses: Real

    Proof uses: HSub.hSub, Finset.sum, Nat, Imo1988P4.singularities, HDiv.hDiv, OfNat.ofNat

    11 instances, coercions and auxiliary constants left out.

  3. abbrev Imo1988P4.S line 39 source

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

    Statement uses: Set, Real

    Proof uses: Set.ofPred, LE.le, HDiv.hDiv, OfNat.ofNat, Finset.sum, Nat, Imo1988P4.singularities, HSub.hSub

    12 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  4. instance Imo1988P4.(instance at line 41) line 41 source
  5. abbrev Imo1988P4.last line 43 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities

    Proof uses: Subtype.mk, OfNat.ofNat

    6 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  6. theorem Imo1988P4.s_nonempty line 45 source

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

    Statement uses: Finset.Nonempty, Nat, Imo1988P4.singularities

    Proof uses: Exists.intro, Membership.mem, Finset, Imo1988P4.last, Iff.mp, Eq, Insert.insert, Finset.insert_eq_self, rfl

    5 instances, coercions and auxiliary constants left out.

  7. lemma Imo1988P4.f_aligned line 47 source

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

    Statement uses: Eq, Set, Real, Set.ofPred, LE.le, OfNat.ofNat, Imo1988P4.f, Imo1988P4.S

    Proof uses: of_eq_true, Eq.trans, HDiv.hDiv, Finset.sum, Nat, Imo1988P4.singularities, HSub.hSub, True, congrFun', congrArg, funext, eq_self

    28 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  8. lemma Imo1988P4.div_lt_div' line 52 source

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

    Statement uses: Real, LT.lt, OfNat.ofNat, GT.gt, Iff, HDiv.hDiv

    Proof uses: Eq.mpr, Neg.neg, id, Eq, congrArg, Eq.symm, propext, neg_lt_neg_iff, HAdd.hAdd, div_neg, div_lt_div_iff_of_pos_left, Iff.mpr, Left.neg_pos_iff, Iff.rfl

    78 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  9. lemma Imo1988P4.anti_io line 55 source

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

    Statement uses: StrictAntiOn, Real, Imo1988P4.f, Set.Iio, OfNat.ofNat

    Proof uses: StrictAntiOn.add_const, Finset.sum, Nat, Imo1988P4.singularities, HDiv.hDiv, HSub.hSub, HAdd.hAdd, Membership.mem, Set, LT.lt, Finset.sum_lt_sum_of_nonempty, Imo1988P4.s_nonempty, Finset, LE.le, Iff.mpr, Nat.one_le_cast, And.left, Eq.mp, And, Eq.mpr and 55 more

    105 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

  10. lemma Imo1988P4.anti_oi line 61 source

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

    Statement uses: StrictAntiOn, Real, Imo1988P4.f, Set.Ioi, OfNat.ofNat, Nat

    Proof uses: StrictAntiOn.add_const, Finset.sum, Imo1988P4.singularities, HDiv.hDiv, HSub.hSub, HAdd.hAdd, Membership.mem, Set, LT.lt, Finset.sum_lt_sum_of_nonempty, Imo1988P4.s_nonempty, Finset, LE.le, Iff.mpr, Nat.cast_le_ofNat, And.right, Eq.mp, And, Eq.mpr, id and 9 more

    96 instances, coercions and auxiliary constants left out.

    Tactic trace: 7 steps

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

  11. lemma Imo1988P4.component_anti_oo line 67 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, StrictAntiOn, Real, HDiv.hDiv, HSub.hSub, Set.Ioo, HAdd.hAdd, OfNat.ofNat

    Proof uses: Subtype.mk, LT.lt, LE.le, cast, Eq.symm, Eq.trans, implies_congr, Eq.refl, congrFun', congrArg, Nat.cast_one, Iff.mpr, Order.add_one_le_iff, Set, dite, Eq.mpr, id, Eq, propext, div_lt_div_iff_of_pos_left and 61 more

    158 instances, coercions and auxiliary constants left out.

    Tactic trace: 21 steps

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

  12. lemma Imo1988P4.anti_oo line 80 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, StrictAntiOn, Real, Imo1988P4.f, Set.Ioo, HAdd.hAdd, OfNat.ofNat

    Proof uses: StrictAntiOn.add_const, Finset.sum, HDiv.hDiv, HSub.hSub, Set, LT.lt, Finset.sum_lt_sum_of_nonempty, Imo1988P4.s_nonempty, Imo1988P4.component_anti_oo, Subtype.mk, Neg.neg

    58 instances, coercions and auxiliary constants left out.

  13. lemma Imo1988P4.component_continuous line 90 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, ContinuousOn, Real, HDiv.hDiv, HSub.hSub, Union.union, Set, Set.Iio, Set.Ioi

    Proof uses: Eq.mpr, Subtype.mk, And, id, Eq, congrArg, propext, continuousOn_union_iff_of_isOpen, isOpen_Iio, isOpen_Ioi, And.intro, ContinuousOn.div₀, continuousOn_const, ContinuousOn.sub, continuousOn_id

    66 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

  14. lemma Imo1988P4.continuous_oi line 98 source

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

    Statement uses: ContinuousOn, Real, Imo1988P4.f, Set.Ioi, OfNat.ofNat, Nat

    Proof uses: ContinuousOn.add, Finset.sum, Imo1988P4.singularities, HDiv.hDiv, HSub.hSub, Neg.neg, continuousOn_finsetSum, Membership.mem, Finset, ContinuousOn.mono, Union.union, Set, Set.Iio, Subtype.mk, Imo1988P4.component_continuous, Eq.mpr, LE.le, id, Eq, Eq.trans and 10 more

    71 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  15. lemma Imo1988P4.continuous_oo line 104 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, ContinuousOn, Real, Imo1988P4.f, Set.Ioo, HAdd.hAdd, OfNat.ofNat

    Proof uses: ContinuousOn.add, Finset.sum, HDiv.hDiv, HSub.hSub, Neg.neg, continuousOn_finsetSum, ContinuousOn.mono, Union.union, Set, Set.Iio, Subtype.mk, Set.Ioi, Imo1988P4.component_continuous, Eq.mpr, LE.le, LT.lt, id, Eq, Eq.trans, Not and 13 more

    83 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

  16. lemma Imo1988P4.component_atBot each singularity (at the integers) has the left side approaching bot and right side approaching top line 118 source

    Source comment

    each singularity (at the integers) has the left side approaching bot and right side approaching top

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Filter.Tendsto, Real, HDiv.hDiv, HSub.hSub, nhdsWithin, Set.Iio, Filter.atBot

    Proof uses: Eq.mpr, Filter.Eventually, LE.le, id, Eq, congrArg, propext, Filter.tendsto_atBot, Exists, Set, And, Filter, Filter.eventually_iff_exists_mem, LT.lt, OfNat.ofNat, Iff.mpr, Nat.cast_pos, And.left, Eq.mp, dite and 87 more

    165 instances, coercions and auxiliary constants left out.

    Tactic trace: 26 steps

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

    lemma component_atBot (k: singularities) : Tendsto (fun (x: ℝ) => k / (x - k)) (𝓝[<] k) atBot := by
    …

    Mentions: Imo1988P4.singularities

  17. lemma Imo1988P4.component_atTop line 140 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Filter.Tendsto, Real, HDiv.hDiv, HSub.hSub, nhdsWithin, Set.Ioi, Filter.atTop

    Proof uses: Eq.mpr, Filter.Eventually, LE.le, id, Eq, congrArg, propext, Filter.tendsto_atTop, Exists, Set, And, Filter, Filter.eventually_iff_exists_mem, OfNat.ofNat, Subtype.mk, Eq.mp, dite, LT.lt, Exists.intro, Set.Ioo and 61 more

    151 instances, coercions and auxiliary constants left out.

    Tactic trace: 21 steps

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

  18. lemma Imo1988P4.f_atTop line 156 source

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

    Statement uses: Filter.Tendsto, Real, Imo1988P4.f, Filter.atTop, nhds, Neg.neg, HDiv.hDiv, OfNat.ofNat, Nat

    Proof uses: id, Membership.mem, Finset, Imo1988P4.singularities, HSub.hSub, Eq.mpr, LE.le, GT.gt, Exists, GE.ge, LT.lt, Dist.dist, Eq, forall_congr, Finset.Icc, Eq.trans, And, implies_congr, Exists.intro, HAdd.hAdd and 22 more

    135 instances, coercions and auxiliary constants left out.

    Tactic trace: 11 steps

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

  19. lemma Imo1988P4.f_atBot line 171 source

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

    Statement uses: Filter.Tendsto, Real, Imo1988P4.f, Filter.atBot, nhds, Neg.neg, HDiv.hDiv, OfNat.ofNat, Nat

    Proof uses: id, Membership.mem, Finset, Imo1988P4.singularities, HSub.hSub, Eq.mpr, LE.le, Eq, forall_congr, Finset.Icc, Eq.trans, And, implies_congr, Eq.refl, GT.gt, Filter.Eventually, LT.lt, Dist.dist, abs, congrFun' and 25 more

    129 instances, coercions and auxiliary constants left out.

    Tactic trace: 12 steps

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

  20. lemma Imo1988P4.erase_continuousOn line 187 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, ContinuousOn, Real, Finset.sum, SDiff.sdiff, Singleton.singleton, HDiv.hDiv, HSub.hSub, Set.Ioo, OfNat.ofNat, HAdd.hAdd

    Proof uses: continuousOn_finsetSum, Eq.mpr, And, Not, Eq, id, forall_congr, implies_congr, Eq.trans, congrArg, Eq.refl, ContinuousOn.mono, Union.union, Set, Set.Iio, Subtype.mk, Set.Ioi, Imo1988P4.component_continuous, LT.lt, Or and 10 more

    111 instances, coercions and auxiliary constants left out.

    Tactic trace: 11 steps

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

  21. lemma Imo1988P4.erase_continuousAt line 199 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, ContinuousAt, Real, HSub.hSub, Finset.sum, SDiff.sdiff, Singleton.singleton, HDiv.hDiv, OfNat.ofNat

    Proof uses: ContinuousAt.add, Neg.neg, ContinuousOn.continuousAt, Set.Ioo, HAdd.hAdd, Imo1988P4.erase_continuousOn, Iff.mpr, Set, Filter, nhds, Exists, And, LE.le, IsOpen, mem_nhds_iff, Exists.intro, And.intro, le_refl, isOpen_Ioo, of_eq_true and 7 more

    107 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  22. lemma Imo1988P4.f_singularities_nhdsLT_atBot line 202 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Filter.Tendsto, Real, Imo1988P4.f, nhdsWithin, Set.Iio, Filter.atBot

    Proof uses: Eq.mpr, HAdd.hAdd, HDiv.hDiv, HSub.hSub, Finset.sum, SDiff.sdiff, Singleton.singleton, OfNat.ofNat, id, Eq, congrArg, of_eq_true, Eq.trans, True, funext, congrFun', Finset.sum_sdiff_eq_sub, LE.le, Finset.sum_singleton, add_sub_cancel and 13 more

    54 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

  23. lemma Imo1988P4.f_singularities_nhdsGT_atTop line 207 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Filter.Tendsto, Real, Imo1988P4.f, nhdsWithin, Set.Ioi, Filter.atTop

    Proof uses: Eq.mpr, HAdd.hAdd, HDiv.hDiv, HSub.hSub, Finset.sum, SDiff.sdiff, Singleton.singleton, OfNat.ofNat, id, Eq, congrArg, of_eq_true, Eq.trans, True, funext, congrFun', Finset.sum_sdiff_eq_sub, LE.le, Finset.sum_singleton, add_sub_cancel and 13 more

    54 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

  24. lemma Imo1988P4.root_Ioi we can have a stronger condition by replacing ∃ with ∃! line 220 source

    Source comment

    we can have a stronger condition by replacing ∃ with ∃! from combining the antitone condition

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

    Statement uses: Exists, Real, And, Membership.mem, Set, Set.Ioi, OfNat.ofNat, Nat, Eq, Imo1988P4.f

    Proof uses: LE.le, Filter, nhdsWithin, Filter.principal, Eq.mpr, id, Set.Ioo, LT.lt, congrArg, funext, congrFun', Exists.intro, HAdd.hAdd, And.intro, lt_add_one, Set.Ioo_subset_Ioi_self, Filter.atTop, Iff.mpr, Filter.le_principal_iff, Filter.Ioi_mem_atTop and 21 more

    119 instances, coercions and auxiliary constants left out.

    Tactic trace: 9 steps

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

    lemma root_Ioi : ∃ x ∈ Set.Ioi 70, f x = 0 := by
    …

    Mentions: Imo1988P4.f

  25. lemma Imo1988P4.root_Ioo line 231 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Ne, OfNat.ofNat, Exists, Real, And, Set, Set.Ioo, HAdd.hAdd, Eq, Imo1988P4.f

    Proof uses: LE.le, Filter, nhdsWithin, Set.Ioi, Filter.principal, Eq.mpr, id, LT.lt, congrArg, funext, congrFun', Exists.intro, And.intro, of_eq_true, Eq.trans, True, le_refl, Set.Iio, lt_add_one, Subtype.mk and 68 more

    186 instances, coercions and auxiliary constants left out.

    Tactic trace: 20 steps

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

  26. def Imo1988P4.r line 249 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, NNReal

    Proof uses: dite, Eq, OfNat.ofNat, Subtype.mk, Real, LE.le, Exists.choose, And, Set, Set.Ioi, Imo1988P4.f, Imo1988P4.root_Ioi, Not, Set.Ioo, HAdd.hAdd, Imo1988P4.root_Ioo

    22 instances, coercions and auxiliary constants left out.

  27. lemma Imo1988P4.r_root line 253 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Eq, Real, Imo1988P4.f, Imo1988P4.r, OfNat.ofNat

    Proof uses: dite, Eq.mpr, Subtype.mk, LE.le, Exists.choose, And, Set, Set.Ioi, Imo1988P4.root_Ioi, id, congrFun', congrArg, NNReal, Eq.trans, Not, Set.Ioo, HAdd.hAdd, Imo1988P4.root_Ioo, Exists, funext and 13 more

    29 instances, coercions and auxiliary constants left out.

    Tactic trace: 7 steps

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

  28. lemma Imo1988P4.r_bounds line 260 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Ne, OfNat.ofNat, Real, Set, Set.Ioo, HAdd.hAdd, Imo1988P4.r

    Proof uses: Eq.mpr, And, LT.lt, Subtype.mk, LE.le, Exists.choose, Eq, Imo1988P4.f, Exists, Imo1988P4.root_Ioo, of_eq_false, eq_false, funext, congrFun', congrArg, Exists.choose.congr_simp, id, Eq.trans, NNReal, dite and 7 more

    37 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  29. lemma Imo1988P4.r_bounds₁ line 264 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Ne, OfNat.ofNat, LT.lt, NNReal, Imo1988P4.r, HAdd.hAdd

    Proof uses: And.right, Real, Iff.mp, Set, Set.Ioo, And, Set.mem_Ioo, Imo1988P4.r_bounds

    32 instances, coercions and auxiliary constants left out.

  30. lemma Imo1988P4.r_bounds₂ line 267 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, LT.lt, NNReal, Imo1988P4.r

    Proof uses: dite, Eq, OfNat.ofNat, Eq.mpr, Subtype.mk, Real, LE.le, Exists.choose, And, Set, Set.Ioi, Imo1988P4.f, Imo1988P4.root_Ioi, id, congr, congrArg, Eq.trans, Not, Set.Ioo, HAdd.hAdd and 19 more

    43 instances, coercions and auxiliary constants left out.

    Tactic trace: 7 steps

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

  31. lemma Imo1988P4.r_not_singularity line 274 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Ne, NNReal, Imo1988P4.r

    Proof uses: dite, LE.le, Eq.mpr, id, Eq, Eq.trans, LT.lt, Imo1988P4.r_bounds₂, Not, OfNat.ofNat, Subtype.mk, Eq.mp, And, HAdd.hAdd, Imo1988P4.r_bounds₁, congrFun', congrArg, Eq.symm, Nat.cast_one

    55 instances, coercions and auxiliary constants left out.

    Tactic trace: 16 steps

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

  32. lemma Imo1988P4.r_le_r_70 line 286 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, LE.le, NNReal, Imo1988P4.r, Imo1988P4.last

    Proof uses: dite, Subtype.mk, Eq, OfNat.ofNat, le_refl, Eq.symm, Not, le_of_lt, Trans.trans, LT.lt, HAdd.hAdd, Imo1988P4.r_bounds₁, Eq.mpr, id, Eq.trans, congrFun', congrArg, Nat.cast_one, Eq.mp, Finset.Icc and 4 more

    45 instances, coercions and auxiliary constants left out.

    Tactic trace: 11 steps

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

  33. lemma Imo1988P4.r_inj line 295 source

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

    Statement uses: Function.Injective, Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, NNReal, Imo1988P4.r

    Proof uses: Eq, Mathlib.Tactic.Contrapose.contrapose₁, id, Not, Ne, LT.lt, Or, Classical.em, Subtype.mk, HAdd.hAdd, OfNat.ofNat, Imo1988P4.r_bounds₁, Eq.mp, Finset.Icc, And, LE.le, congrArg, propext, Finset.mem_Icc, ne_of_lt and 11 more

    43 instances, coercions and auxiliary constants left out.

    Tactic trace: 17 steps

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

  34. abbrev Imo1988P4.rset line 308 source

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

    Statement uses: Finset, Real

    Proof uses: Finset.image, Subtype, Nat, Membership.mem, Imo1988P4.singularities, Function.comp, NNReal, Imo1988P4.r, Finset.univ

    5 instances, coercions and auxiliary constants left out.

  35. lemma Imo1988P4.rset_card line 310 source

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

    Statement uses: Eq, Nat, Finset.card, Real, Imo1988P4.rset, OfNat.ofNat

    Proof uses: Finset.card_image_of_injective, Subtype, Membership.mem, Finset, Imo1988P4.singularities, Function.comp, NNReal, Imo1988P4.r, Finset.univ, Function.Injective.comp, NNReal.coe_injective, Imo1988P4.r_inj

    6 instances, coercions and auxiliary constants left out.

  36. lemma Imo1988P4.singularities_sum line 313 source

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

    Statement uses: Eq, Real, Finset.sum, Fin, OfNat.ofNat, Nat, NNReal, Finset.univ, Imo1988P4.r, Subtype.mk, Membership.mem, Finset, Imo1988P4.singularities, HAdd.hAdd, Imo1988P4.rset

    Proof uses: Eq.mpr, Finset.image, Subtype, Function.comp, id, congrArg, Imo1988P4.rset.eq_1, Finset.sum_image, Function.Injective.injOn, Function.Injective.comp, NNReal.coe_injective, Imo1988P4.r_inj, Finset.attach, congrFun', NNReal.coe_sum, Eq.trans, congr, Eq.refl

    29 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

  37. def Imo1988P4.I the endpoints don't matter in the volume, so we don't need to know if they are in the solution or not line 323 source

    Source comment

    the endpoints don't matter in the volume, so we don't need to know if they are in the solution or not

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Set, Real

    Proof uses: ite, LE.le, OfNat.ofNat, Imo1988P4.f, Set.Icc, Set.Ioc, Imo1988P4.r

    13 instances, coercions and auxiliary constants left out.

    def I (n: singularities) := (if 0 ≤ f n then Set.Icc else Set.Ioc) (n: ℝ) (r n)

    Mentions: Imo1988P4.singularities, Imo1988P4.f, Imo1988P4.r

  38. lemma Imo1988P4.I_bounds line 325 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Ne, OfNat.ofNat, LE.le, Set, Real, Imo1988P4.I, Set.Ico, HAdd.hAdd

    Proof uses: LT.lt, NNReal, Imo1988P4.r, Imo1988P4.r_bounds₁, id, Imo1988P4.f, Decidable, ite, Set.Icc, Set.Ioc, Not, Eq.mpr, Eq, congrFun', congrArg, ite_eq_right, LE.le.trans, Set.Ioc_subset_Icc_self, Set.Icc_subset_Ico_right, cast and 6 more

    56 instances, coercions and auxiliary constants left out.

    Tactic trace: 8 steps

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

  39. lemma Imo1988P4.I_bounds' line 331 source

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

    Statement uses: LE.le, Set, Real, Imo1988P4.I, Subtype.mk, Nat, Membership.mem, Finset, Imo1988P4.singularities, OfNat.ofNat, Iff.mp, Eq, Insert.insert, Finset.insert_eq_self, rfl, Set.Ici

    Proof uses: id, Imo1988P4.f, Decidable, ite, Set.Icc, Set.Ioc, Imo1988P4.r, Not, Eq.mpr, congrFun', congrArg, ite_eq_right, LE.le.trans, Set.Ioc_subset_Icc_self, Set.Icc_subset_Ici_self, ite_eq_left

    36 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

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

  40. lemma Imo1988P4.I_bounds_lower line 336 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Real, Set, Imo1988P4.I, LE.le

    Proof uses: OfNat.ofNat, Imo1988P4.f, Decidable, Not, Eq.mp, Set.Ioc, Imo1988P4.r, And, LT.lt, ite, Set.Icc, congrFun', congrArg, ite_eq_right, Imo1988P4.I.eq_1, ite_eq_left

    26 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

  41. lemma Imo1988P4.I_bounds_upper line 339 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Real, Set, Imo1988P4.I, LE.le, Imo1988P4.r

    Proof uses: OfNat.ofNat, Imo1988P4.f, Decidable, Not, Eq.mp, Set.Ioc, And, LT.lt, ite, Set.Icc, congrFun', congrArg, ite_eq_right, Imo1988P4.I.eq_1, ite_eq_left

    24 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

  42. lemma Imo1988P4.ico_stack line 342 source

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

    Statement uses: Eq, Set, Real, Set.Ico, OfNat.ofNat, Nat, Set.iUnion, Subtype, Membership.mem, Finset, Imo1988P4.singularities, HAdd.hAdd

    Proof uses: Eq.mpr, Iff, And, LE.le, LT.lt, Exists, id, Eq.trans, forall_congr, congr, congrArg, Subtype.mk, funext, propext, exists_prop_congr, Iff.of_eq, Eq.refl, Finset.Icc, Iff.intro, Exists.intro and 19 more

    74 instances, coercions and auxiliary constants left out.

    Tactic trace: 10 steps

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

  43. lemma Imo1988P4.I_connected line 350 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Set.OrdConnected, Real, Imo1988P4.I

    Proof uses: id, LE.le, OfNat.ofNat, Imo1988P4.f, Decidable, ite, Set, Set.Icc, Set.Ioc, Imo1988P4.r, Not, Eq.mpr, Eq, congrArg, ite_eq_right, ite_eq_left

    17 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

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

  44. lemma Imo1988P4.I_disjoint line 355 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Ne, Disjoint, Set, Real, Imo1988P4.I

    Proof uses: LT.lt, Not, Or, Classical.em, Subtype.mk, LE.le, Set.Ico, HAdd.hAdd, OfNat.ofNat, Imo1988P4.I_bounds, Eq.mp, Finset.Icc, And, congrArg, propext, Finset.mem_Icc, Imo1988P4.singularities.eq_1, Eq, Max.max, max_eq_right_of_lt and 34 more

    117 instances, coercions and auxiliary constants left out.

    Tactic trace: 27 steps

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

  45. lemma Imo1988P4.I_compl line 372 source

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

    Statement uses: Eq, Set, Real, Compl.compl, Set.iUnion, Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Imo1988P4.I, Union.union, Set.Iio, OfNat.ofNat, SDiff.sdiff, Set.Ico, HAdd.hAdd, Set.Ioi, Imo1988P4.r, Imo1988P4.last

    Proof uses: Set.ext, Iff.intro, dite, Or.inl, Or.inr, Eq.mpr, Exists, id, Eq.mp, congrArg, Imo1988P4.ico_stack, Exists.intro, And.intro, Not, Eq.trans, Set.iInter, congrFun', Set.compl_iUnion, forall_congr, LT.lt and 106 more

    132 instances, coercions and auxiliary constants left out.

    Tactic trace: 66 steps

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

  46. lemma Imo1988P4.I_aligned line 408 source

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

    Statement uses: Eq, Set, Real, Set.iUnion, Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Imo1988P4.I, Imo1988P4.S

    Proof uses: Eq.mpr, Iff, id, Iff.intro, Exists, congrArg, propext, Set.mem_iUnion, forall_exists_index, StrictAntiOn, Imo1988P4.f, Set.Ioc, Imo1988P4.r, dite, OfNat.ofNat, StrictAntiOn.mono, Set.Ioi, Imo1988P4.anti_oi, Set.Ioc_subset_Ioi_self, Not and 162 more

    170 instances, coercions and auxiliary constants left out.

    Tactic trace: 89 steps

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

  47. lemma Imo1988P4.I_volume line 456 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Eq, ENNReal, MeasureTheory.Measure, Real, Set, MeasureTheory.MeasureSpace.volume, Imo1988P4.I, HSub.hSub, Imo1988P4.r

    Proof uses: id, LE.le, OfNat.ofNat, Imo1988P4.f, Decidable, ite, Set.Icc, Set.Ioc, Not, Eq.mpr, congrFun', congrArg, ite_eq_right, ENNReal.ofReal, Real.volume_Ioc, Eq.refl, ite_eq_left, Real.volume_Icc

    37 instances, coercions and auxiliary constants left out.

    Tactic trace: 8 steps

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

  48. abbrev Imo1988P4.M line 467 source

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

    Statement uses: Polynomial, Real

    Proof uses: Finset.prod, Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Finset.univ, HSub.hSub, Polynomial.X, RingHom, Polynomial.C

    18 instances, coercions and auxiliary constants left out.

  49. abbrev Imo1988P4.M' line 469 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Polynomial, Real

    Proof uses: Finset.prod, SDiff.sdiff, Singleton.singleton, HSub.hSub, Polynomial.X, RingHom, Polynomial.C

    22 instances, coercions and auxiliary constants left out.

  50. abbrev Imo1988P4.p line 471 source

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

    Statement uses: Polynomial, Real

    Proof uses: HAdd.hAdd, Imo1988P4.M, HMul.hMul, RingHom, Polynomial.C, Neg.neg, HDiv.hDiv, OfNat.ofNat, Finset.sum, Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Finset.univ, Imo1988P4.M'

    24 instances, coercions and auxiliary constants left out.

  51. lemma Imo1988P4.M_sum line 473 source

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

    Statement uses: Eq, Real, Finset.sum, Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Finset.attach, OfNat.ofNat

    Proof uses: Eq.mpr, id, Eq.trans, congrFun', congrArg, of_decide_eq_true, Bool, Decidable.decide, Bool.true, Eq.refl

    38 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  52. lemma Imo1988P4.M_natDegree line 475 source

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

    Statement uses: Eq, Nat, Polynomial.natDegree, Real, Imo1988P4.M, OfNat.ofNat

    Proof uses: of_eq_true, Eq.trans, True, congrFun', congrArg, Finset.prod, Subtype, Membership.mem, Finset, Imo1988P4.singularities, Polynomial, Finset.univ, HSub.hSub, Polynomial.X, RingHom, Polynomial.C, Finset.card, HAdd.hAdd, Polynomial.natDegree_finsetProd_X_sub_C_eq_card, Finset.attach and 3 more

    26 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  53. lemma Imo1988P4.M'_natDegree line 477 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Eq, Polynomial.natDegree, Real, Imo1988P4.M', OfNat.ofNat

    Proof uses: of_eq_true, Eq.trans, True, congrFun', congrArg, Finset.prod, Polynomial, SDiff.sdiff, Singleton.singleton, HSub.hSub, Polynomial.X, RingHom, Polynomial.C, Finset.card, Polynomial.natDegree_finsetProd_X_sub_C_eq_card, Finset.erase, Finset.sdiff_singleton_eq_erase, Finset.card_erase_of_mem, Nat.card_Icc, eq_self

    29 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  54. lemma Imo1988P4.M_principal_term' line 479 source

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

    Statement uses: LT.lt, Nat, Polynomial.natDegree, Real, HMul.hMul, Polynomial, RingHom, Polynomial.C, Neg.neg, HDiv.hDiv, OfNat.ofNat, Finset.sum, Subtype, Membership.mem, Finset, Imo1988P4.singularities, Finset.univ, Imo1988P4.M', Imo1988P4.M

    Proof uses: Eq.mpr, id, Eq, congrArg, Polynomial.natDegree_C_mul, Not.intro, Mathlib.Tactic.Linarith.lt_irrefl, Eq.mp, HAdd.hAdd, inferInstance, AddMonoidWithOne, Mathlib.Meta.NormNum.instAtLeastTwo, Mathlib.Tactic.Ring.of_eq, Mathlib.Tactic.Ring.Common.add_congr, Int.rawCast, Ring, Int.negOfNat, Nat.rawCast, Mathlib.Meta.NormNum.instAddMonoidWithOne, Mathlib.Tactic.Ring.Common.mul_congr and 68 more

    125 instances, coercions and auxiliary constants left out.

    Tactic trace: 7 steps

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

  55. lemma Imo1988P4.p_natDegree line 484 source

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

    Statement uses: Eq, Nat, Polynomial.natDegree, Real, Imo1988P4.p, OfNat.ofNat

    Proof uses: Eq.mpr, Imo1988P4.M, id, congrArg, HAdd.hAdd, Polynomial, HMul.hMul, RingHom, Polynomial.C, Neg.neg, HDiv.hDiv, Finset.sum, Subtype, Membership.mem, Finset, Imo1988P4.singularities, Finset.univ, Imo1988P4.M', Polynomial.natDegree_add_eq_left_of_degree_lt, Polynomial.degree_lt_degree and 2 more

    26 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  56. lemma Imo1988P4.p_ne_zero line 488 source

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

    Statement uses: Ne, Polynomial, Real, Imo1988P4.p, OfNat.ofNat

    Proof uses: Iff.mp, LE.le, WithBot, Nat, Polynomial.degree, Polynomial.zero_le_degree_iff, LT.lt.le, LT.lt, Polynomial.natDegree, Polynomial.natDegree_pos_iff_degree_pos, Eq.mpr, id, Eq, congrArg, Imo1988P4.p_natDegree

    16 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

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

  57. example Imo1988P4.(example at line 490) line 490 source
  58. lemma Imo1988P4.p_leadingCoeff line 494 source

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

    Statement uses: Eq, Real, Polynomial.leadingCoeff, Imo1988P4.p, OfNat.ofNat

    Proof uses: Eq.mpr, Finsupp, Nat, Polynomial.coeff, Polynomial.natDegree, id, congrArg, Polynomial.leadingCoeff.eq_1, Imo1988P4.p_natDegree, HAdd.hAdd, Imo1988P4.M, HMul.hMul, Polynomial, RingHom, Polynomial.C, Neg.neg, HDiv.hDiv, Finset.sum, Subtype, Membership.mem and 47 more

    83 instances, coercions and auxiliary constants left out.

    Tactic trace: 14 steps

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

  59. lemma Imo1988P4.p_nextCoeff line 508 source

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

    Statement uses: Eq, Real, Polynomial.nextCoeff, Imo1988P4.p, Neg.neg, OfNat.ofNat, Nat

    Proof uses: Eq.mpr, Finsupp, Polynomial.coeff, HSub.hSub, Polynomial.natDegree, id, congrArg, Polynomial.nextCoeff_of_natDegree_pos, lt_of_not_ge, LE.le, Mathlib.Tactic.Linarith.lt_irrefl, Int, Eq.mp, LT.lt, HAdd.hAdd, HMul.hMul, Mathlib.Tactic.Ring.of_eq, Mathlib.Tactic.Ring.Common.add_congr, Int.rawCast, inferInstance and 116 more

    164 instances, coercions and auxiliary constants left out.

    Tactic trace: 16 steps

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

  60. lemma Imo1988P4.p_roots_card_le_rset_card line 522 source

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

    Statement uses: LE.le, Nat, Multiset.card, Real, Polynomial.roots, Imo1988P4.p, Finset.val, Imo1988P4.rset

    Proof uses: LE.le.trans, Polynomial.natDegree, Polynomial.card_roots', Eq.mpr, Finset.card, id, Eq, congrArg, Finset.card_val, OfNat.ofNat, Imo1988P4.rset_card, Imo1988P4.p_natDegree, le_refl

    11 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  61. lemma Imo1988P4.p_root_of_r_root line 525 source

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

    Statement uses: Subtype, Nat, Membership.mem, Finset, Imo1988P4.singularities, Polynomial.IsRoot, Real, Imo1988P4.p, Imo1988P4.r

    Proof uses: id, Eq.mpr, HAdd.hAdd, Polynomial, Imo1988P4.M, HMul.hMul, RingHom, Polynomial.C, Neg.neg, HDiv.hDiv, OfNat.ofNat, Finset.sum, Finset.univ, Imo1988P4.M', Eq, Finset.prod, Finset.attach, HSub.hSub, SDiff.sdiff, Singleton.singleton and 124 more

    167 instances, coercions and auxiliary constants left out.

    Tactic trace: 18 steps

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

  62. lemma Imo1988P4.rset_le_p_roots line 549 source

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

    Statement uses: LE.le, Multiset, Real, Finset.val, Imo1988P4.rset, Polynomial.roots, Imo1988P4.p

    Proof uses: Iff.mpr, HasSubset.Subset, Finset.val_le_iff_val_subset, Membership.mem, Nat, Exists, Finset, Imo1988P4.singularities, And, Subtype, Multiset.attach, Subtype.mk, Eq, Imo1988P4.r, Eq.mp, Eq.trans, Multiset.map, Multiset.dedup, congrFun', congrArg and 13 more

    27 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

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

  63. lemma Imo1988P4.rset_eq_p_roots line 556 source

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

    Statement uses: Eq, Multiset, Real, Finset.val, Imo1988P4.rset, Polynomial.roots, Imo1988P4.p

    Proof uses: Multiset.eq_of_le_of_card_le, Imo1988P4.rset_le_p_roots, Imo1988P4.p_roots_card_le_rset_card

    4 instances, coercions and auxiliary constants left out.

  64. lemma Imo1988P4.p_eq_X_sub_C_rset_prod line 559 source

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

    Statement uses: Eq, Polynomial, Real, Imo1988P4.p, Finset.prod, Imo1988P4.rset, HSub.hSub, Polynomial.X, RingHom, Polynomial.C

    Proof uses: HMul.hMul, Polynomial.leadingCoeff, Multiset.prod, Multiset.map, Polynomial.roots, Polynomial.C_leadingCoeff_mul_prod_multiset_X_sub_C, Eq.mpr, Nat, Multiset.card, Polynomial.natDegree, Finset.val, id, congrArg, Multiset, Eq.symm, Imo1988P4.rset_eq_p_roots, Finset.card, Finset.card_val, OfNat.ofNat, Imo1988P4.rset_card and 20 more

    46 instances, coercions and auxiliary constants left out.

    Tactic trace: 7 steps

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

  65. lemma Imo1988P4.roots_sum line 565 source

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

    Statement uses: Eq, Real, Finset.sum, Imo1988P4.rset, OfNat.ofNat, Nat

    Proof uses: Polynomial.nextCoeff, Finset.prod, Polynomial, HSub.hSub, Polynomial.X, RingHom, Polynomial.C, Neg.neg, Eq.mpr, Imo1988P4.p, id, congrArg, Eq.symm, Imo1988P4.p_eq_X_sub_C_rset_prod, Imo1988P4.p_nextCoeff, Eq.mp, Eq.trans, congrFun', Polynomial.prod_X_sub_C_nextCoeff

    42 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

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

  66. problem Imo1988P4.imo1988_p4 line 574 source

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

    Statement uses: Exists, Nat, Fin, Set, Real, And, Set.OrdConnected, Pairwise, Disjoint, Eq, Set.iUnion, Set.ofPred, LE.le, HDiv.hDiv, OfNat.ofNat, Finset.sum, Finset.Icc, HSub.hSub, ENNReal, Finset.univ and 2 more

    Proof uses: Exists.intro, Imo1988P4.I, Subtype.mk, Membership.mem, Finset, Imo1988P4.singularities, HAdd.hAdd, And.intro, Imo1988P4.I_connected, Ne, Imo1988P4.I_disjoint, Eq.mpr, Not, id, congrArg, Fin.val_ne_of_ne, Subtype, Function.Surjective.iUnion_comp, Fin.mk, Eq.mp and 30 more

    117 instances, coercions and auxiliary constants left out.

    Tactic trace: 18 steps

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