Compfiles/Imo2026P3.lean
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
242 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 2026, Problem 3
Let n be a positive integer. Liu Bang and Xiang Yu have a stick of length 1 and want to divide it between themselves. Liu marks at most n points on the stick, and then Xiang marks at most n points on the stick. The marked points are distinct. Then, the stick is cut at all marked points, creating a number of pieces. Afterwards, they take turns claiming any unclaimed piece of the stick, with Liu going first. Each player's goal is to maximise the total length of their own pieces.
For each n, determine the largest value c such that Liu may guarantee a total length of at least c, regardless of Xiang's play.
Imports (6)
Imported by 1 file
- def
Imo2026P3.pieceLengthsThe multiset of piece lengths obtained by cutting[0,1]at the points of a finite setS ⊆ (0,1)line 49 sourceSource documentation
The multiset of piece lengths obtained by cutting
[0,1]at the points of a finite setS ⊆ (0,1). We sortSascending, prepend0and append1, and take consecutive differences. The result is a list of|S| + 1positive reals summing to1(whenS ⊆ (0,1)).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,ListProof uses:
HAppend.hAppend,List.cons,OfNat.ofNat,Finset.sort,LE.le,List.nil,List.zipWith,HSub.hSub,List.tail15 instances, coercions and auxiliary constants left out.
def pieceLengths (S : Finset ℝ) : List ℝ := …
Mentions: S
- def
Imo2026P3.firstPlayerShareThe sum of the entries of a listLat the (0-indexed) even positions, after sortingLin non-increasing order line 57 sourceSource documentation
The sum of the entries of a list
Lat the (0-indexed) even positions, after sortingLin non-increasing order. These are the entries in the1st,3rd,5th, … positions of the sorted (decreasing) list, i.e. the pieces claimed by the first mover under the greedy claiming rule.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,RealProof uses:
List.mergeSort,Decidable.decide,GE.ge,List.sum,List.map,Prod,Nat,Prod.fst,List.filter,Eq,HMod.hMod,Prod.snd,OfNat.ofNat,List.zipIdx8 instances, coercions and auxiliary constants left out.
def firstPlayerShare (L : List ℝ) : ℝ := …
Mentions: Imo2026P3.L
- def
Imo2026P3.LL(A,B): Liu Bang's total length, given Liu Bang's marksAand Xiang Yu's marksBline 63 sourceSource documentation
L(A,B): Liu Bang's total length, given Liu Bang's marksAand Xiang Yu's marksB.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,RealProof uses: Imo2026P3.firstPlayerShare, Imo2026P3.pieceLengths,
Union.union2 instances, coercions and auxiliary constants left out.
def L (A B : Finset ℝ) : ℝ := …
- def
Imo2026P3.AdmissibleMarkThe set of admissible markings for a player: a finite subset of(0,1)of size at mostnline 68 sourceSource documentation
The set of admissible markings for a player: a finite subset of
(0,1)of size at mostn. We encode it as aFinset ℝsubject to the side conditions.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,RealProof uses:
And,LE.le,Set,Set.Ioo,OfNat.ofNat,Finset.card9 instances, coercions and auxiliary constants left out.
def AdmissibleMark (n : ℕ) (X : Finset ℝ) : Prop := …
- def
Imo2026P3.VThe value Liu Bang can guarantee line 75 sourceSource documentation
The value Liu Bang can guarantee.
V nis the supremum over Liu Bang's admissible markingsAof the infimum, over Xiang Yu's admissible markingsBdisjoint fromA, ofL A B.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,RealProof uses:
iSup,Subtype,Finset, Imo2026P3.AdmissibleMark,iInf,And,Disjoint, Imo2026P3.L5 instances, coercions and auxiliary constants left out.
def V (n : ℕ) : ℝ := …
- determine
Imo2026P3.answerline 82 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,RealProof uses:
HDiv.hDiv,HPow.hPow,OfNat.ofNat,HSub.hSub,HAdd.hAdd17 instances, coercions and auxiliary constants left out.
- theorem
Imo2026P3.pieceLengths_sumThe piece lengths of an admissible cut set sum to1(the total stick length) line 93 sourceSource documentation
The piece lengths of an admissible cut set sum to
1(the total stick length).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,LE.le,Set,Set.Ioo,OfNat.ofNat,Eq,List.sum, Imo2026P3.pieceLengthsProof uses:
List,List.zipWith,HSub.hSub,List.tail,List.getLastD,List.headD,List.rec,of_eq_true,List.nil,Eq.trans,True,congr,congrArg,List.map,List.zipWith_self,congrFun',funext,sub_self,List.map_nil,List.getLastD_eq_getLast?and 52 more65 instances, coercions and auxiliary constants left out.
Tactic trace: 19 steps
Open to load the checked before-and-after goal states.
theorem pieceLengths_sum (S : Finset ℝ) (_hS : ↑S ⊆ Set.Ioo (0 : ℝ) 1) : (pieceLengths S).sum = 1 := by …Mentions: S, Imo2026P3.pieceLengths
- theorem
Imo2026P3.pieceLengths_lengthThere are|S| + 1pieces line 122 sourceSource documentation
There are
|S| + 1pieces.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,Eq,Nat,List.length, Imo2026P3.pieceLengths,HAdd.hAdd,Finset.card,OfNat.ofNatProof uses:
List,List.zipWith,HSub.hSub,HAppend.hAppend,List.cons,Finset.sort,LE.le,List.nil,List.tail,rfl,Eq.mpr,id,congrArg,Min.min,List.length_zipWith,of_eq_true,Eq.trans,True,congrFun',congrand 5 more48 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem pieceLengths_length (S : Finset ℝ) : (pieceLengths S).length = S.card + 1 := by …Mentions: S, Imo2026P3.pieceLengths
- theorem
Imo2026P3.L_mem_IccBasic sanity bound: Liu Bang's share lies in[0, 1]for admissible cut sets (it is a subset-sum of the piece lengths, which are nonnegative and sum to1) line 133 sourceSource documentation
Basic sanity bound: Liu Bang's share lies in
[0, 1]for admissible cut sets (it is a subset-sum of the piece lengths, which are nonnegative and sum to1).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,LE.le,Set,Set.Ioo,OfNat.ofNat,Membership.mem,Set.Icc, Imo2026P3.LProof uses:
Union.union,Eq.mpr,id,Eq,congrArg,Finset.coe_union,Set.union_subset,List,List.Pairwise,List.zipWith,HSub.hSub,HAppend.hAppend,List.cons,List.nil,List.tail,List.rec,Eq.mp,Eq.trans,Or,congrFun'and 48 more63 instances, coercions and auxiliary constants left out.
Tactic trace: 46 steps
Open to load the checked before-and-after goal states.
theorem L_mem_Icc (A B : Finset ℝ) (hA : ↑A ⊆ Set.Ioo (0 : ℝ) 1) (hB : ↑B ⊆ Set.Ioo (0 : ℝ) 1) : L A B ∈ Set.Icc (0 : ℝ) 1 := by …Mentions: Imo2026P3.L
- def
Imo2026P3.interiorPartialSumsline 202 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,RealProof uses:
List.dropLast,List.tail,List.scanl,HAdd.hAdd,OfNat.ofNat4 instances, coercions and auxiliary constants left out.
- def
Imo2026P3.cutsOfLengthsline 205 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,FinsetProof uses:
List.toFinset, Imo2026P3.interiorPartialSums1 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.scanl_mem_geline 208 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LE.le,OfNat.ofNat,List.scanl,HAdd.hAddProof uses:
List.rec,List.nil,le_rfl,Eq.symm,Eq.mp,Eq,Eq.trans,List.cons,congrFun',congrArg,List.scanl_nil,Or,Iff.mp,List.mem_cons,List.scanl_cons,List.mem_cons_self,List.mem_cons_of_mem,le_of_add_le_of_nonneg_left21 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.pairwise_scanl_ltline 223 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,List.Pairwise,List.scanl,HAdd.hAddProof uses:
List.rec,List.nil,of_eq_true,Eq.trans,And,True,List.cons,congrArg,List.scanl_nil,congr,forall_congr,False,implies_congr,Eq.refl,implies_true,and_self,Eq.mpr,id,Eq,List.scanl_consand 52 more63 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.zipWith_scanl_tailline 238 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.zipWith,HSub.hSub,List.scanl,HAdd.hAdd,List.tailProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congrFun',congrArg,List.cons,congr,List.scanl_nil,List.zipWith_nil_right,eq_self,Eq.mpr,id,List.scanl_cons,Eq.symm,Eq.refl,And,List.cons.injEq,And.introand 34 more35 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.scanl_zipWith_diffline 254 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.scanl,HAdd.hAdd,List.zipWith,HSub.hSub,List.consProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congrFun',congrArg,List.zipWith_nil_right,List.scanl_nil,eq_self,Eq.mpr,id,List.zipWith_cons_cons,List.scanl_cons,Mathlib.Tactic.Ring.of_eq,HMul.hMul,HPow.hPow,Nat,Nat.rawCast,OfNat.ofNatand 29 more33 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.zipWith_diff_pos_of_pairwiseline 263 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,List.Pairwise,LT.lt,Membership.mem,List.zipWith,HSub.hSub,List.tail,OfNat.ofNatProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,implies_congr,forall_congr,False,congrFun',congrArg,List.map,List.zipWith_self,funext,sub_self,List.map_nil,Eq.refl,implies_true,Eq,List.cons,Andand 15 more53 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.pieceLengths_posline 281 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,LE.le,Set,Set.Ioo,OfNat.ofNat,Membership.mem,List, Imo2026P3.pieceLengths,LT.ltProof uses:
Finset.sort,HAppend.hAppend,List.cons,List.nil,List.Pairwise,List.SortedLT.pairwise,Finset.sortedLT_sort,And.left,Iff.mp,Finset.mem_sort,And.right,id,Eq.mpr,And,Eq,congrArg,propext,List.pairwise_append,List.pairwise_cons,And.introand 22 more56 instances, coercions and auxiliary constants left out.
Tactic trace: 24 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.foldl_add_initline 304 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.foldl,HAdd.hAdd,List.sumProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congrArg,add_zero,eq_self,Eq.mpr,List.cons,id,List.foldl_cons,List.sum_cons,Mathlib.Tactic.Ring.of_eq,HMul.hMul,HPow.hPow,Nat,Nat.rawCast,OfNat.ofNat,Mathlib.Tactic.Ring.Common.add_congrand 6 more25 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.scanl_last_eq_sumline 312 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.scanl,HAdd.hAdd,List.nil,Eq,List.getLast,List.sumProof uses:
Eq.mpr,List.foldl,id,congrArg,List.getLast_scanl, Imo2026P3.foldl_add_init,Eq.refl6 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.interiorPartialSums_pairwiseline 317 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,List.Pairwise, Imo2026P3.interiorPartialSumsProof uses:
List.Pairwise.sublist,List.tail,List.scanl,HAdd.hAdd,List.dropLast_sublist,List.tail_sublist, Imo2026P3.pairwise_scanl_lt10 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.sort_cutsOfLengthsline 323 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,Eq,Finset.sort, Imo2026P3.cutsOfLengths,LE.le, Imo2026P3.interiorPartialSumsProof uses:
Iff.mpr,List.toFinset,List.Pairwise,List.toFinset_sort,List.Pairwise.nodup, Imo2026P3.interiorPartialSums_pairwise,List.Pairwise.imp,LT.lt.le24 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.boundaryList_eq_scanlline 329 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Eq,List.sum,OfNat.ofNat,HAppend.hAppend,List.cons, Imo2026P3.interiorPartialSums,List.scanl,HAdd.hAddProof uses:
absurd,Eq.refl,Eq.symm,id,Eq.mpr,List.dropLast,List.tail,congrArg,List.scanl_cons,of_eq_true,Eq.trans,True,congrFun',zero_add,Not,False,not_false_eq_true,List.getLast, Imo2026P3.scanl_last_eq_sum,List.cons_appendand 3 more22 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.pieceLengths_cutsOfLengthsline 349 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum, Imo2026P3.pieceLengths, Imo2026P3.cutsOfLengthsProof uses:
id,Eq.mpr,HAppend.hAppend,List.cons,Finset.sort,LE.le,List.zipWith,HSub.hSub,List.tail, Imo2026P3.interiorPartialSums,congrArg, Imo2026P3.sort_cutsOfLengths,List.scanl,HAdd.hAdd, Imo2026P3.boundaryList_eq_scanl, Imo2026P3.zipWith_scanl_tail26 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.interiorPartialSums_pieceLengthsline 356 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,Eq,List, Imo2026P3.interiorPartialSums, Imo2026P3.pieceLengths,Finset.sort,LE.leProof uses:
id,List.dropLast,List.tail,List.scanl,HAdd.hAdd,OfNat.ofNat,HAppend.hAppend,List.cons,List.nil,List.zipWith,HSub.hSub,Eq.mpr,congrArg, Imo2026P3.scanl_zipWith_diff,List.tail_cons,of_eq_true,Eq.trans,DecidableRel,IsTrans,Eq.refland 11 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.cutsOfLengths_pieceLengthsline 365 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,Eq, Imo2026P3.cutsOfLengths, Imo2026P3.pieceLengthsProof uses:
id,Eq.mpr,List.toFinset, Imo2026P3.interiorPartialSums,Finset.sort,LE.le,congrArg,List, Imo2026P3.interiorPartialSums_pieceLengths,Finset.sort_toFinset,Eq.refl8 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.mem_interiorPartialSums_Iooline 370 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum, Imo2026P3.interiorPartialSums,Set,Set.IooProof uses:
List.Pairwise,HAppend.hAppend,List.cons,Eq.mpr,List.scanl,HAdd.hAdd,id,congrArg, Imo2026P3.boundaryList_eq_scanl, Imo2026P3.pairwise_scanl_lt,And,Iff.mp,List.pairwise_append,And.left,List.pairwise_cons,List.mem_cons_of_mem,of_eq_true,Eq.trans,Or,Trueand 5 more25 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.card_cutsOfLengthsline 381 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,Nat,HAdd.hAdd,Finset.card, Imo2026P3.cutsOfLengths,List.lengthProof uses:
id,Eq.mpr,List.toFinset, Imo2026P3.interiorPartialSums,congrArg,List.toFinset_card_of_nodup,List.Pairwise.nodup, Imo2026P3.interiorPartialSums_pairwise,List.dropLast,List.tail,List.scanl,HSub.hSub,List.length_dropLast,List.length_tail,List.length_scanl,Iff.mpr,List.length_pos_iff22 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.admissible_cutsOfLengthsline 391 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,LE.le,List.length,HAdd.hAdd, Imo2026P3.AdmissibleMark, Imo2026P3.cutsOfLengthsProof uses:
And.intro,Set,Finset,Set.Ioo,Finset.card, Imo2026P3.mem_interiorPartialSums_Ioo,Eq.mp, Imo2026P3.interiorPartialSums,congrFun',Set.ofPred,congrArg,List.coe_toFinset, Imo2026P3.card_cutsOfLengths29 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.exists_reply_of_refinementline 401 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Real,List,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,LE.le, Imo2026P3.cutsOfLengths,HSub.hSub,Finset.card,Exists,And, Imo2026P3.AdmissibleMark,Disjoint, Imo2026P3.L and 1 moreProof uses:
SDiff.sdiff,Exists.intro,And.intro,Set,Set.Ioo,And.left,Not,Iff.mp,Finset.mem_sdiff, Imo2026P3.mem_interiorPartialSums_Ioo,Eq.mp, Imo2026P3.interiorPartialSums,Eq.mpr,HAdd.hAdd,id,Eq.trans,congrFun',congrArg,Inter.inter,Finset.card_sdiffand 9 more43 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.exists_reply_of_refinement_lengthline 421 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Real,List,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,LE.le, Imo2026P3.cutsOfLengths,List.length,HAdd.hAdd,Finset.card,Exists,And, Imo2026P3.AdmissibleMark,Disjointand 2 moreProof uses: Imo2026P3.exists_reply_of_refinement, Imo2026P3.card_cutsOfLengths
30 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.exists_reply_of_piece_refinementline 430 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Real,List,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,LE.le, Imo2026P3.cutsOfLengths, Imo2026P3.pieceLengths,List.length,HAdd.hAdd,Finset.card,Exists,And, Imo2026P3.AdmissibleMark and 3 moreProof uses: Imo2026P3.exists_reply_of_refinement_length,
Eq.mp,congrFun',congrArg, Imo2026P3.cutsOfLengths_pieceLengths29 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.surplusThe "greedy surplus" of a list: sum of adjacent pair differences, plus the last entry if the length is odd line 447 sourceSource documentation
The "greedy surplus" of a list: sum of adjacent pair differences, plus the last entry if the length is odd. For a decreasing list this equals
2 * (even-position sum) - (total sum).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real2 instances, coercions and auxiliary constants left out.
def surplus : List ℝ → ℝ | [] => 0 | [x] => x | x :: y :: t => (x - y) + surplus t /-- The sum of entries at even (0-indexed) positions. -/
- def
Imo2026P3.evenSumThe sum of entries at even (0-indexed) positions line 453 sourceSource documentation
The sum of entries at even (0-indexed) positions.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,RealProof uses:
List.sum,List.map,Prod,Nat,Prod.fst,List.filter,Decidable.decide,Eq,HMod.hMod,Prod.snd,OfNat.ofNat,List.zipIdx6 instances, coercions and auxiliary constants left out.
def evenSum (l : List ℝ) : ℝ := …
- lemma
Imo2026P3.evenSum_zipIdx_offset'line 456 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Nat,Eq,HMod.hMod,OfNat.ofNat,List.map,Prod,Prod.fst,List.filter,Decidable.decide,Prod.snd,List.zipIdxProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congr,congrArg,List.map_nil,eq_self,Eq.mpr,List.cons,Prod.mk,HAdd.hAdd,id,List.zipIdx_cons,ite,Bool,Bool.true,List.filter_cons,diteand 15 more16 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.evenSum_cons2line 472 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,List,Eq, Imo2026P3.evenSum,List.cons,HAdd.hAddProof uses:
id,Eq.mpr,List.sum,List.map,Prod,Nat,Prod.fst,List.filter,Decidable.decide,HMod.hMod,Prod.snd,OfNat.ofNat,List.zipIdx,Prod.mk,congrArg,List.zipIdx_cons,ite,Bool,True,Bool.trueand 23 more31 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.evenSum_nilline 482 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Real, Imo2026P3.evenSum,List.nil,OfNat.ofNatProof uses:
rfl2 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.evenSum_singletonline 484 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq, Imo2026P3.evenSum,List.cons,List.nilProof uses:
id,of_eq_true,List.sum,List.map,Prod,Nat,Prod.fst,List.filter,Decidable.decide,HMod.hMod,Prod.snd,OfNat.ofNat,List.zipIdx,Eq.trans,True,congrFun',congrArg,List,Prod.mk,HAdd.hAddand 10 more12 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.two_mul_evenSum_sub_sumFor any list,2 * evenSum - sum = surplusline 489 sourceSource documentation
For any list,
2 * evenSum - sum = surplus. No sortedness needed.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,HSub.hSub,HMul.hMul,OfNat.ofNat,Nat, Imo2026P3.evenSum,List.sum, Imo2026P3.surplusProof uses:
Imo2026P3.surplus.induct,of_eq_true,List.nil,Eq.trans,True,congrFun',congrArg,MulZeroClass.mul_zero,sub_self,eq_self,Eq.mpr,List.cons,id,congr, Imo2026P3.evenSum_singleton,add_zero,Mathlib.Tactic.Ring.of_eq,HAdd.hAdd,HPow.hPow,Nat.rawCastand 60 more75 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
lemma two_mul_evenSum_sub_sum : ∀ l : List ℝ, 2 * evenSum l - l.sum = surplus l := by …
Mentions: Imo2026P3.evenSum, Imo2026P3.surplus
- lemma
Imo2026P3.firstPlayerShare_eq_evenSumfirstPlayerShareof a list equalsevenSumof its decreasing sort line 500 sourceSource documentation
firstPlayerShareof a list equalsevenSumof its decreasing sort.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq, Imo2026P3.firstPlayerShare, Imo2026P3.evenSum,List.mergeSort,Decidable.decide,GE.geProof uses:
rfl2 instances, coercions and auxiliary constants left out.
lemma firstPlayerShare_eq_evenSum (l : List ℝ) : firstPlayerShare l = evenSum (l.mergeSort (· ≥ ·)) := rflMentions: Imo2026P3.firstPlayerShare, Imo2026P3.evenSum
- lemma
Imo2026P3.firstPlayerShare_congrfirstPlayerShareis invariant under permutation: both mergeSorts are decreasing-sorted perms of each other, hence equal line 505 sourceSource documentation
firstPlayerShareis invariant under permutation: both mergeSorts are decreasing-sorted perms of each other, hence equal.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,List.Perm,Eq, Imo2026P3.firstPlayerShareProof uses:
List.mergeSort,Decidable.decide,GE.ge,List.Perm.trans,List.mergeSort_perm,List.Perm.symm,List.Pairwise,List.pairwise_mergeSort',Eq.mpr, Imo2026P3.evenSum,id,congrArg, Imo2026P3.firstPlayerShare_eq_evenSum,List.Perm.eq_of_pairwise',Eq.refl8 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma firstPlayerShare_congr {l₁ l₂ : List ℝ} (h : l₁.Perm l₂) : firstPlayerShare l₁ = firstPlayerShare l₂ := by …Mentions: h, Imo2026P3.firstPlayerShare
- def
Imo2026P3.pairDupline 518 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,RealProof uses:
List.flatMap,List.cons,List.nil - lemma
Imo2026P3.even_zip_sum_pairDup_auxline 520 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Nat,Eq,HMod.hMod,OfNat.ofNat,List.sum,List.map,Prod,Prod.fst,List.filter,Decidable.decide,Prod.snd,List.zipIdx, Imo2026P3.pairDupProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congrFun',congrArg,optParam,List.flatMap_nil,List.cons,List.map_nil,eq_self,HAdd.hAdd,Ne,Eq.mpr,List.flatMap,id,Prod.mk,List.flatMap_cons,List.filter_cons_of_posand 13 more30 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.even_zip_sum_pairDupline 533 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.sum,List.map,Prod,Nat,Prod.fst,List.filter,Decidable.decide,HMod.hMod,Prod.snd,OfNat.ofNat,List.zipIdx, Imo2026P3.pairDupProof uses: Imo2026P3.even_zip_sum_pairDup_aux,
rfl9 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.odd_zip_sum_pairDup_auxline 538 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Nat,Eq,HMod.hMod,OfNat.ofNat,List.sum,List.map,Prod,Prod.fst,List.filter,Decidable.decide,Prod.snd,List.zipIdx, Imo2026P3.pairDupProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congrFun',congrArg,optParam,List.flatMap_nil,List.cons,List.map_nil,eq_self,HAdd.hAdd,Eq.mpr,List.flatMap,id,Prod.mk,List.flatMap_cons,List.filter_cons_of_neg,Notand 11 more35 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.zip_sum_pairDup_auxline 551 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Nat,Eq,List.sum,List.map,Prod,Prod.fst,List.filter,Decidable.decide,HMod.hMod,Prod.snd,OfNat.ofNat,List.zipIdx, Imo2026P3.pairDupProof uses:
dite, Imo2026P3.even_zip_sum_pairDup_aux,Not, Imo2026P3.odd_zip_sum_pairDup_aux13 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.length_pairDupline 559 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,Nat,List.length, Imo2026P3.pairDup,HMul.hMul,OfNat.ofNatProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congr,congrArg,List.flatMap_nil,List.cons,MulZeroClass.mul_zero,eq_self,Eq.mpr,id,Eq.refl,HAdd.hAdd,congrFun'12 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.even_zip_sum_pairs_singleton_pairsline 567 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.sum,List.map,Prod,Nat,Prod.fst,List.filter,Decidable.decide,HMod.hMod,Prod.snd,OfNat.ofNat,List.zipIdx,HAppend.hAppend, Imo2026P3.pairDup,List.cons,HAdd.hAddProof uses:
Eq.mpr,List.length,id,congrArg,List.zipIdx_append,congrFun',Eq.trans,List.filter_append,List.map_append,List.sum_append, Imo2026P3.zip_sum_pairDup_aux,HMul.hMul, Imo2026P3.length_pairDup,Prod.mk,zero_add,List.filter_cons_of_pos,of_eq_true,Bool,Bool.true,Trueand 14 more48 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.pairwise_pairDupline 580 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,List.Pairwise,GE.ge, Imo2026P3.pairDupProof uses:
List.rec,List.nil,of_eq_true,Eq.trans,LE.le,True,congr,congrArg,funext,List.flatMap_nil,List.cons,Membership.mem,And,Exists,Eq.mp,Eq,Or,False,or_false,or_selfand 12 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.firstPlayerShare_pairDup_of_pairwiseline 602 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,List.Pairwise,GE.ge,Eq, Imo2026P3.firstPlayerShare, Imo2026P3.pairDup,List.sumProof uses:
id,Eq.mpr,List.mergeSort,Decidable.decide,List.map,Prod,Nat,Prod.fst,List.filter,HMod.hMod,Prod.snd,OfNat.ofNat,List.zipIdx,congrArg,List.mergeSort_eq_self, Imo2026P3.pairwise_pairDup, Imo2026P3.even_zip_sum_pairDup17 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.sum_pairDupline 608 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.sum, Imo2026P3.pairDup,HMul.hMul,OfNat.ofNat,NatProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congr,congrArg,List.flatMap_nil,List.cons,MulZeroClass.mul_zero,eq_self,Eq.mpr,id,Eq.refl,HAdd.hAdd,List.sum_cons,Mathlib.Tactic.Ring.of_eq,HPow.hPow,Nat.rawCast,Mathlib.Tactic.Ring.Common.add_congrand 21 more40 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.twice_firstPlayerShare_pairDupline 616 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,List.Pairwise,GE.ge,Eq,HMul.hMul,OfNat.ofNat,Nat, Imo2026P3.firstPlayerShare, Imo2026P3.pairDup,List.sumProof uses:
Eq.mpr,id,congrArg, Imo2026P3.firstPlayerShare_pairDup_of_pairwise, Imo2026P3.sum_pairDup,Eq.refl20 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.firstPlayerShare_pairs_singleton_pairsline 620 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,List.Pairwise,GE.ge,HAppend.hAppend, Imo2026P3.pairDup,List.cons,Eq, Imo2026P3.firstPlayerShare,HAdd.hAdd,List.sumProof uses:
id,Eq.mpr,List.mergeSort,Decidable.decide,List.map,Prod,Nat,Prod.fst,List.filter,HMod.hMod,Prod.snd,OfNat.ofNat,List.zipIdx,congrArg,List.mergeSort_eq_self, Imo2026P3.even_zip_sum_pairs_singleton_pairs23 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.surplus_pairs_singleton_pairsline 627 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,List.Pairwise,GE.ge,HAppend.hAppend, Imo2026P3.pairDup,List.cons,Eq,HMul.hMul,OfNat.ofNat,Nat, Imo2026P3.firstPlayerShare,HAdd.hAdd,List.sumProof uses:
Eq.mpr,id,congrArg, Imo2026P3.firstPlayerShare_pairs_singleton_pairs,List.sum_append,List.sum_cons, Imo2026P3.sum_pairDup,Mathlib.Tactic.Ring.of_eq,HPow.hPow,Nat.rawCast,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.symm,Mathlib.Tactic.Ring.Common.add_pf_add_ltand 13 more54 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.geom_twoGeometric sum of powers of two overrange mline 641 sourceSource documentation
Geometric sum of powers of two over
range m.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Real,Finset.sum,Finset.range,HPow.hPow,OfNat.ofNat,HSub.hSubProof uses:
Nat.recAux,of_eq_true,Eq.trans,True,congrArg,congrFun',pow_zero,sub_self,eq_self,Eq.mpr,HAdd.hAdd,id,Finset.sum_range_succ,Mathlib.Tactic.Ring.of_eq,Int.rawCast,inferInstance,Ring,Int.negOfNat,HMul.hMul,Nat.rawCastand 42 more70 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma geom_two (m : ℕ) : ∑ j ∈ range m, (2 : ℝ) ^ j = 2 ^ m - 1 := by …
- lemma
Imo2026P3.pow_two_punchThe discrete punchline: a signed sum of distinct powers of two, with at least one nonzero sign, has absolute value at least one line 650 sourceSource documentation
The discrete punchline: a signed sum of distinct powers of two, with at least one nonzero sign, has absolute value at least one.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,DecidableEq,Nat,Function.Injective,Real,Or,Eq,OfNat.ofNat,Neg.neg,Exists,Ne,LE.le,abs,Finset.sum,Finset.univ,HMul.hMul,HPow.hPowProof uses:
Finset,Finset.filter,rfl,Finset.Nonempty,Exists.intro,Membership.mem,Iff.mpr,And,Finset.mem_filter,And.intro,Finset.mem_univ,Finset.exists_max_image,And.right,Iff.mp,of_eq_true,Eq.trans,True,congrFun',congrArg,abs_oneand 107 more142 instances, coercions and auxiliary constants left out.
Tactic trace: 63 steps
Open to load the checked before-and-after goal states.
lemma pow_two_punch {ι : Type} [Fintype ι] [DecidableEq ι] (p : ι → ℕ) (hp : Function.Injective p) (s : ι → ℝ) (hs : ∀ i, s i = 1 ∨ s i = -1 ∨ s i = 0) (hne : ∃ i, s i ≠ 0) : 1 ≤ |∑ i, s i * 2 ^ p i| := by … - def
Imo2026P3.codexDenomline 725 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,RealProof uses:
HSub.hSub,HPow.hPow,OfNat.ofNat,HAdd.hAdd14 instances, coercions and auxiliary constants left out.
- def
Imo2026P3.codexDyadicWeightsline 727 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,List,RealProof uses:
List.map,HDiv.hDiv,HPow.hPow,OfNat.ofNat, Imo2026P3.codexDenom,List.range,HAdd.hAdd13 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.codex_list_geom_twoline 730 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Real,List.sum,List.map,HPow.hPow,OfNat.ofNat,List.range,HSub.hSubProof uses:
Nat.recAux,of_eq_true,Eq.trans,True,congr,congrArg,List,List.nil,List.map_nil,congrFun',pow_zero,sub_self,eq_self,Eq.mpr,HAdd.hAdd,HAppend.hAppend,List.cons,id,Nat.succ,List.range_succand 53 more77 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.codex_sum_map_divline 739 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.sum,List.map,HDiv.hDivProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,OfNat.ofNat,True,congr,congrArg,List.map_nil,zero_div,eq_self,Eq.mpr,List.cons,id,List.map_cons,HAdd.hAdd,List.sum_cons,Mathlib.Tactic.Ring.of_eq,HMul.hMul,HPow.hPowand 29 more51 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.codexDenom_posline 747 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,Real,OfNat.ofNat, Imo2026P3.codexDenomProof uses:
id,HPow.hPow,HAdd.hAdd,one_lt_pow₀,Mathlib.Meta.NormNum.isNat_lt_true,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_one,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Bool,Bool.false,lt_of_not_ge,HSub.hSub,LE.le,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Nat.rawCastand 52 more78 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.codexDyadicWeights_posline 753 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Real,Membership.mem,List, Imo2026P3.codexDyadicWeights,LT.lt,OfNat.ofNatProof uses:
And,HAdd.hAdd,Eq,HDiv.hDiv,HPow.hPow, Imo2026P3.codexDenom,Exists,Eq.mp,Eq.trans,List.map,List.range,congrArg,funext,congrFun',div_pos,pow_pos,Mathlib.Meta.NormNum.isNat_lt_true,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_zero,Eq.refland 4 more54 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.codexDyadicWeights_lengthline 760 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,List.length,Real, Imo2026P3.codexDyadicWeights,HAdd.hAdd,OfNat.ofNatProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg,List.map,HDiv.hDiv,HPow.hPow, Imo2026P3.codexDenom,List.range,List.length_map,List.length_range,eq_self17 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.codexDyadicWeights_ne_nilline 764 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Ne,List,Real, Imo2026P3.codexDyadicWeights,List.nilProof uses:
Eq,List.length,congrArg,False.elim,False,Eq.mp,HAdd.hAdd,OfNat.ofNat,Eq.trans,And,and_false, Imo2026P3.codexDyadicWeights_length9 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.codexDyadicWeights_sumline 770 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Real,List.sum, Imo2026P3.codexDyadicWeights,OfNat.ofNatProof uses:
id,Eq.mpr,List.map,HDiv.hDiv,HPow.hPow, Imo2026P3.codexDenom,List.range,HAdd.hAdd,congrArg,List,of_eq_true,Eq.trans,Membership.mem,Function.comp,True,List.map_map,forall_congr,LE.le,implies_congr,LT.ltand 8 more50 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.codexLowerCutsline 779 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,RealProof uses: Imo2026P3.cutsOfLengths, Imo2026P3.codexDyadicWeights
- lemma
Imo2026P3.codexLowerCuts_admissibleline 782 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2026P3.AdmissibleMark, Imo2026P3.codexLowerCutsProof uses: Imo2026P3.admissible_cutsOfLengths, Imo2026P3.codexDyadicWeights, Imo2026P3.codexDyadicWeights_ne_nil, Imo2026P3.codexDyadicWeights_pos, Imo2026P3.codexDyadicWeights_sum,
Eq.mpr,LE.le,List.length,Real,HAdd.hAdd,OfNat.ofNat,id,Eq,congrArg, Imo2026P3.codexDyadicWeights_length,le_refl5 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.codexLowerCuts_piecesline 787 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,List,Real, Imo2026P3.pieceLengths, Imo2026P3.codexLowerCuts, Imo2026P3.codexDyadicWeightsProof uses: Imo2026P3.pieceLengths_cutsOfLengths, Imo2026P3.codexDyadicWeights_ne_nil, Imo2026P3.codexDyadicWeights_pos, Imo2026P3.codexDyadicWeights_sum
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.CodexMod3.incidenceline 798 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,LinearMap,ZMod,OfNat.ofNat,Nat,RingHom.idProof uses:
LinearMap.mk,AddHom.mk,HAdd.hAdd30 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.CodexMod3.exists_mod3_kernelline 810 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,LT.lt,Nat,Fintype.card,Exists,ZMod,OfNat.ofNat,And,Ne,Eq,HAdd.hAddProof uses:
LinearMap,RingHom.id, Imo2026P3.CodexMod3.incidence,Module.finrank,Eq.mpr,id,congr,congrArg,Module.finrank_pi,Submodule,LinearMap.ker,Bot.bot,LinearMap.ker_ne_bot_of_finrank_lt,Membership.mem,Submodule.exists_mem_ne_zero_of_ne_bot,Exists.intro,And.intro,Iff.mp,LinearMap.mem_ker,congrFun57 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.CodexMod3.sign3line 826 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
ZMod,OfNat.ofNat,Nat,RealProof uses:
ite,Eq,Neg.neg20 instances, coercions and auxiliary constants left out.
- theorem
Imo2026P3.CodexMod3.sign3_casesline 829 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
ZMod,OfNat.ofNat,Nat,Or,Eq,Real, Imo2026P3.CodexMod3.sign3,Neg.negProof uses:
dite,of_eq_true,Eq.trans,True,False,congr,congrArg,congrFun',ite_eq_left_of_eq_true,ite,eq_self,or_self,or_false,Not,ite_eq_right_of_eq_false,true_or,or_true,eq_false47 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.CodexMod3.sign3_ne_zeroline 836 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
ZMod,OfNat.ofNat,Nat,Ne,Real, Imo2026P3.CodexMod3.sign3Proof uses:
Eq.mpr,ite,Eq,Neg.neg,id,congrFun',congrArg,Eq.trans,False,ite_congr,eq_false,Eq.refl,Not,ite_false,Decidable,ite_eq_right,Mathlib.Meta.NormNum.isInt_eq_false,Int.negOfNat,Int.ofNat,Mathlib.Meta.NormNum.isInt_negand 9 more44 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.CodexMod3.zmod3_casesline 840 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
ZMod,OfNat.ofNat,Nat,Or,Eq,Neg.negProof uses:
List,List.Mem,Fin,HAdd.hAdd,List.finRange,HEq,Membership.mem,Finset,Fintype.elems,Fintype.complete,List.cons,List.Mem.head,Fin.mk,Nat.le_of_lt,Nat.le_refl,List.nil,Or.inl,rfl,eq_of_heq,List.Mem.tailand 14 more54 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.CodexMod3.sign3_add_eq_zeroline 850 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
ZMod,OfNat.ofNat,Nat,Eq,HAdd.hAdd,Real, Imo2026P3.CodexMod3.sign3Proof uses:
Neg.neg,Mathlib.Tactic.LinearCombination.eq_of_eq,Mathlib.Tactic.LinearCombination.eq_rearrange,Mathlib.Tactic.Ring.of_eq,HSub.hSub,Mathlib.Tactic.Ring.Common.sub_congr,HMul.hMul,HPow.hPow,Nat.rawCast,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,congrArg,Eq.symm,Eq.refl,Mathlib.Tactic.Ring.cast_zero,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_zeroand 46 more86 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.CodexMod3.exists_real_signingline 861 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,LT.lt,Nat,Fintype.card,Exists,Real,And,Or,Eq,OfNat.ofNat,Neg.neg,Ne,HAdd.hAddProof uses:
ZMod, Imo2026P3.CodexMod3.exists_mod3_kernel,Decidable.byContradiction,Not,funext,Eq.mp,Eq.trans,binderNameHint,forall_congr,Exists.intro, Imo2026P3.CodexMod3.sign3,And.intro, Imo2026P3.CodexMod3.sign3_cases, Imo2026P3.CodexMod3.sign3_ne_zero, Imo2026P3.CodexMod3.sign3_add_eq_zero34 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.CodexMod3.exists_signed_edge_boundline 879 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,Real,LT.lt,Nat,Fintype.card,Eq,Finset.sum,Finset.univ,HMul.hMul,HAdd.hAdd,Exists,And,Or,OfNat.ofNat,Neg.neg,Ne,LE.le,abs,HSub.hSubProof uses: Imo2026P3.CodexMod3.exists_real_signing,
Exists.intro,And.intro,Eq.mpr,id,congrArg,Trans.trans,Lattice,AddGroup,Eq.rec,Eq.refl,Finset.sum_congr,rfl,Finset,Membership.mem,Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt,Not.intro,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,Mathlib.Tactic.Ring.of_eqand 61 more104 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.pairUpline 914 sourcestandard axioms: propext what this means
Statement uses:
List,Prod2 instances, coercions and auxiliary constants left out.
- def
Imo2026P3.unpairedline 918 sourceno axioms what this means
Statement uses:
List,Option2 instances, coercions and auxiliary constants left out.
- def
Imo2026P3.unpairline 923 sourceno axioms what this means
Statement uses:
List,Prod2 instances, coercions and auxiliary constants left out.
- theorem
Imo2026P3.unpair_pairUp_append_unpairedline 927 sourcestandard axioms: propext what this means
Statement uses:
List,Eq,HAppend.hAppend, Imo2026P3.unpair, Imo2026P3.pairUp,Option.toList, Imo2026P3.unpairedProof uses:
Imo2026P3.pairUp.induct,of_eq_true,List.cons,Eq.trans,True,congrFun',congrArg,Imo2026P3.unpair.eq_2,eq_self,False,List.nil,Imo2026P3.unpair.eq_1,List.append_nil,Eq.symm,False.elim,rfl,Eq.refl6 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.length_pairUpline 940 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Eq,Nat,List.length,Prod, Imo2026P3.pairUp,HDiv.hDiv,OfNat.ofNatProof uses:
Imo2026P3.pairUp.induct,Eq.mpr,List.cons,HAdd.hAdd,id,congrFun',congrArg,False,List.nil,of_eq_true,Eq.trans,True,Nat.zero_div,eq_self,Eq.symm,zero_add,False.elim,rfl,Eq.refl13 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.unpaired_isSome_iffline 954 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Iff,Eq,Bool,Option.isSome, Imo2026P3.unpaired,Bool.true,Nat,HMod.hMod,List.length,OfNat.ofNatProof uses:
Imo2026P3.pairUp.induct,Eq.mpr,List.cons,id,congrArg,Option,Imo2026P3.unpaired.eq_3,propext,False,List.nil,of_eq_true,Eq.trans,True,congr,Bool.false_eq_true,iff_self,Eq.symm,eq_self,congrFun',zero_addand 4 more16 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.pairUp_sumline 970 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,List,Eq,List.sum,List.map,HAdd.hAdd,Prod,Prod.fst,Prod.snd, Imo2026P3.pairUp,Option.elim, Imo2026P3.unpaired,OfNat.ofNatProof uses:
Imo2026P3.pairUp.induct,Eq.mpr,List.cons,id,congr,congrArg,Eq.trans,List.map_cons,congrFun',List.sum_map_add,Prod.mk,Mathlib.Tactic.Ring.of_eq,HMul.hMul,HPow.hPow,Nat,Nat.rawCast,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.symmand 12 more33 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.surplus_eq_pairUpline 984 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq, Imo2026P3.surplus,HAdd.hAdd,List.sum,List.map,Prod,HSub.hSub,Prod.fst,Prod.snd, Imo2026P3.pairUp,Option.getD, Imo2026P3.unpaired,OfNat.ofNatProof uses:
Imo2026P3.pairUp.induct,Eq.mpr,List.cons,id,congr,congrArg,congrFun',List.map_cons,Prod.mk,Mathlib.Tactic.Ring.of_eq,HMul.hMul,HPow.hPow,Nat,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.sub_congrand 27 more40 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.pairUp_relline 998 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
List,List.Pairwise,Prod,Membership.mem, Imo2026P3.pairUp,Prod.fst,Prod.sndProof uses:
Imo2026P3.pairUp.induct,List.cons,Eq.mpr,Or,Eq,Prod.mk,id,forall_congr,implies_congr,Eq.refl,And.left,Eq.mp,And,congrArg,propext,List.pairwise_cons,of_eq_true,Eq.trans,True,congrFun'and 10 more10 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.pairUp_mapline 1015 sourcestandard axioms: propext what this means
Statement uses:
List,Eq,Prod, Imo2026P3.pairUp,List.map,Prod.mk,Prod.fst,Prod.sndProof uses:
Imo2026P3.pairUp.induct,of_eq_true,List.cons,Eq.trans,True,congr,congrArg,List.map_cons,Imo2026P3.pairUp.eq_1,eq_self,False,List.nil,List.map_nil,Imo2026P3.pairUp.eq_2,False.elim,noConfusion_of_Nat,List.ctorIdx,Eq.symm,HEq,eq_of_heqand 2 more3 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.unpaired_mapline 1028 sourcestandard axioms: propext what this means
Statement uses:
List,Eq,Option, Imo2026P3.unpaired,List.map,Option.mapProof uses:
Imo2026P3.pairUp.induct,Eq.mpr,List.cons,id,congrFun',congrArg,Eq.trans,List.map_cons,Imo2026P3.unpaired.eq_3,False,List.nil,of_eq_true,Option.none,True,List.map_nil,Imo2026P3.unpaired.eq_1,eq_self,Eq.symm,Option.some,Imo2026P3.unpaired.eq_2and 3 more2 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.mem_of_unpaired_eq_someline 1041 sourcestandard axioms: propext what this means
Statement uses:
List,Eq,Option, Imo2026P3.unpaired,Option.some,Membership.memProof uses:
Imo2026P3.pairUp.induct,List.cons,List.mem_cons_of_mem,False,List.nil,of_eq_true,Option.none,Eq.trans,True,implies_congr,eq_false',False.elim,noConfusion_of_Nat,Option.ctorIdx,Eq.symm,Or,congrFun',congrArg,Eq.mp,Option.some.injEqand 5 more7 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.labelWeightline 1059 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Prod,RealProof uses:
List.sum,List.map,Prod.fst,List.filter,Decidable.decide,Eq,Prod.snd2 instances, coercions and auxiliary constants left out.
- theorem
Imo2026P3.labelWeight_consline 1062 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Prod,Real,List,Eq, Imo2026P3.labelWeight,List.cons,HAdd.hAdd,ite,Prod.snd,Prod.fst,OfNat.ofNatProof uses:
dite,of_eq_true,Eq.trans,List.sum,List.map,List.filter,Decidable.decide,True,congr,congrArg,List.filter_cons_of_pos,Bool,Bool.true,congrFun',Decidable.decide.congr_simp,eq_self,decide_true,List.map_cons,ite_eq_left_of_eq_true,Notand 9 more12 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.labelWeight_permline 1067 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Prod,Real,List.Perm,Eq, Imo2026P3.labelWeightProof uses:
id,List.Perm.sum_eq,List.map,Prod.fst,List.filter,Decidable.decide,Prod.snd,List.Perm.map,List.Perm.filter1 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.labelWeight_scaleline 1072 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Real,List,Prod,Eq, Imo2026P3.labelWeight,List.map,Prod.mk,HMul.hMul,Prod.fst,Prod.sndProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,forall_congr,OfNat.ofNat,congr,congrArg,List.filter,Decidable.decide,List.sum,List.map_nil,MulZeroClass.mul_zero,eq_self,implies_true,Eq.mpr,List.cons,id,List.map_consand 32 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.surplus_scaleline 1083 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,List,Eq, Imo2026P3.surplus,List.map,HMul.hMulProof uses:
Imo2026P3.surplus.induct,of_eq_true,List.nil,Eq.trans,OfNat.ofNat,True,congr,congrArg,List.map_nil,Imo2026P3.surplus.eq_1,MulZeroClass.mul_zero,eq_self,List.cons,congrFun',List.map_cons,Imo2026P3.surplus.eq_2,Eq.mpr,HAdd.hAdd,HSub.hSub,idand 40 more35 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.sum_sign_labelWeightline 1091 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,DecidableEq,Real,List,Prod,Eq,Finset.sum,Finset.univ,HMul.hMul, Imo2026P3.labelWeight,List.sum,List.map,Prod.snd,Prod.fstProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,OfNat.ofNat,True,congr,congrArg,Finset.sum_congr,Eq.refl,Finset,Membership.mem,List.filter,Decidable.decide,List.map_nil,MulZeroClass.mul_zero,Finset.sum_const_zero,eq_self,Trans.trans,List.consand 18 more27 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.fin_sum_get_mapline 1117 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
AddCommMonoid,List,Eq,Finset.sum,Fin,List.length,Finset.univ,List.get,List.sum,List.mapProof uses:
Eq.mpr,List.ofFn,id,congrArg,Eq.symm,List.sum_ofFn,List.ofFn_getElem_eq_map17 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.sum_sign_weight_pairUpline 1123 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,DecidableEq,Real,List,Prod,Eq,Finset.sum,Finset.univ,HMul.hMul, Imo2026P3.labelWeight,HAdd.hAdd,List.sum,List.map,Prod.snd,Prod.fst, Imo2026P3.pairUp,Option.elim, Imo2026P3.unpaired,OfNat.ofNatProof uses:
Eq.mpr,id,congrArg, Imo2026P3.sum_sign_labelWeight, Imo2026P3.pairUp_sum14 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.abstract_even_lowerline 1132 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,DecidableEq,Nat,Function.Injective,List,Prod,Real,List.Pairwise,GE.ge,Prod.fst,Eq,Option, Imo2026P3.unpaired,Option.none,LT.lt,List.length,HMul.hMul,OfNat.ofNat,Fintype.card, Imo2026P3.labelWeight and 4 moreProof uses: Imo2026P3.pairUp,
Fin,Prod.snd,List.get,Eq.mpr,id,congrFun',congrArg,Fintype.card_fin,HDiv.hDiv, Imo2026P3.length_pairUp,Finset.sum,Finset.univ,HAdd.hAdd,List.sum,Option.elim, Imo2026P3.sum_sign_weight_pairUp,Trans.trans,List.sum_map_add,Eq.mpand 37 more72 instances, coercions and auxiliary constants left out.
Tactic trace: 40 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.abstract_lowerline 1193 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,DecidableEq,Nat,Function.Injective,List,Prod,Real,List.Pairwise,GE.ge,Prod.fst,Membership.mem,LE.le,OfNat.ofNat,LT.lt,List.length,HMul.hMul,Fintype.card,Eq, Imo2026P3.labelWeight,HPow.hPowand 2 moreProof uses: Imo2026P3.pairUp,
Fin,Prod.snd,List.get,Eq.mpr,id,congrFun',congrArg,Fintype.card_fin,HDiv.hDiv, Imo2026P3.length_pairUp,And,Or,Neg.neg,Exists,Ne,HAdd.hAdd, Imo2026P3.CodexMod3.exists_real_signing,Option.elim, Imo2026P3.unpaired and 108 more133 instances, coercions and auxiliary constants left out.
Tactic trace: 75 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.sort_sublist_sort_of_subsetline 1294 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,LE.le,List.Sublist,Finset.sortProof uses:
List.sublist_of_subperm_of_sortedLE,List.subperm_of_subset,Finset.sort_nodup,Membership.mem,List,Eq.mpr,id,Eq,congrArg,propext,Finset.mem_sort,Eq.mp,List.Pairwise.sortedLE,Finset.pairwise_sort23 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.taggedBlocksline 1304 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,List,Real,ProdProof uses:
List.flatMap,List.map,Prod.mk,List.finRange - lemma
Imo2026P3.labelWeight_appendline 1307 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Prod,Real,Eq, Imo2026P3.labelWeight,HAppend.hAppend,HAdd.hAddProof uses:
of_eq_true,List.sum,List.map,Prod.fst,List.filter,Decidable.decide,Prod.snd,Eq.trans,True,congrFun',congrArg,List.filter_append,List.map_append,List.sum_append,OfNat.ofNat,eq_self18 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.labelWeight_same_blockline 1311 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Real,Eq, Imo2026P3.labelWeight,List.map,Prod,Prod.mk,ite,List.sum,OfNat.ofNatProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congr,congrArg,Prod.fst,List.filter,Decidable.decide,Prod.snd,List.map_nil,ite_self,eq_self,Eq.mpr,List.cons,id,List.map_cons,HAdd.hAdd, Imo2026P3.labelWeight_cons and 8 more9 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.labelWeight_flatMap_blocksline 1319 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Real,Eq, Imo2026P3.labelWeight,List.flatMap,Prod,List.map,Prod.mk,List.sum,ite,OfNat.ofNatProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congr,congrArg,Prod.fst,List.filter,Decidable.decide,Prod.snd,List.flatMap_nil,List.map_nil,eq_self,Eq.mpr,List.cons,HAppend.hAppend,id,List.flatMap_cons,HAdd.hAddand 5 more9 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.labelWeight_taggedBlocksline 1329 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,List,Real,Eq, Imo2026P3.labelWeight, Imo2026P3.taggedBlocks,List.sumProof uses:
Eq.mpr,List.flatMap,Prod,List.map,Prod.mk,List.finRange,id,congrArg,Imo2026P3.taggedBlocks.eq_1,ite,OfNat.ofNat, Imo2026P3.labelWeight_flatMap_blocks,Finset.sum,List.toFinset,Eq.symm,List.sum_toFinset,List.nodup_finRange,of_eq_true,Eq.trans,Trueand 10 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.intervalBlockline 1335 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Real,Fin,ListProof uses:
List.map,HSub.hSub,HAdd.hAdd,OfNat.ofNat,List.range'7 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.intervalBlock_sumline 1338 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Real,Fin,LE.le,HAdd.hAdd,OfNat.ofNat,Eq,List.sum, Imo2026P3.intervalBlock,HSub.hSubProof uses:
id,Eq.mpr,List.map,List.range',Finset.sum,List.toFinset,congrArg,Eq.symm,List.sum_toFinset,List.nodup_range',of_eq_true,LT.lt,optParam,Eq.trans,True,eq_self,Finset.Ico,Finset,List.toFinset_range'_1,Nat.add_sub_of_leand 1 more46 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.blockIndicesline 1346 sourceno axioms what this means
Statement uses:
Nat,ListProof uses:
List.flatMap,List.range',HSub.hSub,HAdd.hAdd,OfNat.ofNat,List.range5 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.blockIndices_eq_range'line 1349 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Monotone,Eq,List, Imo2026P3.blockIndices,List.range',OfNat.ofNat,HSub.hSubProof uses:
Nat.recAux,of_eq_true,Eq.trans,List.nil,True,congr,congrArg,List.flatMap_nil,HAdd.hAdd,congrFun',optParam,tsub_self,List.range'_zero,eq_self,Eq.mpr,List.flatMap,List.range,id,Imo2026P3.blockIndices.eq_1,HAppend.hAppendand 13 more24 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.map_fst_tagged_intervalBlocksline 1372 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Real,Monotone,Eq,List,List.map,Prod,Fin,Prod.fst, Imo2026P3.taggedBlocks, Imo2026P3.intervalBlock,HSub.hSub,HAdd.hAdd,OfNat.ofNat,List.range'Proof uses:
id,List.flatMap,Prod.mk,List.finRange,Eq.mpr,congrArg,List.map_flatMap,Function.comp,congrFun',funext,Eq.trans,List.map_map,List.flatMap_map,Eq.refl,List.range,List.map_coe_finRange_eq_range,Eq.symm, Imo2026P3.blockIndices, Imo2026P3.blockIndices_eq_range'15 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.indexedDiffsline 1394 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,RealProof uses:
List.map,Nat,HSub.hSub,List.getD,HAdd.hAdd,OfNat.ofNat,List.range,List.length8 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.indexedDiffs_getDline 1397 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Nat,LT.lt,HSub.hSub,List.length,OfNat.ofNat,Eq,List.getD, Imo2026P3.indexedDiffs,HAdd.hAddProof uses:
of_eq_true,Eq.trans,True,congrArg,List.range,List.map,Option.getD,GetElem?.getElem?,congrFun',funext,congr,List.getD_eq_getElem?_getD,List.length_map,List.length_range,eq_true,Eq.mpr,GetElem.getElem,id,List.getD_eq_getElem,Eq.recand 6 more21 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.zipWith_tail_diff_eq_indexedDiffsline 1403 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.zipWith,HSub.hSub,List.tail, Imo2026P3.indexedDiffsProof uses:
List.ext_getElem,of_eq_true,Nat,List.length,Eq.trans,OfNat.ofNat,True,congr,congrArg,Min.min,List.length_zipWith,List.length_tail,inf_of_le_right,LE.le,HAdd.hAdd,List.range,List.map,Option.getD,GetElem?.getElem?,LT.ltand 20 more43 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.boundaryPointsline 1412 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,ListProof uses:
HAppend.hAppend,List.cons,OfNat.ofNat,Finset.sort,LE.le,List.nil13 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.boundaryPoints_lengthline 1415 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,Eq,Nat,List.length, Imo2026P3.boundaryPoints,HAdd.hAdd,Finset.card,OfNat.ofNatProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg,HAppend.hAppend,List,Finset.sort,LE.le,List.cons,List.nil,List.length_append,congr,Finset.length_sort,zero_add,eq_self21 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.boundaryPoints_pairwiseline 1419 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,LE.le,Set,Set.Ioo,OfNat.ofNat,List.Pairwise,LT.lt, Imo2026P3.boundaryPointsProof uses:
id,Eq.mpr,HAppend.hAppend,List,List.cons,Finset.sort,List.nil,And,Membership.mem,Eq,congrArg,propext,List.pairwise_append,List.pairwise_cons,And.intro,And.left,Iff.mp,Finset.mem_sort,List.SortedLT.pairwise,Finset.sortedLT_sortand 22 more55 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.boundaryPoints_sublistline 1434 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,LE.le,List.Sublist, Imo2026P3.boundaryPointsProof uses:
id,List.Sublist.cons_cons,HAppend.hAppend,List,Finset.sort,List.cons,OfNat.ofNat,List.nil,List.Sublist.append, Imo2026P3.sort_sublist_sort_of_subset,List.Sublist.refl19 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.pieceLengths_eq_indexedDiffs_boundaryPointsline 1439 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,Eq,List, Imo2026P3.pieceLengths, Imo2026P3.indexedDiffs, Imo2026P3.boundaryPointsProof uses:
id,HAppend.hAppend,List.cons,OfNat.ofNat,Finset.sort,LE.le,List.nil,List.zipWith,HSub.hSub,List.tail, Imo2026P3.zipWith_tail_diff_eq_indexedDiffs15 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.clippedEmbeddingline 1444 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,OrderEmbedding,Fin,HAdd.hAdd,OfNat.ofNatProof uses:
Fin.mk,Min.min13 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.clippedEmbedding_monoline 1447 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,OrderEmbedding,Fin,HAdd.hAdd,OfNat.ofNat,Monotone, Imo2026P3.clippedEmbeddingProof uses:
LE.le,OrderEmbedding.monotone,Fin.mk,Min.min,Eq.mpr,id,Eq18 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.clippedEmbedding_of_leline 1454 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,OrderEmbedding,Fin,HAdd.hAdd,OfNat.ofNat,LE.le,Eq, Imo2026P3.clippedEmbedding,Fin.mkProof uses:
of_eq_true,Eq.trans,Min.min,LT.lt,Nat.min_eq_left,True,congrFun',congrArg,Fin.mk.congr_simp,eq_self22 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.exists_tagged_piece_refinementline 1459 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset,Real,LE.le,Set,Set.Ioo,OfNat.ofNat,Exists,List,Prod,Fin,HAdd.hAdd,Nat,Finset.card,And,Eq,List.map,Prod.fst, Imo2026P3.pieceLengths, Imo2026P3.labelWeight,List.getDProof uses: Imo2026P3.boundaryPoints,
List.length, Imo2026P3.boundaryPoints_length,List.Sublist, Imo2026P3.boundaryPoints_sublist,OrderEmbedding,List.get,Eq.mp,congrArg,propext,List.sublist_iff_exists_fin_orderEmbedding_get_eq,RelEmbedding.trans,OrderIso.toOrderEmbedding,Fin.castOrderIso,Eq.symm,LT.lt,Eq.mpr,id,Fin.isLt,GetElem.getElemand 67 more123 instances, coercions and auxiliary constants left out.
Tactic trace: 140 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.codexLowerCuts_cardline 1575 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Finset.card,Real, Imo2026P3.codexLowerCutsProof uses:
HAdd.hAdd, Imo2026P3.cutsOfLengths, Imo2026P3.codexDyadicWeights,OfNat.ofNat,List.length, Imo2026P3.card_cutsOfLengths, Imo2026P3.codexDyadicWeights_ne_nil, Imo2026P3.codexDyadicWeights_pos,Eq.mpr,id,Eq.mp,Eq.trans,congrArg, Imo2026P3.codexDyadicWeights_length5 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.codexLowerCuts_piece_getDline 1582 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Eq,Real,List.getD, Imo2026P3.pieceLengths, Imo2026P3.codexLowerCuts,HDiv.hDiv,HPow.hPow, Imo2026P3.codexDenomProof uses:
Eq.mpr, Imo2026P3.codexDyadicWeights,id,congrArg,List, Imo2026P3.codexLowerCuts_pieces,LT.lt,List.length, Imo2026P3.codexDyadicWeights_length,Fin.isLt,GetElem.getElem,List.getD_eq_getElem,of_eq_true,Eq.trans,True,congrFun',List.map,List.range,Eq.refl,Eq.recand 4 more38 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.codex_lower_bound_completeline 1592 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Exists,Finset,Real,And, Imo2026P3.AdmissibleMark,Disjoint,LE.le,HDiv.hDiv,HPow.hPow,HSub.hSub,HAdd.hAdd, Imo2026P3.LProof uses: Imo2026P3.codexLowerCuts,
Exists.intro,And.intro, Imo2026P3.codexLowerCuts_admissible,Union.union,Set,Set.Ioo,id,Eq.mpr,Eq,congrArg,Finset.coe_union,Set.union_subset,And.left,Finset.card,List,Prod,Fin,List.map,Prod.fstand 178 more191 instances, coercions and auxiliary constants left out.
Tactic trace: 80 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.bisectLengthsline 1689 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,RealProof uses: Imo2026P3.pairDup,
List.map,HDiv.hDiv,OfNat.ofNat6 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.bisectLengths_consline 1692 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,List,Eq, Imo2026P3.bisectLengths,List.cons,HDiv.hDiv,OfNat.ofNat,NatProof uses:
rfl8 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.bisectLengths_posline 1695 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat, Imo2026P3.bisectLengthsProof uses:
And,Exists,Eq,HDiv.hDiv,List.cons,List.nil,Eq.mp,Eq.trans,List.flatMap,List.map,congrArg,funext,congrFun',Nat,Or,False,or_false,or_self,div_pos,Mathlib.Meta.NormNum.isNat_lt_trueand 7 more50 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.bisectLengths_sumline 1704 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.sum, Imo2026P3.bisectLengthsProof uses:
List.rec,of_eq_true,List.nil,OfNat.ofNat,Eq.trans,True,congrFun',congrArg,List.flatMap,List.cons,List.map,HDiv.hDiv,List.map_nil,List.flatMap_nil,eq_self,Eq.mpr,Nat,id, Imo2026P3.bisectLengths_cons,HAdd.hAddand 40 more50 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.sum_map_halfline 1711 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.sum,List.map,HDiv.hDiv,OfNat.ofNat,NatProof uses: Imo2026P3.codex_sum_map_div
15 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.bisectLengths_lengthline 1714 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,Nat,List.length, Imo2026P3.bisectLengths,HMul.hMul,OfNat.ofNatProof uses:
Eq.mpr, Imo2026P3.pairDup,List.map,HDiv.hDiv,id,congrArg,Imo2026P3.bisectLengths.eq_1, Imo2026P3.length_pairDup,List.length_map,Eq.refl12 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.scanl_mem_bisectLengthsline 1718 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,List.scanl,HAdd.hAdd, Imo2026P3.bisectLengthsProof uses:
List.rec,List.nil,Eq.mpr,Eq,id,Eq.trans,Or,List.cons,congrFun',congrArg,List.flatMap,List.map,HDiv.hDiv,OfNat.ofNat,List.map_nil,List.flatMap_nil,List.scanl_nil,False,or_false,Eq.mpand 50 more77 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.mem_interiorPartialSums_of_mem_scanl_Iooline 1732 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,List.scanl,HAdd.hAdd,Set,Set.Ioo, Imo2026P3.interiorPartialSumsProof uses:
List.cons,Or,Iff.mp,HAppend.hAppend,List.mem_append,Eq.mp,congrArg,Eq.symm, Imo2026P3.boundaryList_eq_scanl,List.mem_cons,False.elim,lt_irrefl,And.left,Eq.trans,False,or_false,And.right27 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.cutsOfLengths_subset_bisectLengthsline 1745 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,LE.le,Finset, Imo2026P3.cutsOfLengths, Imo2026P3.bisectLengthsProof uses: Imo2026P3.interiorPartialSums,
Eq.mp,Set,Set.Ioo, Imo2026P3.mem_interiorPartialSums_Ioo,List.tail,List.scanl,HAdd.hAdd,List.mem_of_mem_dropLast,List.mem_of_mem_tail, Imo2026P3.bisectLengths_pos,congrArg,False.elim,False, Imo2026P3.bisectLengths_sum,Eq.mpr,id,Eq.refl, Imo2026P3.scanl_mem_bisectLengths, Imo2026P3.mem_interiorPartialSums_of_mem_scanl_Ioo35 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.firstPlayerShare_bisectLengthsline 1766 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq, Imo2026P3.firstPlayerShare, Imo2026P3.bisectLengths,HDiv.hDiv,List.sum,OfNat.ofNat,NatProof uses:
List.map,List.mergeSort,Decidable.decide,GE.ge,List.Perm,List.Perm.symm,List.mergeSort_perm, Imo2026P3.pairDup,id,List.Perm.flatMap_right,List.cons,List.nil,Trans.trans, Imo2026P3.firstPlayerShare_congr, Imo2026P3.firstPlayerShare_pairDup_of_pairwise,List.pairwise_mergeSort',Eq.symm,List.Perm.sum_eq, Imo2026P3.sum_map_half33 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.exists_bisect_replyline 1785 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Real, Imo2026P3.AdmissibleMark,LT.lt,Finset.card,Exists,And,Disjoint,Eq, Imo2026P3.L,HDiv.hDiv,OfNat.ofNatProof uses:
List, Imo2026P3.pieceLengths,Ne,List.nil,List.length,congrArg,False.elim,False,Eq.mp,HAdd.hAdd,Eq.trans,EmptyCollection.emptyCollection,congr,and_false, Imo2026P3.pieceLengths_length,Membership.mem, Imo2026P3.pieceLengths_pos,And.left,LE.le,Setand 17 more60 instances, coercions and auxiliary constants left out.
Tactic trace: 21 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.CodexClosePoints.zip_tail_relline 1819 source - theorem
Imo2026P3.CodexClosePoints.zip_tail_sumline 1833 source - theorem
Imo2026P3.CodexClosePoints.exists_close_pair_of_finiteline 1852 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,Real,LE.le,Nat,OfNat.ofNat,Fintype.card,Exists,And,Ne,abs,HSub.hSub,HDiv.hDivProof uses:
dite,Function.Injective,LinearOrder,LinearOrder.lift',List,Finset.sort,Finset.univ,Eq,List.length,of_eq_true,Eq.trans,True,congrFun',congrArg,Finset.length_sort,DecidableRel,IsTrans,Eq.refl,Std.Antisymm,Std.Totaland 141 more192 instances, coercions and auxiliary constants left out.
Tactic trace: 74 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.CodexClosePoints.exists_disjoint_subset_sums_closeline 1933 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Fin,Real,LE.le,Eq,Finset.sum,Finset.univ,Exists,Finset,And,Disjoint,Finset.Nonempty,Union.union,HSub.hSub,HDiv.hDiv,HPow.hPowProof uses:
Fintype.card,Eq.mpr,id,congrArg,Eq.trans,Fintype.card_finset,Fintype.card_fin,Nat.le_pow,Finset.sum_nonneg,Membership.mem,Eq.symm,Finset.sum_le_univ_sum_of_nonneg,Ne,abs, Imo2026P3.CodexClosePoints.exists_close_pair_of_finite,Eq.mp,congrFun',Nat.cast_pow,SDiff.sdiff,disjoint_sdiff_sdiffand 96 more137 instances, coercions and auxiliary constants left out.
Tactic trace: 45 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.subperm_perm_of_length_eqline 1986 sourcestandard axioms: propext what this means
Statement uses:
List,List.Subperm,Eq,Nat,List.length,List.PermProof uses:
And,List.Sublist,Exists,Eq.mp,congrArg,propext,List.subperm_iff,Eq.mpr,id,List.Perm.length_eq,Eq.refl,List.Sublist.eq_of_length,congrFun'2 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.finBlocksline 1999 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,List,RealProof uses:
List.map,List.finRange - def
Imo2026P3.flattenFinBlocksline 2002 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,List,RealProof uses:
List.flatten, Imo2026P3.finBlocks - lemma
Imo2026P3.map_fst_taggedBlocks_eq_flattenFinBlocksline 2005 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,List,Real,Eq,List.map,Prod,Prod.fst, Imo2026P3.taggedBlocks, Imo2026P3.flattenFinBlocksProof uses:
id,List.flatMap,Prod.mk,List.finRange,List.flatten, Imo2026P3.finBlocks,Eq.mpr,congrArg,List.map_flatMap,List.flatMap_congr,Membership.mem,Function.comp,List.map_map,of_eq_true,Eq.trans,True,congrFun',congrFun,List.map_id_fun',eq_self1 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.indexedDiffs_scanlline 2018 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq, Imo2026P3.indexedDiffs,List.scanl,HAdd.hAddProof uses:
Eq.mpr,List.zipWith,HSub.hSub,List.tail,id,congrArg,Eq.symm, Imo2026P3.zipWith_tail_diff_eq_indexedDiffs, Imo2026P3.zipWith_scanl_tail6 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.map_sum_finBlocks_eqline 2023 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,List.length,Eq,List.sum,List.get,List.map, Imo2026P3.finBlocksProof uses:
id,Eq.mpr,List.finRange,Function.comp,congrArg,List.map_map,List.map_congr_left,Membership.mem,List.map_get_finRange5 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.flattenFinBlocks_sumline 2036 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,List.length,Eq,List.sum,List.get, Imo2026P3.flattenFinBlocksProof uses:
id,Eq.mpr,List.flatten, Imo2026P3.finBlocks,List.map,congrArg,List.sum_flatten, Imo2026P3.map_sum_finBlocks_eq,Eq.refl9 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.flattenFinBlocks_posline 2042 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,List,Real,Membership.mem,LT.lt,OfNat.ofNat, Imo2026P3.flattenFinBlocksProof uses:
And,Exists,Eq,Eq.mp,Eq.trans,List.flatten,List.map,List.finRange,congrArg,funext,congrFun',True,true_and14 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.flattenFinBlocks_ne_nilline 2051 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,List,Real,LT.lt,OfNat.ofNat,Ne,List.nil, Imo2026P3.flattenFinBlocksProof uses:
Eq,Fin.mk,Membership.mem, Imo2026P3.finBlocks,of_eq_true,List.map,List.finRange,Eq.trans,Exists,And,True,congrArg,funext,congrFun',true_and,Iff.mp,List.flatten,List.flatten_eq_nil_iff,Eq.mpr,idand 1 more9 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.scanl_blockSums_mem_flattenline 2062 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,List.scanl,HAdd.hAdd,List.map,List.sum,List.flattenProof uses:
List.rec,List.nil,Eq.mpr,Eq,id,Eq.trans,Or,List.cons,congrFun',congrArg,List.scanl_nil,False,or_false,Eq.mp,List.map_nil,Iff.mp,List.mem_cons,List.scanl_cons,List.map_cons,HAppend.hAppendand 19 more16 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.scanl_piece_mem_flattenFinBlocksline 2087 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,List.length,Eq,List.sum,List.get,Membership.mem,List.scanl,HAdd.hAdd,OfNat.ofNat, Imo2026P3.flattenFinBlocksProof uses:
List.map, Imo2026P3.finBlocks, Imo2026P3.map_sum_finBlocks_eq, Imo2026P3.scanl_blockSums_mem_flatten,Eq.mp,congrArg,Eq.symm10 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.cutsOfLengths_subset_flattenFinBlocksline 2096 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,Fin,List.length,List.get,LE.le,Finset, Imo2026P3.cutsOfLengths, Imo2026P3.flattenFinBlocksProof uses: Imo2026P3.interiorPartialSums,
Eq.mp,Set,Set.Ioo, Imo2026P3.mem_interiorPartialSums_Ioo,List.scanl,HAdd.hAdd,List.mem_of_mem_tail,List.mem_of_mem_dropLast,List.tail, Imo2026P3.scanl_piece_mem_flattenFinBlocks,Nat,Iff.mpr,List.length_pos_iff, Imo2026P3.flattenFinBlocks_ne_nil, Imo2026P3.flattenFinBlocks_pos,Eq.mpr,id,congrArg, Imo2026P3.flattenFinBlocks_sum and 2 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.commonAtomsline 2122 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,RealProof uses:
PSigma.mk1 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.commonAtoms_specline 2135 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,And, Imo2026P3.commonAtoms,LE.le,Nat,List.length,HSub.hSub,HAdd.hAddProof uses:
PSigma.mk,PSigma17 instances, coercions and auxiliary constants left out.
Tactic trace: 115 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.ScanRefinesline 2238 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,RealProof uses:
Membership.mem,List.scanl,HAdd.hAdd3 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.ScanRefines.cons_sameline 2241 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real, Imo2026P3.ScanRefines,List.consProof uses:
Membership.mem,List.scanl,HAdd.hAdd,Eq.mpr,id,Eq,congrArg,List.scanl_cons,Or,Iff.mp,List.mem_cons,Eq.mp,List.mem_cons_self,List.mem_cons_of_mem5 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.ScanRefines.absorb_leftline 2250 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,List, Imo2026P3.ScanRefines,List.cons,HAdd.hAddProof uses:
Membership.mem,List.scanl,Eq.mpr,id,Eq,congrArg,List.scanl_cons,Or,Iff.mp,List.mem_cons,Eq.mp,List.mem_cons_self,List.mem_cons_of_mem,congrFun',add_assoc9 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.commonAtoms_scanRefinesline 2263 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,And, Imo2026P3.ScanRefines, Imo2026P3.commonAtomsProof uses:
PSigma.mk,PSigma11 instances, coercions and auxiliary constants left out.
Tactic trace: 79 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.scanl_sublist_of_scanRefinesline 2346 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat, Imo2026P3.ScanRefines,List.Sublist,List.scanl,HAdd.hAddProof uses:
List.sublist_of_subperm_of_sortedLE,List.subperm_of_subset,List.Pairwise.nodup, Imo2026P3.pairwise_scanl_lt,List.Pairwise.sortedLE,List.Pairwise.imp,LE.le,LT.lt.le16 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.exists_blocks_of_scanRefinesline 2357 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum, Imo2026P3.ScanRefines,Exists,Fin,List.length,And,Ne,List.nil,List.get, Imo2026P3.flattenFinBlocksProof uses:
Nat,List.scanl,HAdd.hAdd,of_eq_true,Eq.trans,True,congrFun',congrArg,List.length_scanl,eq_self,List.Sublist,id, Imo2026P3.scanl_sublist_of_scanRefines,OrderEmbedding,Eq.mp,propext,List.sublist_iff_exists_fin_orderEmbedding_get_eq,RelEmbedding.trans,LE.le,OrderIso.toOrderEmbeddingand 80 more105 instances, coercions and auxiliary constants left out.
Tactic trace: 173 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.selectedListline 2497 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.lengthProof uses:
List.map,List.get,Finset.sort,LE.le5 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.selectedList_lengthline 2500 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Eq,Nat, Imo2026P3.selectedList,Finset.cardProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg,List.map,List.get,Finset.sort,LE.le,List.length_map,Finset.length_sort,eq_self5 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.selectedList_posline 2504 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Membership.mem,LT.lt,OfNat.ofNat, Imo2026P3.selectedListProof uses:
And,Finset.sort,LE.le,Eq,List.get,Exists,Eq.mp,List.get_mem17 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.selectedList_sumline 2512 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Eq,List.sum, Imo2026P3.selectedList,Finset.sum,List.getProof uses:
id,Eq.mpr,List.map,Finset.sort,LE.le,List.toFinset,congrArg,Eq.symm,List.sum_toFinset,Finset.sort_nodup,of_eq_true,Eq.trans,GetElem.getElem,Nat,LT.lt,Fin.isLt,True,congr,Finset.sum_congr,Finset.sort_toFinsetand 3 more28 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.selectedIndexline 2518 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Membership.mem, Imo2026P3.selectedListProof uses:
Fin.cast,Finset.card,OrderIso,Subtype,OrderIso.symm,Finset.orderIsoOfFin,Subtype.mk17 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.selectedList_get_orderEmbline 2523 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Finset.card,Eq,List.get, Imo2026P3.selectedList,Fin.cast,Eq.symm,Nat, Imo2026P3.selectedList_length,OrderEmbedding,Finset.orderEmbOfFin,rflProof uses:
id,Eq.mpr,List.map,Finset.sort,LE.le,GetElem.getElem,LT.lt,Fin.isLt,congrArg,List.get_eq_getElem,Eq.rec,List.length_map,congrFun',List.getElem_map,Fin.ext,Eq.refl27 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.selectedList_get_selectedIndexline 2534 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Membership.mem,Eq,List.get, Imo2026P3.selectedList, Imo2026P3.selectedIndexProof uses:
id,Eq.mpr,Fin.cast,Finset.card,OrderIso,Subtype,OrderIso.symm,Finset.orderIsoOfFin,Subtype.mk,OrderEmbedding,Finset.orderEmbOfFin,rfl,Nat,congrArg,Eq.symm, Imo2026P3.selectedList_length, Imo2026P3.selectedList_get_orderEmb,Fin.ext,OrderIso.apply_symm_apply,Eq.refl20 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.selectedIndex_orderEmbline 2544 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Finset.card,Eq, Imo2026P3.selectedList, Imo2026P3.selectedIndex,OrderEmbedding,Finset.orderEmbOfFin,rfl,Nat,Finset.orderEmbOfFin_mem,Fin.cast,Eq.symm, Imo2026P3.selectedList_lengthProof uses:
id,Fin.ext,OrderIso,Subtype,Membership.mem,OrderIso.symm,Finset.orderIsoOfFin,Subtype.mk,Eq.mpr,congrArg,OrderIso.symm_apply_apply,Eq.refl27 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.sort_eq_ofFn_orderEmbline 2553 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Fin,Eq,List,Finset.sort,LE.le,List.ofFn,Finset.card,OrderEmbedding,Finset.orderEmbOfFin,rflProof uses:
List.ext_getElem,of_eq_true,List.length,Eq.trans,True,congr,congrArg,Finset.length_sort,List.length_ofFn,eq_self,LT.lt,Eq.mpr,GetElem.getElem,Fin.mk,id,List.getElem_ofFn,Eq.symm,Eq.mp,Finset.orderEmbOfFin_apply37 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.selectedBlockAtline 2561 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length, Imo2026P3.selectedListProof uses:
dite,Membership.mem, Imo2026P3.selectedIndex,Not,List.nil4 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.flatMap_sort_selectedBlockAtline 2566 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length, Imo2026P3.selectedList,Eq,List.flatMap, Imo2026P3.selectedBlockAt,Finset.sort,LE.le, Imo2026P3.flattenFinBlocksProof uses:
Eq.mpr,List.ofFn,Finset.card,OrderEmbedding,Finset.orderEmbOfFin,rfl,Nat,id,congrArg, Imo2026P3.sort_eq_ofFn_orderEmb,List.flatten,List.map, Imo2026P3.finBlocks,List.finRange,Eq.symm,List.ofFn_eq_map,Fin.cast, Imo2026P3.selectedList_length,List.ofFn_comp',propextand 17 more28 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.halfBlockAtline 2584 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,List.lengthProof uses:
List.cons,HDiv.hDiv,List.get,OfNat.ofNat,List.nil6 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.flatMap_sort_halfBlockAtline 2587 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Eq,List.flatMap, Imo2026P3.halfBlockAt,Finset.sort,LE.le, Imo2026P3.bisectLengths, Imo2026P3.selectedListProof uses:
id,List.rec,List.map,List.get,of_eq_true,List.nil,Eq.trans,True,congr,congrArg,List.flatMap_nil,List.cons,HDiv.hDiv,OfNat.ofNat,List.map_nil,eq_self,GetElem.getElem,Nat,LT.lt,Fin.isLtand 5 more27 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.assembleSelectedBlocksline 2596 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length, Imo2026P3.selectedListProof uses:
dite,Membership.mem, Imo2026P3.selectedIndex,Not,List.cons,HDiv.hDiv,List.get,OfNat.ofNat,List.nil10 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.assembleSelectedBlocks_ne_nilline 2603 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length, Imo2026P3.selectedList,Ne,List.nil, Imo2026P3.assembleSelectedBlocksProof uses:
dite,Membership.mem,Eq.mpr,Not,Eq, Imo2026P3.selectedIndex,of_eq_true,eq_true,id,congrFun',congrArg,dite_eq_left_of_eq_true,List.cons,HDiv.hDiv,List.get,OfNat.ofNat,Eq.trans,GetElem.getElem,Nat,LT.ltand 10 more13 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.assembleSelectedBlocks_posline 2613 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length, Imo2026P3.selectedList,Membership.mem,LT.lt,OfNat.ofNat, Imo2026P3.assembleSelectedBlocksProof uses:
dite, Imo2026P3.selectedIndex,Eq.mp,of_eq_true,eq_true,congrFun',congrArg,dite_eq_left_of_eq_true,Not,List.cons,HDiv.hDiv,List.get,List.nil,Eq,Nat,id,GetElem.getElem,Fin.isLt,Eq.trans,Orand 15 more53 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.assembleSelectedBlocks_sumline 2627 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length, Imo2026P3.selectedList,Eq,List.sum,List.get, Imo2026P3.assembleSelectedBlocksProof uses:
dite,Membership.mem,Eq.mpr, Imo2026P3.selectedIndex,Eq.mpr_prop,True,eq_true,True.intro,id,congrFun',congrArg,Eq.trans,Not,List.cons,HDiv.hDiv,OfNat.ofNat,List.nil,dite_congr,Eq.refl,dite_trueand 12 more34 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.cutsOfLengths_subset_assembleSelectedBlocksline 2638 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,Finset,Fin,List.length, Imo2026P3.selectedList,List.get,LE.le, Imo2026P3.cutsOfLengths, Imo2026P3.flattenFinBlocks, Imo2026P3.assembleSelectedBlocksProof uses: Imo2026P3.cutsOfLengths_subset_flattenFinBlocks, Imo2026P3.assembleSelectedBlocks_ne_nil, Imo2026P3.assembleSelectedBlocks_pos, Imo2026P3.assembleSelectedBlocks_sum
17 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.flatten_assembleSelectedBlocks_posline 2651 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,Finset,Fin,List.length, Imo2026P3.selectedList, Imo2026P3.flattenFinBlocks, Imo2026P3.assembleSelectedBlocksProof uses: Imo2026P3.flattenFinBlocks_pos, Imo2026P3.assembleSelectedBlocks_pos
8 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.flatten_assembleSelectedBlocks_sumline 2658 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length, Imo2026P3.selectedList,Eq,List.sum,List.get, Imo2026P3.flattenFinBlocks, Imo2026P3.assembleSelectedBlocksProof uses: Imo2026P3.flattenFinBlocks_sum, Imo2026P3.assembleSelectedBlocks_sum
4 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.assembleTwoSelectedBlocksline 2665 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length, Imo2026P3.selectedListProof uses:
dite,Membership.mem, Imo2026P3.selectedIndex,Not,List.cons,HDiv.hDiv,List.get,OfNat.ofNat,List.nil10 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.assembleTwoSelectedBlocks_ne_nilline 2674 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length, Imo2026P3.selectedList,Ne,List.nil, Imo2026P3.assembleTwoSelectedBlocksProof uses:
dite,Membership.mem,Eq.mpr,Not,Eq, Imo2026P3.selectedIndex,of_eq_true,eq_true,id,congrFun',congrArg,dite_eq_left_of_eq_true,List.cons,HDiv.hDiv,List.get,OfNat.ofNat,Eq.trans,dite_eq_right_of_eq_false,eq_false,GetElem.getElemand 10 more13 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.assembleTwoSelectedBlocks_posline 2687 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length, Imo2026P3.selectedList,Membership.mem,LT.lt,OfNat.ofNat, Imo2026P3.assembleTwoSelectedBlocksProof uses:
dite, Imo2026P3.selectedIndex,Eq.mp,of_eq_true,eq_true,congrFun',congrArg,dite_eq_left_of_eq_true,Not,List.cons,HDiv.hDiv,List.get,List.nil,Eq.trans,dite_eq_right_of_eq_false,eq_false,Eq,Nat,id,GetElem.getElemand 15 more53 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.assembleTwoSelectedBlocks_sumline 2707 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Disjoint, Imo2026P3.selectedList,Eq,List.sum,List.get, Imo2026P3.assembleTwoSelectedBlocksProof uses:
dite,Membership.mem,Eq.mpr, Imo2026P3.selectedIndex,Eq.mpr_prop,True,eq_true,True.intro,id,congrFun',congrArg,Eq.trans,Not,List.cons,HDiv.hDiv,OfNat.ofNat,List.nil,dite_congr,Eq.refl,dite_trueand 14 more39 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.cutsOfLengths_subset_assembleTwoSelectedBlocksline 2723 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,Finset,Fin,List.length,Disjoint, Imo2026P3.selectedList,List.get,LE.le, Imo2026P3.cutsOfLengths, Imo2026P3.flattenFinBlocks, Imo2026P3.assembleTwoSelectedBlocksProof uses: Imo2026P3.cutsOfLengths_subset_flattenFinBlocks, Imo2026P3.assembleTwoSelectedBlocks_ne_nil, Imo2026P3.assembleTwoSelectedBlocks_pos, Imo2026P3.assembleTwoSelectedBlocks_sum
20 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.exists_equal_subset_common_blocksline 2744 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,Finset,Fin,List.length,Eq,List.sum, Imo2026P3.selectedList,Exists,And,LE.le,Nat,HSub.hSub,HAdd.hAdd,Finset.card,Ne,List.niland 2 moreProof uses: Imo2026P3.commonAtoms, Imo2026P3.selectedList_pos,
id, Imo2026P3.commonAtoms_spec, Imo2026P3.ScanRefines, Imo2026P3.commonAtoms_scanRefines,Eq.symm,And.left,And.right,Eq.mpr,congrArg, Imo2026P3.exists_blocks_of_scanRefines,Exists.intro,And.intro,Eq.mp,congrFun',congr, Imo2026P3.selectedList_length24 instances, coercions and auxiliary constants left out.
Tactic trace: 19 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.firstPlayerShare_pairDup_append_singletonline 2786 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq, Imo2026P3.firstPlayerShare,HAppend.hAppend, Imo2026P3.pairDup,List.cons,List.nil,HAdd.hAdd,List.sumProof uses:
List.filter,Decidable.decide,LE.le,Bool.not,List.mergeSort,GE.ge,List.Perm,List.mergeSort_perm,List.filter_append_perm,List.Perm.trans,List.Perm.append,List.Pairwise,List.pairwise_mergeSort',Membership.mem,Iff.mp,List.Perm.mem_iff,And,Eq.mp,Eq.trans,Booland 91 more88 instances, coercions and auxiliary constants left out.
Tactic trace: 64 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.firstPlayerShare_pairDupline 2854 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq, Imo2026P3.firstPlayerShare, Imo2026P3.pairDup,List.sumProof uses:
List.mergeSort,Decidable.decide,GE.ge,List.Perm,List.mergeSort_perm,id,List.Perm.flatMap_right,List.cons,List.nil,Trans.trans, Imo2026P3.firstPlayerShare_congr,List.Perm.symm, Imo2026P3.firstPlayerShare_pairDup_of_pairwise,List.pairwise_mergeSort',List.Perm.sum_eq12 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.pairDup_perm_append_selfline 2868 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,List.Perm, Imo2026P3.pairDup,HAppend.hAppendProof uses:
List.rec,of_eq_true,List.nil,Eq.trans,True,congr,congrArg,List.flatMap_nil,List.cons,List.append_nil,id,List.Perm.cons,List.Perm.trans,List.append,List.Perm.symm,List.perm_middle5 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.exists_crossing_decompositionline 2884 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,LE.le,List.sum,Exists,And,Eq,HAppend.hAppend,List.cons,HAdd.hAddProof uses:
List.rec,List.nil,False.elim,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,HSub.hSub,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HMul.hMul,HPow.hPow,Nat,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.cast_zero,Mathlib.Meta.NormNum.isNat_ofNatand 49 more88 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.exists_prefix_match_residualline 2911 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,LE.le,List.sum,Exists,And,Eq,HAppend.hAppend,List.cons,HSub.hSub,HAdd.hAdd,List.nilProof uses: Imo2026P3.exists_crossing_decomposition,
id,lt_of_not_ge,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HMul.hMul,HPow.hPow,Nat,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mprand 51 more84 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.residualListline 2944 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,ListProof uses:
ite,Eq,OfNat.ofNat,List.nil,List.cons3 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.residualList_sumline 2947 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq,List.sum, Imo2026P3.residualListProof uses:
dite,OfNat.ofNat,of_eq_true,Eq.trans,True,congr,congrArg,List,List.nil,ite_eq_left_of_eq_true,List.cons,congrFun',eq_self,Not,ite_eq_right_of_eq_false,eq_false,add_zero8 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.residualList_length_le_oneline 2950 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LE.le,Nat,List.length, Imo2026P3.residualList,OfNat.ofNatProof uses:
dite,Eq,of_eq_true,Eq.trans,True,congrFun',congrArg,List,List.nil,ite_eq_left_of_eq_true,List.cons,eq_self,Not,ite_eq_right_of_eq_false,eq_false,zero_add17 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.residualList_posline 2953 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LE.le,OfNat.ofNat,Membership.mem,List, Imo2026P3.residualList,LT.ltProof uses:
dite,Eq,False.elim,Eq.mp,False,Eq.trans,List.nil,congrFun',congrArg,ite_eq_left_of_eq_true,List.cons,True,eq_self,Not,lt_of_le_of_ne,Ne.symm,Or,ite_eq_right_of_eq_false,eq_false,or_falseand 1 more15 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.firstPlayerShare_pairDup_residualListline 2963 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq, Imo2026P3.firstPlayerShare,HAppend.hAppend, Imo2026P3.pairDup, Imo2026P3.residualList,HAdd.hAdd,List.sumProof uses:
dite,OfNat.ofNat,Eq.mpr,id,congr,congrArg,Eq.trans,List.nil,ite_eq_left_of_eq_true,List.cons,eq_self,List.append_nil,add_zero, Imo2026P3.firstPlayerShare_pairDup,Eq.symm,Not,congrFun',ite_eq_right_of_eq_false,eq_false, Imo2026P3.firstPlayerShare_pairDup_append_singleton15 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.prefixRefinementBlocksline 2971 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,List.length,HAppend.hAppend,List.cons,List.nilProof uses:
dite,LT.lt,Nat,Fin.mk,Not,Eq, Imo2026P3.residualList,HDiv.hDiv,List.get,OfNat.ofNat16 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefixRefinementBlocks_ne_nilline 2982 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,List.length,HAppend.hAppend,List.cons,List.nil,Ne, Imo2026P3.prefixRefinementBlocksProof uses:
dite,LT.lt,Nat,Eq.mpr,Not,Eq,Fin.mk,of_eq_true,eq_true,id,congrFun',congrArg,dite_eq_left_of_eq_true, Imo2026P3.residualList,HDiv.hDiv,List.get,OfNat.ofNat,LE.le,Eq.trans,HAdd.hAddand 18 more58 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefixRefinementBlocks_posline 2995 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,List.length,HAppend.hAppend,List.cons,List.nil,Membership.mem,LT.lt,OfNat.ofNat,LE.le, Imo2026P3.prefixRefinementBlocksProof uses:
dite,Nat,Fin.mk,Eq.mpr,id,Eq,Eq.trans,HAdd.hAdd,congrArg,List.length_append,zero_add,Eq.mp,of_eq_true,eq_true,congrFun',dite_eq_left_of_eq_true,Not, Imo2026P3.residualList,HDiv.hDiv,List.getand 26 more98 instances, coercions and auxiliary constants left out.
Tactic trace: 24 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefixRefinementBlocks_sumline 3016 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,HAdd.hAdd,Fin,List.length,HAppend.hAppend,List.cons,List.nil,List.sum,List.get, Imo2026P3.prefixRefinementBlocksProof uses:
dite,LT.lt,Nat,Eq.mpr,Fin.mk,Eq.mpr_prop,True,eq_true,True.intro,id,congrFun',congrArg,Eq.trans,Not, Imo2026P3.residualList,HDiv.hDiv,OfNat.ofNat,dite_congr,Eq.refl,dite_trueand 24 more87 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.appendToLastline 3040 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,List,RealProof uses:
ite,Eq,Fin.last,HAppend.hAppend9 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.ofFn_appendToLastline 3044 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,List,Real,Eq,List.ofFn, Imo2026P3.appendToLast,HAppend.hAppend,List.dropLast,List.cons,Fin.last,List.nilProof uses:
Eq.mpr,List.concat,Fin.castSucc,id,congrArg,Nat.succ,List.ofFn_succ',propext,List.ofFn_inj,funext,of_eq_true,Eq.trans,True,congrFun',ite_eq_right_of_eq_false,eq_self,congr,ite_eq_left_of_eq_true,List.concat_eq_append,List.dropLast_append_of_ne_niland 5 more13 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.prefixFlattenBlocksline 3058 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,HAdd.hAdd,Nat,List.length,OfNat.ofNat,HAppend.hAppend,List.consProof uses:
Eq,Fin.cast,Fin.append, Imo2026P3.appendToLast, Imo2026P3.residualList,HDiv.hDiv,List.get,List.nil17 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefixRefinementBlocks_eq_prefixFlattenBlocksline 3070 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,HAdd.hAdd,Nat,List.length,OfNat.ofNat,Eq,HAppend.hAppend,List.cons, Imo2026P3.prefixRefinementBlocks,List.nil,Fin.cast, Imo2026P3.prefixFlattenBlocksProof uses:
funext,dite,LT.lt,Eq.mpr,Fin.mk,Eq.rec,of_eq_true,eq_true,LE.le,ite,Fin.castLT,Eq.mpr_prop,Fin.last, Imo2026P3.residualList,Not,HDiv.hDiv,GetElem.getElem,HSub.hSub,Fin.subNat,Eq.transand 36 more83 instances, coercions and auxiliary constants left out.
Tactic trace: 60 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefixFlattenBlocks_ne_nilline 3121 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,HAdd.hAdd,Nat,List.length,OfNat.ofNat,Ne,List.nil,HAppend.hAppend,List.cons, Imo2026P3.prefixFlattenBlocksProof uses:
Eq.mpr, Imo2026P3.prefixRefinementBlocks,Fin.cast,id,Eq,congrArg,Eq.symm, Imo2026P3.prefixRefinementBlocks_eq_prefixFlattenBlocks, Imo2026P3.prefixRefinementBlocks_ne_nil,of_eq_true,Eq.trans,True,congrFun',List.length_append,zero_add,eq_self14 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefixFlattenBlocks_posline 3130 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,HAdd.hAdd,Nat,List.length,OfNat.ofNat,Membership.mem,HAppend.hAppend,List.cons,LT.lt,LE.le, Imo2026P3.prefixFlattenBlocksProof uses:
Eq.mpr, Imo2026P3.prefixRefinementBlocks,List.nil,Fin.cast,id,Eq,congrArg,Eq.symm, Imo2026P3.prefixRefinementBlocks_eq_prefixFlattenBlocks, Imo2026P3.prefixRefinementBlocks_pos,of_eq_true,Eq.trans,True,congrFun',List.length_append,zero_add,eq_self24 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefixFlattenBlocks_sumline 3141 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,HAdd.hAdd,Fin,Nat,List.length,OfNat.ofNat,List.sum,List.get,HAppend.hAppend,List.cons,List.nil,Fin.cast, Imo2026P3.prefixFlattenBlocksProof uses:
Eq.mpr, Imo2026P3.prefixRefinementBlocks,id,congrArg,Eq.symm, Imo2026P3.prefixRefinementBlocks_eq_prefixFlattenBlocks, Imo2026P3.prefixRefinementBlocks_sum,of_eq_true,Eq.trans,True,congrFun',List.length_append,zero_add,eq_self20 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.finBlocks_prefixFlattenBlocksline 3154 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,HAdd.hAdd,Nat,List.length,OfNat.ofNat,Eq, Imo2026P3.finBlocks,HAppend.hAppend,List.cons, Imo2026P3.prefixFlattenBlocks,List.ofFn, Imo2026P3.appendToLast, Imo2026P3.residualList,HDiv.hDiv,List.get,List.nilProof uses:
id,Eq.mpr,List.map,List.finRange,congrArg,Eq.symm,List.ofFn_eq_map,congrFun',List.length_append,Fin.cast,List.ofFn_congr,List.ofFn_fin_append25 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.flatten_ofFn_appendToLastline 3171 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,List,Real,Eq,List.flatten,List.ofFn, Imo2026P3.appendToLast,HAppend.hAppendProof uses:
Eq.mpr,List.dropLast,List.cons,Fin.last,List.nil,id,congrArg, Imo2026P3.ofFn_appendToLast,List.flatten_append,List.flatten_singleton,Ne,of_eq_true,Eq.trans,Fin.succ,True,congrFun',List.ofFn_succ,Not,False,eq_false'and 14 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.flatten_map_halfBlockline 3189 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,List.flatten,List.map,List.cons,HDiv.hDiv,OfNat.ofNat,Nat,List.nil, Imo2026P3.bisectLengthsProof uses:
List.rec,of_eq_true,Eq.trans,True,congr,congrArg,List.map_nil,List.flatMap,List.flatMap_nil,eq_self,HAppend.hAppend,List.map_cons,List.flatMap_cons19 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.flattenFinBlocks_prefixFlattenBlocksline 3195 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Fin,HAdd.hAdd,Nat,List.length,OfNat.ofNat,Eq, Imo2026P3.flattenFinBlocks,HAppend.hAppend,List.cons, Imo2026P3.prefixFlattenBlocks, Imo2026P3.residualList, Imo2026P3.bisectLengthsProof uses:
id,Eq.mpr,List.flatten, Imo2026P3.finBlocks,List.ofFn, Imo2026P3.appendToLast,HDiv.hDiv,List.get,List.nil,congrArg, Imo2026P3.finBlocks_prefixFlattenBlocks,List.flatten_append, Imo2026P3.flatten_ofFn_appendToLast,Eq.symm,List.map,List.finRange,List.ofFn_eq_map,Trans.trans,List.ofFn_comp',List.ofFn_getand 2 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefix_local_perm_pairsline 3220 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,List.Perm,HAppend.hAppend, Imo2026P3.residualList, Imo2026P3.bisectLengths, Imo2026P3.pairDup,List.map,HDiv.hDiv,OfNat.ofNat,NatProof uses:
Eq,Eq.refl,Eq.mpr,id,congrArg,List.perm_append_comm,congr,Eq.trans,congrFun',List.append_assoc,Eq.mp,List.Perm.append_left,List.Perm.append_right,List.Perm.symm, Imo2026P3.pairDup_perm_append_self,of_eq_true,List.flatMap,List.cons,List.nil,Trueand 6 more20 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.firstPlayerShare_prefix_localline 3241 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq, Imo2026P3.firstPlayerShare,HAppend.hAppend, Imo2026P3.residualList, Imo2026P3.bisectLengths,HAdd.hAdd,List.sum,HDiv.hDiv,OfNat.ofNat,NatProof uses:
Eq.mpr, Imo2026P3.pairDup,List.map,id,congrArg, Imo2026P3.firstPlayerShare_congr, Imo2026P3.prefix_local_perm_pairs, Imo2026P3.firstPlayerShare_pairDup_residualList,List.sum_append, Imo2026P3.sum_map_half,Eq.refl35 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefix_local_lengthline 3248 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,Nat,List.length,HAppend.hAppend, Imo2026P3.residualList, Imo2026P3.bisectLengths,HAdd.hAdd,HMul.hMul,OfNat.ofNatProof uses:
Eq.mpr,id,congrFun',congrArg,Eq.trans,List.length_append,congr, Imo2026P3.bisectLengths_length15 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefix_local_length_leline 3254 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Nat,LT.lt,OfNat.ofNat,HAdd.hAdd,LE.le,List.length,HSub.hSub,HAppend.hAppend, Imo2026P3.residualList, Imo2026P3.bisectLengths,HMul.hMulProof uses:
Eq.mpr,id,Eq,congrArg, Imo2026P3.prefix_local_length, Imo2026P3.residualList_length_le_one23 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefix_global_perm_pairsline 3262 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,List.Perm,HAppend.hAppend, Imo2026P3.residualList, Imo2026P3.bisectLengths, Imo2026P3.pairDup,List.map,HDiv.hDiv,OfNat.ofNat,NatProof uses:
List.Perm.append_right, Imo2026P3.prefix_local_perm_pairs,Eq,Eq.refl,Eq.mpr,id,congr,congrArg,List.append_assoc,List.Perm.append_left,List.perm_append_comm,of_eq_true,List.flatMap,List.cons,List.nil,Eq.trans,True,List.flatMap_append,eq_self,congrFun'and 4 more20 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.firstPlayerShare_prefix_globalline 3289 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq, Imo2026P3.firstPlayerShare,HAppend.hAppend, Imo2026P3.residualList, Imo2026P3.bisectLengths,HAdd.hAdd,List.sum,HDiv.hDiv,OfNat.ofNat,NatProof uses:
Eq.mpr, Imo2026P3.pairDup,List.map,id,congrArg, Imo2026P3.firstPlayerShare_congr, Imo2026P3.prefix_global_perm_pairs, Imo2026P3.firstPlayerShare_pairDup_residualList,List.sum_append, Imo2026P3.sum_map_half,Eq.refl35 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.prefix_global_lengthline 3297 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq,Nat,List.length,HAppend.hAppend, Imo2026P3.residualList, Imo2026P3.bisectLengths,HAdd.hAdd,HMul.hMul,OfNat.ofNatProof uses:
Eq.mpr,id,congrFun',congrArg,Eq.trans,List.length_append,congr, Imo2026P3.bisectLengths_length15 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- def
Imo2026P3.outsideIndicesline 3309 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,FinProof uses:
SDiff.sdiff,Finset.univ,Union.union4 instances, coercions and auxiliary constants left out.
- def
Imo2026P3.groupedIndicesline 3312 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Fin,ListProof uses:
HAppend.hAppend,Finset.sort,LE.le, Imo2026P3.outsideIndices7 instances, coercions and auxiliary constants left out.
- lemma
Imo2026P3.groupedIndices_nodupline 3315 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Fin,Disjoint,List.Nodup, Imo2026P3.groupedIndicesProof uses:
Finset.sort,LE.le,Finset.sort_nodup, Imo2026P3.outsideIndices,id,Eq.mpr,HAppend.hAppend,List,Eq,congrArg,List.append_assoc,List.Nodup.append,List.Disjoint,Membership.mem,Not,propext,List.disjoint_left,Iff.mp,Finset.mem_sort,And.rightand 11 more25 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.groupedIndices_lengthline 3339 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Fin,Disjoint,Eq,List.length, Imo2026P3.groupedIndicesProof uses:
List.Nodup, Imo2026P3.groupedIndices_nodup,Trans.trans,Finset.card,List.toFinset,Eq.symm,List.toFinset_card_of_nodup,Union.union, Imo2026P3.outsideIndices,Finset.univ,Finset.ext,Eq.mpr,Iff,Membership.mem,Or,And,Not,id,Eq.trans,Trueand 19 more22 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.groupedIndices_perm_finRangeline 3352 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Fin,Disjoint,List.Perm, Imo2026P3.groupedIndices,List.finRangeProof uses:
List.Subperm,List.subperm_of_subset, Imo2026P3.groupedIndices_nodup,Membership.mem,List,of_eq_true, Imo2026P3.subperm_perm_of_length_eq,Eq.mpr,Eq,List.length,id,congrArg, Imo2026P3.groupedIndices_length,List.length_finRange,Eq.refl6 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.flatten_assembleTwoSelectedBlocks_permline 3362 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Disjoint, Imo2026P3.selectedList,List.Perm, Imo2026P3.flattenFinBlocks, Imo2026P3.assembleTwoSelectedBlocks,HAppend.hAppend, Imo2026P3.bisectLengths, Imo2026P3.outsideIndicesProof uses:
Eq,List.flatMap,Finset.sort,LE.le,Eq.mpr, Imo2026P3.selectedBlockAt,id,congrArg,Eq.symm, Imo2026P3.flatMap_sort_selectedBlockAt,List.flatMap_congr,Membership.mem,Iff.mp,Finset.mem_sort,of_eq_true,Eq.trans, Imo2026P3.selectedIndex,eq_true,True,congrand 40 more40 instances, coercions and auxiliary constants left out.
Tactic trace: 32 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.flattenFinBlocks_castline 3410 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Fin,List,Real, Imo2026P3.flattenFinBlocks,Fin.castProof uses:
Eq.rec,of_eq_true,eq_selfTactic trace: 2 steps
Open to load the checked before-and-after goal states.
- structure
Imo2026P3.PositivePrefixDataline 3417 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real - theorem
Imo2026P3.exists_positive_prefix_dataline 3441 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Membership.mem,LT.lt,OfNat.ofNat,List.sum,LE.le,Nonempty, Imo2026P3.PositivePrefixDataProof uses:
Exists,And,Eq,HAppend.hAppend,List.cons,HSub.hSub,HAdd.hAdd,List.nil, Imo2026P3.exists_prefix_match_residual, Imo2026P3.commonAtoms,Or,Iff.mp,List.mem_append,of_eq_true,Eq.trans,True,congr,congrArg,eq_true,true_orand 87 more88 instances, coercions and auxiliary constants left out.
Tactic trace: 67 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.selected_partition_sumline 3541 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Disjoint,Eq,HAdd.hAdd,List.sum, Imo2026P3.selectedList, Imo2026P3.outsideIndicesProof uses:
List.Perm,List.map,List.get, Imo2026P3.groupedIndices,List.finRange,List.Perm.map, Imo2026P3.groupedIndices_perm_finRange,List.Perm.sum_eq,id,Eq.mp,Finset.sort,LE.le,congrArg,List.map_get_finRange,HAppend.hAppend,congrFun',Eq.trans,List.map_append,List.sum_append,OfNat.ofNat29 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.selected_partition_lengthline 3551 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Finset,Fin,List.length,Disjoint,Eq,Nat,HAdd.hAdd, Imo2026P3.selectedList, Imo2026P3.outsideIndicesProof uses: Imo2026P3.groupedIndices,
List.finRange,List.Perm.length_eq, Imo2026P3.groupedIndices_perm_finRange,Eq.mpr,Finset.card,id,congrFun',congrArg,Eq.trans,congr, Imo2026P3.selectedList_length,Nat.add_assoc,Eq.mp,HAppend.hAppend,Finset.sort,LE.le,List.append_assoc,List.length_append,Finset.length_sortand 1 more15 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.exists_positive_close_refinementline 3559 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,Finset,Fin,List.length,Disjoint, Imo2026P3.selectedList,LE.le,HSub.hSub,Exists,And, Imo2026P3.cutsOfLengths,Natand 4 moreProof uses: Imo2026P3.outsideIndices, Imo2026P3.selectedList_pos,
id,le_of_not_gt,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HPow.hPow,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Meta.NormNum.instAddMonoidWithOne,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.cast_zero,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_zeroand 126 more130 instances, coercions and auxiliary constants left out.
Tactic trace: 49 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.flattenFinBlocks_singletonsline 3639 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Eq, Imo2026P3.flattenFinBlocks,List.length,Fin,List.cons,List.get,List.nilProof uses:
id,List.flatten, Imo2026P3.finBlocks,Eq.mpr,List.map,List.finRange,List.ofFn,congrArg,Eq.symm,List.ofFn_eq_map,Trans.trans,List.ofFn_comp',List.ofFn_get,Eq.refl,List.rec,of_eq_true,Eq.trans,True,congrFun',List.map_niland 3 more3 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.exists_singleton_close_refinementline 3654 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,Fin,List.length,LE.le,List.get,Exists,And,Finset, Imo2026P3.cutsOfLengths,Nat,HSub.hSub,HMul.hMuland 3 moreProof uses:
Singleton.singleton,EmptyCollection.emptyCollection, Imo2026P3.selectedList, Imo2026P3.outsideIndices,Disjoint,Finset.disjoint_empty_right,List.cons,of_eq_true,GetElem.getElem,Fin.isLt,Eq.trans,True,congrFun',congrArg,List.map,Finset.sort,Imo2026P3.selectedList.eq_1,Finset.sort_singleton,DecidableRel,IsTransand 136 more135 instances, coercions and auxiliary constants left out.
Tactic trace: 80 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.exists_close_refinementline 3752 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Real,Ne,List.nil,Membership.mem,LT.lt,OfNat.ofNat,Eq,List.sum,Exists,And,LE.le,Finset, Imo2026P3.cutsOfLengths,Nat,List.length,HSub.hSub,HMul.hMul, Imo2026P3.firstPlayerShare,HDiv.hDivand 2 moreProof uses:
Iff.mpr,List.length_pos_iff,Fin,List.get,LT.lt.le,List.get_mem,Finset.sum,Finset.univ,List.map,List.finRange,Eq.symm,of_eq_true,Eq.trans,True,congr,congrArg,List.map_get_finRange,GetElem.getElem,Fin.isLt,Finset.sum_congrand 95 more140 instances, coercions and auxiliary constants left out.
Tactic trace: 37 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.upper_denom_posline 3813 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,Real,OfNat.ofNat,HSub.hSub,HPow.hPow,HAdd.hAddProof uses:
one_lt_pow₀,Mathlib.Meta.NormNum.isNat_lt_true,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_one,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Bool,Bool.false,lt_of_not_ge,LE.le,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Nat.rawCast,HMul.hMul,Int.rawCast,inferInstance,Ringand 49 more92 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.upper_answer_identityline 3819 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Real,HDiv.hDiv,HAdd.hAdd,OfNat.ofNat,HSub.hSub,HPow.hPowProof uses:
Ne,ne_of_gt, Imo2026P3.upper_denom_pos,HMul.hMul,Mathlib.Tactic.Ring.of_eq,Nat.rawCast,Mathlib.Tactic.Ring.Common.pow_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Mathlib.Meta.NormNum.instAtLeastTwo,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,congrArg,Eq.symm,Mathlib.Tactic.Ring.Common.add_pf_add_gt,Mathlib.Tactic.Ring.Common.add_pf_add_zeroand 89 more117 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2026P3.half_le_upper_answerline 3828 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,Real,HDiv.hDiv,OfNat.ofNat,HPow.hPow,HSub.hSub,HAdd.hAddProof uses:
Eq.mpr,id,Eq,congrArg,Eq.symm, Imo2026P3.upper_answer_identity,LT.lt,Iff.mpr,one_div_pos, Imo2026P3.upper_denom_pos,le_of_not_gt,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,HMul.hMul,inferInstance,AddMonoidWithOne,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Inv.inv,Int.rawCastand 74 more118 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.exists_hard_replyline 3835 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Real, Imo2026P3.AdmissibleMark,Eq,Finset.card,Exists,And,Disjoint,LE.le, Imo2026P3.L,HDiv.hDiv,HPow.hPow,OfNat.ofNat,HSub.hSub,HAdd.hAddProof uses:
List, Imo2026P3.pieceLengths,Ne,List.nil,List.length,congrArg,False.elim,False,Eq.mp,Eq.trans,EmptyCollection.emptyCollection,congr,and_false, Imo2026P3.pieceLengths_length,Membership.mem,LT.lt, Imo2026P3.pieceLengths_pos,And.left,Set,Set.Iooand 14 more67 instances, coercions and auxiliary constants left out.
Tactic trace: 21 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.codex_upper_bound_auxline 3863 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset,Real, Imo2026P3.AdmissibleMark,Exists,And,Disjoint,LE.le, Imo2026P3.L,HDiv.hDiv,HPow.hPow,HSub.hSub,HAdd.hAddProof uses:
dite,Finset.card,Eq, Imo2026P3.exists_bisect_reply,Exists.intro,And.intro,Eq.mpr,id,congrArg, Imo2026P3.half_le_upper_answer,Not,And.right,Set,Set.Ioo, Imo2026P3.exists_hard_reply55 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- theorem
Imo2026P3.lower_bound_auxAuxiliary form of the lower bound, declared beforeV_eqso that the main reduction can refer to it line 3879 sourceSource documentation
Auxiliary form of the lower bound, declared before
V_eqso that the main reduction can refer to it. Its content is identical tolower_bound.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Exists,Finset,Real,And, Imo2026P3.AdmissibleMark,Disjoint,LE.le,HDiv.hDiv,HPow.hPow,HSub.hSub,HAdd.hAdd, Imo2026P3.LProof uses: Imo2026P3.codex_lower_bound_complete
24 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem lower_bound_aux (n : ℕ) (hn : 0 < n) : ∃ A : Finset ℝ, AdmissibleMark n A ∧ ∀ B : Finset ℝ, AdmissibleMark n B → Disjoint A B → (2 : ℝ) ^ n / ((2 : ℝ) ^ (n + 1) - 1) ≤ L A B := by …Mentions: Imo2026P3.AdmissibleMark, Imo2026P3.L
- theorem
Imo2026P3.upper_bound_auxAuxiliary form of the upper bound, declared beforeV_eqso that the main reduction can refer to it line 3887 sourceSource documentation
Auxiliary form of the upper bound, declared before
V_eqso that the main reduction can refer to it. Its content is identical toupper_bound.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset,Real, Imo2026P3.AdmissibleMark,Exists,And,Disjoint,LE.le, Imo2026P3.L,HDiv.hDiv,HPow.hPow,HSub.hSub,HAdd.hAddProof uses: Imo2026P3.codex_upper_bound_aux
24 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem upper_bound_aux (n : ℕ) (hn : 0 < n) : ∀ A : Finset ℝ, AdmissibleMark n A → ∃ B : Finset ℝ, AdmissibleMark n B ∧ Disjoint A B ∧ L A B ≤ (2 : ℝ) ^ n / ((2 : ℝ) ^ (n + 1) - 1) := by …Mentions: Imo2026P3.AdmissibleMark, Imo2026P3.L
- theorem
Imo2026P3.lower_boundLower bound line 3896 sourceSource documentation
Lower bound. Liu Bang has an admissible marking
Asuch that for every admissible markingBdisjoint fromA, his guaranteed share is at least2^n / (2^(n+1) - 1).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Exists,Finset,Real,And, Imo2026P3.AdmissibleMark,Disjoint,LE.le,HDiv.hDiv,HPow.hPow,HSub.hSub,HAdd.hAdd, Imo2026P3.LProof uses: Imo2026P3.lower_bound_aux
24 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem lower_bound (n : ℕ) (hn : 0 < n) : ∃ A : Finset ℝ, AdmissibleMark n A ∧ ∀ B : Finset ℝ, AdmissibleMark n B → Disjoint A B → (2 : ℝ) ^ n / ((2 : ℝ) ^ (n + 1) - 1) ≤ L A B := by …Mentions: Imo2026P3.AdmissibleMark, Imo2026P3.L
- theorem
Imo2026P3.upper_boundUpper bound / optimality line 3905 sourceSource documentation
Upper bound / optimality. For every admissible marking
Aof Liu Bang, Xiang Yu has an admissible markingBdisjoint fromAwithL A B ≤ 2^n / (2^(n+1) - 1), so Liu Bang cannot guarantee more.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset,Real, Imo2026P3.AdmissibleMark,Exists,And,Disjoint,LE.le, Imo2026P3.L,HDiv.hDiv,HPow.hPow,HSub.hSub,HAdd.hAddProof uses: Imo2026P3.upper_bound_aux
24 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem upper_bound (n : ℕ) (hn : 0 < n) : ∀ A : Finset ℝ, AdmissibleMark n A → ∃ B : Finset ℝ, AdmissibleMark n B ∧ Disjoint A B ∧ L A B ≤ (2 : ℝ) ^ n / ((2 : ℝ) ^ (n + 1) - 1) := by …Mentions: Imo2026P3.AdmissibleMark, Imo2026P3.L
- problem
Imo2026P3.imo2026_p3line 3914 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Eq,Real, Imo2026P3.V, Imo2026P3.answerProof uses:
Finset,And, Imo2026P3.AdmissibleMark,Disjoint,LE.le,HDiv.hDiv,HPow.hPow,HSub.hSub,HAdd.hAdd, Imo2026P3.L,Exists, Imo2026P3.lower_bound_aux, Imo2026P3.upper_bound_aux,EmptyCollection.emptyCollection,And.intro,Set,Set.Ioo,Finset.card,of_eq_true,Eq.transand 28 more56 instances, coercions and auxiliary constants left out.
Tactic trace: 35 steps
Open to load the checked before-and-after goal states.