Compfiles/Imo2025P4.lean
67 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 2025, Problem 4
A proper divisor of a positive integer N is a positive divisor of N other than N itself. The infinite sequence a₁, a₂, ... consists of positive integers, each of which has at least three proper divisors. For each n ⩾ 1, the integer aₙ₊₁ is the sum of the three largest proper divisors of aₙ. Determine all possible values of a₁.
Imported by 1 file
- determine
Imo2025P4.answerline 35 sourcestandard axioms: propext what this means
Statement uses:
Set,NatProof uses:
Set.ofPred,Exists,And,Eq,HMul.hMul,HPow.hPow,OfNat.ofNat,Nat.Coprime7 instances, coercions and auxiliary constants left out.
- def
Imo2025P4.ψline 41 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
List.sum,List.take,OfNat.ofNat,List.reverse,Finset.sort,Nat.properDivisors,LE.le11 instances, coercions and auxiliary constants left out.
- def
Imo2025P4.Sline 43 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set,NatProof uses:
Set.ofPred,LE.le,OfNat.ofNat,Finset.card,Nat.properDivisors2 instances, coercions and auxiliary constants left out.
- def
Imo2025P4.ValidSequenceline 45 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
And,LT.lt,OfNat.ofNat,Membership.mem,Set, Imo2025P4.S,Eq,HAdd.hAdd, Imo2025P4.ψ5 instances, coercions and auxiliary constants left out.
- def
Imo2025P4.smallDivisorsline 47 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,ListProof uses:
Finset.sort,Finset.erase,Nat.divisors,OfNat.ofNat,LE.le9 instances, coercions and auxiliary constants left out.
- def
Imo2025P4.threeSmallestDivisorsline 49 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,ListProof uses:
List.take,OfNat.ofNat, Imo2025P4.smallDivisors1 instances, coercions and auxiliary constants left out.
- lemma
Imo2025P4.take_smallDivisors_eq_threeSmallestDivisorsline 51 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,List,List.take,OfNat.ofNat, Imo2025P4.smallDivisors, Imo2025P4.threeSmallestDivisorsProof uses:
rfl2 instances, coercions and auxiliary constants left out.
- lemma
Imo2025P4.mem_divisors_erase_oneline 54 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Iff,Membership.mem,Finset,Finset.erase,Nat.divisors,OfNat.ofNat,And,Ne,Dvd.dvdProof uses:
Eq.mpr,id,Eq,congrArg,propext,Finset.mem_erase,Nat.mem_divisors,Iff.rfl10 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.dvd_of_mem_divisors_erase_oneline 58 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Finset,Finset.erase,Nat.divisors,OfNat.ofNat,Dvd.dvdProof uses:
And.left,Ne,And.right,And,Iff.mp, Imo2025P4.mem_divisors_erase_one10 instances, coercions and auxiliary constants left out.
- lemma
Imo2025P4.pos_of_mem_divisors_erase_oneline 61 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Finset,Finset.erase,Nat.divisors,OfNat.ofNat,LT.ltProof uses:
Nat.pos_of_mem_divisors,Iff.mpr,And,Dvd.dvd,Ne,Nat.mem_divisors,And.right,Iff.mp, Imo2025P4.mem_divisors_erase_one10 instances, coercions and auxiliary constants left out.
- lemma
Imo2025P4.mem_divisors_erase_one_of_dvd_ne_oneline 64 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Dvd.dvd,Ne,OfNat.ofNat,Membership.mem,Finset,Finset.erase,Nat.divisorsProof uses:
Iff.mpr,And, Imo2025P4.mem_divisors_erase_one,And.intro10 instances, coercions and auxiliary constants left out.
- lemma
Imo2025P4.reverse_properDivisors_eq_div_divisors_erase_oneline 68 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Ne,OfNat.ofNat,Eq,List,List.reverse,Finset.sort,Nat.properDivisors,LE.le,List.map,HDiv.hDiv, Imo2025P4.smallDivisorsProof uses:
Eq.mpr,id,congrArg,propext,List.reverse_eq_iff,List.SortedLT.eq_of_mem_iff,Finset.sortedLT_sort,List.SortedLT,List.Pairwise,LT.lt,List.sortedLT_iff_pairwise,List.pairwise_reverse,List.pairwise_map,List.Pairwise.imp,And,Membership.mem,Finset.erase,Nat.divisors,Nat.div_lt_div_left, Imo2025P4.dvd_of_mem_divisors_erase_one and 27 more46 instances, coercions and auxiliary constants left out.
Tactic trace: 31 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.psi_eq_of_threeSmallestDivisors_eqline 96 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Ne,OfNat.ofNat,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nil, Imo2025P4.ψ,HAdd.hAdd,HDiv.hDivProof uses:
Eq.mpr,List.sum,List.take,List.reverse,Finset.sort,Nat.properDivisors,LE.le,id,congrArg,Imo2025P4.ψ.eq_1,List.map, Imo2025P4.smallDivisors, Imo2025P4.reverse_properDivisors_eq_div_divisors_erase_one,Eq.symm,List.map_take, Imo2025P4.take_smallDivisors_eq_threeSmallestDivisors,of_eq_true,Eq.trans,True,congrand 5 more24 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.answer_mem_Sline 102 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.answer, Imo2025P4.SProof uses:
Exists,And,Eq,HMul.hMul,HPow.hPow,OfNat.ofNat,Nat.Coprime,LT.lt,LE.le,le_of_not_gt,Mathlib.Tactic.Linarith.lt_irrefl,Int,Eq.mp,HAdd.hAdd,Neg.neg,HSub.hSub,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Nat.rawCastand 79 more131 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.pos_of_mem_Sline 117 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,LT.lt,OfNat.ofNatProof uses:
Decidable.byContradiction,Not,Eq,Finset.card,Nat.properDivisors,Eq.mpr,id,congrArg,Eq.mp,Eq.trans,LE.le,EmptyCollection.emptyCollection,Finset,Nat.properDivisors_zero,Finset.card_empty,Eq.refl23 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.answer_posline 125 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.answer,LT.lt,OfNat.ofNatProof uses: Imo2025P4.pos_of_mem_S, Imo2025P4.answer_mem_S
4 instances, coercions and auxiliary constants left out.
- lemma
Imo2025P4.sort_take_three_eq_of_first_threeline 127 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Nat,Membership.mem,Finset.erase,LE.le,Eq,List,List.take,OfNat.ofNat,Finset.sort,List.cons,List.nil16 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.divisors_erase_one_sort_take_three_eq_two_three_sixline 133 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Ne,OfNat.ofNat,Dvd.dvd,Not,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nilProof uses: Imo2025P4.sort_take_three_eq_of_first_three,
Finset.erase,Nat.divisors,Membership.mem,Finset,LT.lt,Nat.pos_of_mem_divisors,Iff.mpr,And,Nat.mem_divisors,id,And.intro,dvd_refl,Eq.mp,Eq.trans,congrArg,Aesop.BuiltinRules.not_intro,False,False.elim,eq_falseand 29 more44 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.divisors_erase_one_sort_take_three_eq_two_three_fourline 145 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Ne,OfNat.ofNat,Dvd.dvd,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nilProof uses: Imo2025P4.sort_take_three_eq_of_first_three,
Finset.erase,Nat.divisors,Membership.mem,Finset,LT.lt,Nat.pos_of_mem_divisors,Iff.mpr,And,Nat.mem_divisors,id,And.intro,Not,dvd_refl,Eq.mp,Eq.trans,congrArg,Aesop.BuiltinRules.not_intro,False,False.elimand 2 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.divisors_erase_one_sort_take_three_eq_two_three_fiveline 154 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Ne,OfNat.ofNat,Dvd.dvd,Not,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nilProof uses: Imo2025P4.sort_take_three_eq_of_first_three,
Finset.erase,Nat.divisors,Membership.mem,Finset,LT.lt,Nat.pos_of_mem_divisors,Iff.mpr,And,Nat.mem_divisors,id,And.intro,dvd_refl,Eq.mp,Eq.trans,congrArg,Aesop.BuiltinRules.not_intro,False,False.elim,eq_falseand 29 more44 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.psi_answer_mem_S'line 166 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.answer, Imo2025P4.ψProof uses:
Ne,OfNat.ofNat,Exists,And,Eq,HMul.hMul,HPow.hPow,Nat.Coprime,dite,Exists.intro,And.intro,Not,Dvd.dvd,Iff.mp,Nat.Prime.coprime_iff_not_dvd,Nat.prime_two,Nat.Coprime.of_dvd_left,Nat.Coprime.symm,Nat.prime_five,Listand 64 more83 instances, coercions and auxiliary constants left out.
Tactic trace: 44 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.psi_answer_mem_Sline 197 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.answer,Nat.iterate, Imo2025P4.ψProof uses:
Nat.recAux,Eq.mpr,OfNat.ofNat,id,Eq,congrArg,Function.iterate_zero,id_eq,HAdd.hAdd,Exists,And,HMul.hMul,HPow.hPow,Nat.Coprime,Function.iterate_succ_apply', Imo2025P4.psi_answer_mem_S'11 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.answer_sufficientline 203 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.answer,Exists,And,Eq,OfNat.ofNat, Imo2025P4.ValidSequenceProof uses:
Nat.iterate, Imo2025P4.ψ,Exists.intro,And.intro,rfl, Imo2025P4.psi_answer_mem_S,LT.lt, Imo2025P4.S,HAdd.hAdd, Imo2025P4.answer_pos, Imo2025P4.answer_mem_S,Function.iterate_succ_apply'7 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.odd_sum_iff_length_of_forall_oddline 211 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Nat,Membership.mem,Odd,Iff,List.sum,List.lengthProof uses:
List.rec,List.nil,of_eq_true,Eq.trans,False,True,congr,congrArg,iff_self,List.cons,Or,Eq,eq_true,or_true,Eq.mpr,HAdd.hAdd,id,List.sum_cons,OfNat.ofNat,List.length_consand 11 more16 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.odd_of_sum_oddline 219 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Nat,Odd,LE.le,List.length,Membership.mem,List.sum,List.takeProof uses:
Eq.mpr,id,Eq,congrArg,Eq.trans,Min.min,List.length_take,min_eq_left,Iff.mpr, Imo2025P4.odd_sum_iff_length_of_forall_odd,List.mem_of_mem_take14 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.two_dvd_of_two_dvd_psiline 224 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Dvd.dvd,OfNat.ofNat, Imo2025P4.ψProof uses:
Decidable.byContradiction,Not,Finset,Nat.properDivisors,Odd,Odd.of_dvd_nat,Iff.mp,Even,Nat.not_even_iff_odd,Eq.mpr,id,Eq,congrArg,propext,even_iff_two_dvd,And.left,LT.lt,And,Nat.mem_properDivisors,Listand 19 more37 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.psi_le_of_three_smallest_geline 239 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Ne,OfNat.ofNat,Exists,And,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nil,LE.le, Imo2025P4.ψ,HAdd.hAdd,HDiv.hDivProof uses:
Eq.mpr,id,congrArg, Imo2025P4.psi_eq_of_threeSmallestDivisors_eq,Nat.div_le_div,le_refl,ne_of_gt,lt_of_le_of_ne',zero_le26 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.min_divisors_of_mem_Sline 250 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,And,Ne,OfNat.ofNat,Exists,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nil,Finset,Finset.erase,Nat.divisors,LE.le,LT.ltProof uses:
Nat.ne_zero_of_lt, Imo2025P4.pos_of_mem_S,Finset.card,Nat.properDivisors,List.length,List.reverse,Finset.sort,List.map,HDiv.hDiv, Imo2025P4.smallDivisors,congrArg, Imo2025P4.reverse_properDivisors_eq_div_divisors_erase_one,Eq.mp,congr,Eq.trans,List.length_reverse,Finset.length_sort,List.length_map,Eq.mpr,idand 42 more44 instances, coercions and auxiliary constants left out.
Tactic trace: 30 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.mem_of_threeSmallestDivisors_eqline 279 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nil,And,Membership.mem,Finset,Finset.erase,Nat.divisors,OfNat.ofNatProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg,eq_true,Iff.mp,Finset.sort,LE.le,Finset.mem_sort,Eq.mpr,Not,Dvd.dvd,id,Ne,Eq.mp, Imo2025P4.smallDivisors,List.mem_of_mem_take,And.intro,Orand 6 more22 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.dvd_of_threeSmallestDivisors_eqline 286 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nil,And,Dvd.dvdProof uses:
Membership.mem,Finset,Finset.erase,Nat.divisors,OfNat.ofNat, Imo2025P4.mem_of_threeSmallestDivisors_eq,And.intro, Imo2025P4.dvd_of_mem_divisors_erase_one7 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- structure
Imo2025P4.ThreeMinDivisorsline 292 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat - lemma
Imo2025P4.ThreeMinDivisors.memsline 300 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ThreeMinDivisors,And,Membership.mem,Finset,Finset.erase,Nat.divisors,OfNat.ofNatProof uses: Imo2025P4.mem_of_threeSmallestDivisors_eq,
Imo2025P4.ThreeMinDivisors.hdiv4 instances, coercions and auxiliary constants left out.
- lemma
Imo2025P4.ThreeMinDivisors.dvdsline 304 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ThreeMinDivisors,And,Dvd.dvdProof uses: Imo2025P4.dvd_of_threeSmallestDivisors_eq,
Imo2025P4.ThreeMinDivisors.hdiv1 instances, coercions and auxiliary constants left out.
- lemma
Imo2025P4.ThreeMinDivisors.psi_eqline 306 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ThreeMinDivisors,Ne,OfNat.ofNat,Eq, Imo2025P4.ψ,HAdd.hAdd,HDiv.hDivProof uses: Imo2025P4.psi_eq_of_threeSmallestDivisors_eq,
Imo2025P4.ThreeMinDivisors.hdiv6 instances, coercions and auxiliary constants left out.
- lemma
Imo2025P4.threeMinDivisors_of_mem_Sline 311 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,And,Ne,OfNat.ofNat,Exists, Imo2025P4.ThreeMinDivisorsProof uses:
Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nil,Finset,Finset.erase,Nat.divisors,LE.le,LT.lt, Imo2025P4.min_divisors_of_mem_S,And.intro,Exists.intro,Imo2025P4.ThreeMinDivisors.mk11 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.mem_take_or_gt_of_divisorline 316 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Finset,Finset.erase,Nat.divisors,OfNat.ofNat,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nil,Or,LT.ltProof uses:
dite,Or.inl,Not,Eq.mpr,id,Eq.trans,False,congrFun',congrArg,eq_false,false_or,Decidable.byContradiction,Finset.sort,LE.le,Iff.mpr,Finset.mem_sort,HAppend.hAppend,List.drop,Eq.symm,List.takeand 14 more40 instances, coercions and auxiliary constants left out.
Tactic trace: 19 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.mem_of_dvd_mem_threeSmallestline 335 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ThreeMinDivisors,Membership.mem,Set, Imo2025P4.S,Ne,OfNat.ofNat,Dvd.dvd,List,List.cons,List.nil,LE.leProof uses:
And, Imo2025P4.ThreeMinDivisors.dvds,dite,LT.lt,Decidable.byContradiction,Not,Eq,Or,False,Eq.mp,Eq.trans,congrArg,or_false,Imo2025P4.ThreeMinDivisors.hd₁ge,Imo2025P4.ThreeMinDivisors.hd₁₂,Imo2025P4.ThreeMinDivisors.hd₂₃,Finset,Finset.erase,Nat.divisors, Imo2025P4.mem_divisors_erase_one_of_dvd_ne_one and 4 more28 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.first_min_divisor_eq_two_of_two_dvdline 347 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Dvd.dvd,OfNat.ofNat, Imo2025P4.ThreeMinDivisors,EqProof uses:
Ne,Nat.ne_zero_of_lt, Imo2025P4.pos_of_mem_S,Finset,Finset.erase,Nat.divisors, Imo2025P4.mem_divisors_erase_one_of_dvd_ne_one,Mathlib.Meta.NormNum.isNat_eq_false,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.false,Or,List,List.cons,List.nil,LT.lt, Imo2025P4.mem_take_or_gt_of_divisor,Imo2025P4.ThreeMinDivisors.hdiv,Imo2025P4.ThreeMinDivisors.hd₁geand 2 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.second_min_divisor_eq_four_of_four_dvdline 355 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Ne,OfNat.ofNat,Not,Dvd.dvd, Imo2025P4.ThreeMinDivisors,EqProof uses:
Finset,Finset.erase,Nat.divisors, Imo2025P4.mem_divisors_erase_one_of_dvd_ne_one,Mathlib.Meta.NormNum.isNat_eq_false,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.false,Or,List,List.cons,List.nil,LT.lt, Imo2025P4.mem_take_or_gt_of_divisor,Imo2025P4.ThreeMinDivisors.hdiv,And, Imo2025P4.ThreeMinDivisors.dvds,Imo2025P4.ThreeMinDivisors.hd₁₂,Imo2025P4.ThreeMinDivisors.hd₂₃15 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.not_three_dvd_psi_of_second_min_divisor_fourline 363 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Ne,OfNat.ofNat,Not,Dvd.dvd, Imo2025P4.ThreeMinDivisors,Eq, Imo2025P4.ψProof uses:
HAdd.hAdd,HDiv.hDiv,HMul.hMul,Eq.mpr,id,congrArg, Imo2025P4.ThreeMinDivisors.psi_eq,Eq.trans,congrFun',congr,eq_of_heq,Dvd,HEq,Eq.refl,HEq.refl,Eq.symm,Nat.mul_div_cancel',And.right,And, Imo2025P4.ThreeMinDivisors.dvds and 1 more20 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.second_min_divisor_prime_of_not_four_dvdline 374 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Ne,OfNat.ofNat, Imo2025P4.ThreeMinDivisors,Eq,Not,Dvd.dvd,Nat.PrimeProof uses:
And, Imo2025P4.ThreeMinDivisors.dvds,GT.gt,Finset,Finset.erase,Nat.divisors, Imo2025P4.mem_divisors_erase_one_of_dvd_ne_one,dvd_trans,Or,List,List.cons,List.nil,LT.lt, Imo2025P4.mem_take_or_gt_of_divisor,Imo2025P4.ThreeMinDivisors.hdiv,LE.le,Nat.le_of_dvd,Imo2025P4.ThreeMinDivisors.hd₁₂,Eq.mp,Eq.transand 88 more123 instances, coercions and auxiliary constants left out.
Tactic trace: 31 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.third_min_divisor_prime_of_not_double_secondline 397 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Ne,OfNat.ofNat,Dvd.dvd,Not, Imo2025P4.ThreeMinDivisors,Eq,Nat.Prime,HMul.hMulProof uses:
And, Imo2025P4.ThreeMinDivisors.dvds,Finset,Finset.erase,Nat.divisors, Imo2025P4.ThreeMinDivisors.mems,Decidable.byContradiction,LE.le,LT.lt,Exists,False,Iff.mp,Nat.not_prime_iff_exists_dvd_lt,Imo2025P4.ThreeMinDivisors.hd₁₂,Imo2025P4.ThreeMinDivisors.hd₂₃,Not.intro,Mathlib.Tactic.Linarith.lt_irrefl,Int,Eq.mp,HAdd.hAddand 98 more130 instances, coercions and auxiliary constants left out.
Tactic trace: 43 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.psi_mod_two_eq_one_of_min_divisors_primeline 426 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Ne,OfNat.ofNat,Dvd.dvd,Not, Imo2025P4.ThreeMinDivisors,Eq,Nat.Prime,HMod.hMod, Imo2025P4.ψProof uses:
And, Imo2025P4.ThreeMinDivisors.dvds,LT.lt,HDiv.hDiv,HMul.hMul,Eq.mp,congrArg,Eq.mpr,HAdd.hAdd,id,congrFun',Eq.trans, Imo2025P4.ThreeMinDivisors.psi_eq20 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.not_six_dvd_psi_of_not_four_dvdline 439 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Ne,OfNat.ofNat,Dvd.dvd,Not, Imo2025P4.ThreeMinDivisors,Eq, Imo2025P4.ψProof uses:
Nat.Prime, Imo2025P4.second_min_divisor_prime_of_not_four_dvd,dite,HMul.hMul,HAdd.hAdd,HDiv.hDiv,of_eq_true,Eq.trans,True,congrFun',congrArg, Imo2025P4.ThreeMinDivisors.psi_eq,congr,eq_self,Eq.mp,And.right,And, Imo2025P4.ThreeMinDivisors.dvds,Trans.trans,mul_div_cancel_left₀and 11 more47 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.six_dvd_of_six_dvd_psiline 458 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Dvd.dvd,OfNat.ofNat, Imo2025P4.ψProof uses:
Decidable.byContradiction,Not, Imo2025P4.two_dvd_of_two_dvd_psi,Ne,Exists, Imo2025P4.ThreeMinDivisors,And,False, Imo2025P4.threeMinDivisors_of_mem_S,Eq, Imo2025P4.first_min_divisor_eq_two_of_two_dvd,dite, Imo2025P4.second_min_divisor_eq_four_of_four_dvd, Imo2025P4.not_three_dvd_psi_of_second_min_divisor_four,dvd_trans,Mathlib.Meta.NormNum.isNat_dvd_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl, Imo2025P4.not_six_dvd_psi_of_not_four_dvd13 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.psi_lt_of_not_two_dvdline 471 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Not,Dvd.dvd,OfNat.ofNat,LT.lt, Imo2025P4.ψProof uses:
Ne,Exists,And,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nil,Finset,Finset.erase,Nat.divisors,LE.le, Imo2025P4.min_divisors_of_mem_S,dvd_trans,And.left,Iff.mp,Nat.mem_divisors,HAdd.hAdd,HDiv.hDiv, Imo2025P4.psi_le_of_three_smallest_ge and 8 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.psi_lt_of_two_dvd_not_three_dvdline 481 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Dvd.dvd,OfNat.ofNat,Not,LT.lt, Imo2025P4.ψProof uses:
Ne,Exists,And,Eq,List, Imo2025P4.threeSmallestDivisors,List.cons,List.nil,Finset,Finset.erase,Nat.divisors,LE.le, Imo2025P4.min_divisors_of_mem_S,HAdd.hAdd,HDiv.hDiv, Imo2025P4.psi_le_of_three_smallest_ge,Mathlib.Meta.NormNum.isNat_eq_false,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Booland 3 more23 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.descending_contraline 491 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,OfNat.ofNat,HAdd.hAdd,LT.lt,FalseProof uses:
And,LE.le,Nat.recAux12 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.dvd_of_ValidSequenceline 501 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,Membership.mem,Set, Imo2025P4.S,Not,Dvd.dvd,LT.lt, Imo2025P4.ψProof uses:
Classical.byContradiction,Exists,False,Eq.mp,congrArg,propext,Classical.not_forall,HAdd.hAdd,OfNat.ofNat,And.left,Eq,And.right,And,Eq.mpr,id, Imo2025P4.descending_contra11 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.two_dvd_of_ValidSequenceline 519 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,Dvd.dvd,OfNat.ofNatProof uses: Imo2025P4.dvd_of_ValidSequence, Imo2025P4.psi_lt_of_not_two_dvd, Imo2025P4.two_dvd_of_two_dvd_psi
3 instances, coercions and auxiliary constants left out.
- lemma
Imo2025P4.three_dvd_of_ValidSequenceline 522 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,Dvd.dvd,OfNat.ofNatProof uses:
Membership.mem,Set, Imo2025P4.S,Not,LT.lt, Imo2025P4.ψ, Imo2025P4.psi_lt_of_two_dvd_not_three_dvd, Imo2025P4.two_dvd_of_ValidSequence,HAdd.hAdd,Eq.mp,congrArg,And.right,Eq,And, Imo2025P4.six_dvd_of_six_dvd_psi, Imo2025P4.dvd_of_ValidSequence10 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.six_dvd_of_ValidSequenceline 533 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,Dvd.dvd,OfNat.ofNat3 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.psi_of_six_dvdline 537 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set, Imo2025P4.S,Dvd.dvd,OfNat.ofNat,Eq, Imo2025P4.ψ,ite,HDiv.hDiv,HMul.hMulProof uses:
Ne,Nat.ne_zero_of_lt, Imo2025P4.pos_of_mem_S,dite,Not19 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.odd_of_five_branchline 550 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Dvd.dvd,OfNat.ofNat,Not,HDiv.hDiv,HMul.hMul9 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.not_five_branch_of_ValidSequenceline 552 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,Not,And,Dvd.dvd,OfNat.ofNatProof uses:
Eq.mpr,id,Eq, Imo2025P4.ψ,ite,HDiv.hDiv,HMul.hMul, Imo2025P4.psi_of_six_dvd,And.left,Membership.mem,Set, Imo2025P4.S,HAdd.hAdd,And.right,LT.lt, Imo2025P4.six_dvd_of_ValidSequence,congrArg,Eq.mp,congr,Eq.symmand 7 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.padicValNat_step_thirteen_twelfthsline 564 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Ne,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,padicValNatProof uses:
congrArg,Eq.mp,congr,Eq.trans,padicValNat.mul,Mathlib.Meta.NormNum.isNat_eq_false,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.false,of_eq_true,Not,True,False,eq_false,not_false,not_false_eq_true,eq_true,True.intro,congrFun'and 4 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.padicValNat_descends_thirteen_twelfthsline 572 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,padicValNatProof uses:
Nat.recAux,of_eq_true,Eq.trans,True,congrFun',congrArg,MulZeroClass.mul_zero,add_zero,eq_self18 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.not_forever_thirteen_twelfthsline 579 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,FalseProof uses:
padicValNat, Imo2025P4.padicValNat_descends_thirteen_twelfths13 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.exists_fixed_branch_of_ValidSequenceline 584 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,Exists,And,Not,Dvd.dvd,OfNat.ofNatProof uses:
Classical.byContradiction,dite,False,Classical.propDecidable, Imo2025P4.not_five_branch_of_ValidSequence,And.intro,Eq.mp,Eq.trans,forall_congr,implies_congr,Eq.refl,Eq,HMul.hMul,HAdd.hAdd, Imo2025P4.ψ,ite,HDiv.hDiv, Imo2025P4.psi_of_six_dvd,And.left,Membership.memand 11 more19 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.exists_first_fixed_branch_of_ValidSequenceline 600 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,Exists,And,LT.lt,Dvd.dvd,OfNat.ofNat,NotProof uses: Imo2025P4.exists_fixed_branch_of_ValidSequence,
Exists.intro,Nat.find,Nat.find_spec,Decidable.byContradiction,Nat.find_min, Imo2025P4.not_five_branch_of_ValidSequence,And.intro10 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.step_of_first_fixed_branchline 615 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,Dvd.dvd,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAddProof uses: Imo2025P4.six_dvd_of_ValidSequence, Imo2025P4.ψ,
ite,HDiv.hDiv, Imo2025P4.psi_of_six_dvd,And.left,Membership.mem,Set, Imo2025P4.S,And.right,LT.lt,And18 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.twelve_pow_mul_of_first_fixed_branchline 621 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,LT.lt,Dvd.dvd,OfNat.ofNat,Eq,HMul.hMul,HPow.hPowProof uses:
LE.le,Nat.recAux,of_eq_true,Eq.trans,True,congr,congrArg,congrFun',pow_zero,one_mul,eq_self,HAdd.hAdd,Nat.lt_of_succ_le, Imo2025P4.step_of_first_fixed_branch,Nat.le_refl27 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.start_eq_pow_mul_of_first_fixed_branchline 634 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,LT.lt,Dvd.dvd,OfNat.ofNat,Exists,And,Eq,HMul.hMul,HPow.hPowProof uses:
HDiv.hDiv, Imo2025P4.twelve_pow_mul_of_first_fixed_branch,Nat.Coprime,of_decide_eq_true,id,Bool,Decidable.decide,Bool.true,Eq.refl,Nat.Coprime.pow_right,Nat.Coprime.pow_left,Dvd.intro,Eq.symm,Nat.Coprime.dvd_of_dvd_mul_left,Nat.Coprime.symm,Nat.mul_div_cancel',of_eq_true,Eq.trans,True,congrArgand 11 more37 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.coprime_tenline 647 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,HMul.hMul,OfNat.ofNat,Not,Dvd.dvd,Nat.CoprimeProof uses:
Iff.mpr,Nat.coprime_comm,Nat.Prime.coprime_iff_not_dvd,Nat.prime_two,Nat.prime_five,Eq.mpr,id,congrArg,Mathlib.Meta.NormNum.isNat_eq_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.isNat_mul,And,propext,Nat.coprime_mul_iff_right,And.intro14 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.start_eq_pow_of_first_fixed_branchline 655 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2025P4.ValidSequence,LT.lt,Dvd.dvd,OfNat.ofNat,Not,Exists,And,Eq,HMul.hMul,HPow.hPow,Nat.CoprimeProof uses: Imo2025P4.start_eq_pow_mul_of_first_fixed_branch, Imo2025P4.six_dvd_of_ValidSequence,
of_decide_eq_true,id,Bool,Decidable.decide,Bool.true,Eq.refl,Nat.Coprime.dvd_of_dvd_mul_left,Nat.Coprime.pow_right,Eq.mp,congrArg,Exists.intro,And.intro,Eq.trans, Imo2025P4.coprime_ten28 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2025P4.answer_necessaryline 672 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Membership.mem,Set,Set.ofPred,Exists,And,Eq,OfNat.ofNat, Imo2025P4.ValidSequence, Imo2025P4.answerProof uses:
LT.lt,Dvd.dvd,Not, Imo2025P4.exists_first_fixed_branch_of_ValidSequence,HMul.hMul,HPow.hPow,Nat.Coprime, Imo2025P4.start_eq_pow_of_first_fixed_branch,Exists.intro,Eq.mp,congrFun',congrArg14 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- problem
Imo2025P4.imo2025_p4line 681 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Set,Nat,Set.ofPred,Exists,And,OfNat.ofNat,LT.lt,LE.le,Finset.card,Nat.properDivisors,HAdd.hAdd,List.sum,List.take,List.reverse,Finset.sort, Imo2025P4.answerProof uses:
Set.ext,Iff.intro,Membership.mem, Imo2025P4.answer_necessary, Imo2025P4.answer_sufficient27 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.