Compfiles/Imo2016P2.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
66 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 2016, Problem 2
Find all positive integers $n$ for which each cell of an $n \times n$ table can be filled with one of the letters $I$, $M$ and $O$ in such a way that:
- in each row and each column, one third of the entries are $I$, one third are $M$ and one third are $O$; and
- in any diagonal, if the number of entries on the diagonal is a multiple of three, then one third of the entries are $I$, one third are $M$ and one third are $O$.
Note. The rows and columns of an $n \times n$ table are each labelled $1$ to $n$ in a natural order. Thus each cell corresponds to a pair of positive integers $(i, j)$ with $1 \le i, j \le n$. For $n > 1$, the table has $4n - 2$ diagonals of two types. A diagonal of the first type consists of all cells $(i, j)$ for which $i + j$ is a constant, and a diagonal of the second type consists of all cells $(i, j)$ for which $i - j$ is constant.
Imports (2)
Imported by 1 file
- abbrev
Imo2016P2.LetterThe three lettersI,M,Oline 40 sourceSource documentation
The three letters
I,M,O.no axioms what this means
Proof uses:
Fin,OfNat.ofNat,Nat1 instances, coercions and auxiliary constants left out.
abbrev Letter := Fin 3 …
- def
Imo2016P2.BalancedA finite set of cells is balanced under the coloringfif each of the three letters occurs on exactly one third of its cells line 46 sourceSource documentation
A finite set of cells is balanced under the coloring
fif each of the three letters occurs on exactly one third of its cells.standard axioms: Quot.sound, propext what this means
Statement uses:
Nat,Fin, Imo2016P2.Letter,Finset,ProdProof uses:
Eq,Finset.card,Finset.filter,Prod.fst,Prod.snd,OfNat.ofNat,HDiv.hDiv4 instances, coercions and auxiliary constants left out.
def Balanced (f : Fin n → Fin n → Letter) (cells : Finset (Fin n × Fin n)) : Prop := …
Mentions: f, Imo2016P2.Letter
- def
Imo2016P2.rowThe cells of rowrline 50 sourceSource documentation
The cells of row
r.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Finset,ProdProof uses:
Finset.filter,Eq,Prod.fst,Finset.univ3 instances, coercions and auxiliary constants left out.
def row (r : Fin n) : Finset (Fin n × Fin n) := Finset.univ.filter (fun p ↦ p.1 = r)
- def
Imo2016P2.colThe cells of columnkline 53 sourceSource documentation
The cells of column
k.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Finset,ProdProof uses:
Finset.filter,Eq,Prod.snd,Finset.univ3 instances, coercions and auxiliary constants left out.
def col (k : Fin n) : Finset (Fin n × Fin n) := Finset.univ.filter (fun p ↦ p.2 = k)
- def
Imo2016P2.diagSumA diagonal of the first type: the cells(i, j)withi + j = sline 56 sourceSource documentation
A diagonal of the first type: the cells
(i, j)withi + j = s.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Prod,FinProof uses:
Finset.filter,Eq,HAdd.hAdd,Prod.fst,Prod.snd,Finset.univ6 instances, coercions and auxiliary constants left out.
def diagSum (s : ℕ) : Finset (Fin n × Fin n) := …
- def
Imo2016P2.diagDiffA diagonal of the second type: the cells(i, j)withi - j = dline 60 sourceSource documentation
A diagonal of the second type: the cells
(i, j)withi - j = d.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Int,Finset,Prod,FinProof uses:
Finset.filter,Eq,HSub.hSub,Prod.fst,Prod.snd,Finset.univ8 instances, coercions and auxiliary constants left out.
def diagDiff (d : ℤ) : Finset (Fin n × Fin n) := …
- def
Imo2016P2.MODTableThe coloringfof then × ntable satisfies all the required conditions: every row and column is balanced, and every diagonal whose length is a multiple of three is balanced line 66 sourceSource documentation
The coloring
fof then × ntable satisfies all the required conditions: every row and column is balanced, and every diagonal whose length is a multiple of three is balanced.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin, Imo2016P2.LetterProof uses:
And, Imo2016P2.Balanced, Imo2016P2.row, Imo2016P2.col,Dvd.dvd,OfNat.ofNat,Finset.card,Prod, Imo2016P2.diagSum,Int, Imo2016P2.diagDiff2 instances, coercions and auxiliary constants left out.
def MODTable (f : Fin n → Fin n → Letter) : Prop := …
Mentions: f, Imo2016P2.Letter
- determine
Imo2016P2.solutionline 72 sourceno axioms what this means
Statement uses:
Set,NatProof uses:
Set.ofPred,Dvd.dvd,OfNat.ofNat2 instances, coercions and auxiliary constants left out.
- def
Imo2016P2.periodicColorline 76 sourcestandard axioms: propext what this means
Statement uses:
Nat,Fin, Imo2016P2.LetterProof uses:
Fin.ofNat,OfNat.ofNat,HAdd.hAdd,HDiv.hDiv7 instances, coercions and auxiliary constants left out.
- lemma
Imo2016P2.row_eq_productline 79 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Eq,Finset,Prod, Imo2016P2.row,SProd.sprod,Singleton.singleton,Finset.univProof uses:
Finset.ext,Iff,Membership.mem,of_eq_true,Prod.mk,Eq.trans,True,congr,congrArg,And,Prod.fst,Finset.filter,congrFun',Finset.filter_congr,Iff.of_eq,true_and,Exists,Function.Embedding,Function.Embedding.sectR,Finset.mapand 12 more19 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.map_filter_periodicColorline 84 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin, Imo2016P2.Letter,Eq,Finset,Finset.map,Fin.valEmbedding,Finset.filter, Imo2016P2.periodicColor,OfNat.ofNat,Finset.univ,Fin.ofNat,HAdd.hAdd,HDiv.hDiv,Finset.rangeProof uses:
Finset.ext,Eq.mpr,Iff,Membership.mem,Exists,And,LT.lt,id,congr,congrArg,Eq.trans,Function.Embedding,funext,True,congrFun',true_and,congrFun,Fin.valEmbedding_apply,Iff.intro,And.introand 4 more30 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.row_block_countline 96 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,Eq,Finset.card,Finset.filter,Fin,OfNat.ofNat,Fin.ofNat,HAdd.hAdd,HDiv.hDiv,Finset.rangeProof uses:
LT.lt,HMod.hMod,Nat.mod_lt,dite,LE.le,List,List.Mem,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,Eq.mprand 34 more37 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.row_periodic_countline 102 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,Eq,Finset.card,Finset.filter,Fin,OfNat.ofNat,Fin.ofNat,HAdd.hAdd,HDiv.hDiv,Finset.range,HMul.hMulProof uses:
Nat.recAux,of_eq_true,Eq.trans,True,congr,congrArg,Finset,EmptyCollection.emptyCollection,Fin.NatCast.instNatCast,Finset.filter_congr,Membership.mem,Iff.of_eq,Eq.refl,Finset.filter.congr_simp,MulZeroClass.mul_zero,Finset.filter_empty,eq_self,Eq.mpr,id,Union.unionand 32 more60 instances, coercions and auxiliary constants left out.
Tactic trace: 20 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.add_block_countline 138 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,Eq,Finset.card,Finset.filter,Fin,OfNat.ofNat,Fin.ofNat,HAdd.hAdd,Finset.rangeProof uses:
LT.lt,HMod.hMod,Nat.mod_lt,dite,LE.le,List,List.Mem,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,Eq.mprand 34 more33 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.add_periodic_countline 144 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,Eq,Finset.card,Finset.filter,Fin,OfNat.ofNat,Fin.ofNat,HAdd.hAdd,Finset.range,HMul.hMulProof uses:
Nat.recAux,of_eq_true,Eq.trans,True,congrFun',congrArg,Finset,EmptyCollection.emptyCollection,Fin.NatCast.instNatCast,Finset.filter_congr,Membership.mem,Iff.of_eq,Eq.refl,Finset.filter.congr_simp,MulZeroClass.mul_zero,Finset.filter_empty,eq_self,Eq.mpr,id,Union.unionand 32 more54 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.col_eq_productline 177 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Eq,Finset,Prod, Imo2016P2.col,SProd.sprod,Finset.univ,Singleton.singletonProof uses:
Finset.ext,Iff,Membership.mem,of_eq_true,Prod.mk,Eq.trans,True,congr,congrArg,And,Prod.snd,Finset.filter,congrFun',Finset.filter_congr,Iff.of_eq,true_and,Exists,Function.Embedding,Function.Embedding.sectL,Finset.mapand 11 more19 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.map_filter_periodicColor_colline 182 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin, Imo2016P2.Letter,Eq,Finset,Finset.map,Fin.valEmbedding,Finset.filter, Imo2016P2.periodicColor,OfNat.ofNat,Finset.univ,Fin.ofNat,HAdd.hAdd,HDiv.hDiv,Finset.rangeProof uses:
Finset.ext,Eq.mpr,Iff,Membership.mem,Exists,And,LT.lt,id,congr,congrArg,Eq.trans,Function.Embedding,funext,True,congrFun',true_and,congrFun,Fin.valEmbedding_apply,Iff.intro,And.introand 4 more30 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.diagSum_card_eqline 194 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Finset.card,Prod,Fin, Imo2016P2.diagSum,HSub.hSub,Min.min,HAdd.hAdd,OfNat.ofNatProof uses:
Trans.trans,Finset.Ico,Finset.card_bij,Membership.mem,Finset,Prod.snd,Eq.mpr,And,LE.le,LT.lt,id,And.intro,Eq.mp,Prod.fst,Eq.trans,Finset.filter,Finset.univ,True,congrFun',congrArgand 9 more34 instances, coercions and auxiliary constants left out.
Tactic trace: 26 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.diagSum_color_card_eqline 219 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,Eq,Finset.card,Prod,Fin,Finset.filter, Imo2016P2.periodicColor,Prod.fst,Prod.snd,OfNat.ofNat, Imo2016P2.diagSum,Fin.ofNat,HAdd.hAdd,HSub.hSub,HDiv.hDiv,Finset.Ico,Min.minProof uses:
Finset.card_bij,Membership.mem,Finset,Eq.mpr,And,id,And.intro,LE.le,LT.lt,Eq.mp,congrFun',congrArg,Eq.trans,Finset.univ,True,true_and,Fin.NatCast.instNatCast,Fin.ofNat.congr_simp,And.right,Prod.extand 6 more45 instances, coercions and auxiliary constants left out.
Tactic trace: 39 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.desc_block_countline 252 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,Eq,Finset.card,Finset.filter,Fin,OfNat.ofNat,Fin.ofNat,HSub.hSub,HAdd.hAdd,Finset.rangeProof uses:
Trans.trans,HMod.hMod,Finset,Eq.rec,Eq.refl,Finset.ext,Eq.mpr,Iff,Membership.mem,And,LT.lt,id,congr,congrArg,Eq.trans,congrFun',Iff.intro,And.intro,Eq.symm,Fin.extand 49 more55 instances, coercions and auxiliary constants left out.
Tactic trace: 29 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.desc_block_count'line 283 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat, Imo2016P2.Letter,Eq,Finset.card,Finset.filter,Fin,Fin.ofNat,HSub.hSub,Finset.rangeProof uses:
Trans.trans,HAdd.hAdd,Finset,Eq.rec,Eq.refl,Finset.ext,Eq.mpr,Iff,Membership.mem,And,LT.lt,id,congr,congrArg,Eq.trans,congrFun',Fin.ext,of_eq_true,HMod.hMod,Trueand 8 more27 instances, coercions and auxiliary constants left out.
Tactic trace: 20 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.desc_periodic_countline 306 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,LE.le,HMul.hMul,OfNat.ofNat,HAdd.hAdd,Eq,Finset.card,Finset.filter,Fin,Fin.ofNat,HSub.hSub,HDiv.hDiv,Finset.rangeProof uses:
Nat.recAux,of_eq_true,Eq.trans,True,congrFun',congrArg,Finset,EmptyCollection.emptyCollection,Fin.NatCast.instNatCast,Finset.filter_congr,Membership.mem,Iff.of_eq,Eq.refl,Finset.filter.congr_simp,MulZeroClass.mul_zero,Finset.filter_empty,eq_self,Eq.mpr,id,Union.unionand 25 more58 instances, coercions and auxiliary constants left out.
Tactic trace: 34 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.Ico_eq_map_rangeline 349 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Finset,Finset.Ico,Finset.map,addLeftEmbedding,Finset.range,HSub.hSubProof uses:
Finset.ext,Eq.mpr,Iff,Membership.mem,And,LE.le,LT.lt,Exists,HAdd.hAdd,id,congr,congrArg,Eq.trans,Function.Embedding,funext,congrFun',addLeftEmbedding_apply,Iff.intro,Exists.intro,And.intro37 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.periodicColor_diagSumline 360 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Dvd.dvd,OfNat.ofNat,Finset.card,Prod,Fin, Imo2016P2.diagSum, Imo2016P2.Balanced, Imo2016P2.periodicColorProof uses:
id, Imo2016P2.Letter,Eq.mpr,Eq,Finset.filter,Prod.fst,Prod.snd,HDiv.hDiv,Fin.ofNat,HAdd.hAdd,HSub.hSub,Finset.Ico,Min.min,congrArg, Imo2016P2.diagSum_color_card_eq, Imo2016P2.diagSum_card_eq,Eq.mp,dite,Finset.map,addLeftEmbeddingand 44 more48 instances, coercions and auxiliary constants left out.
Tactic trace: 57 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.diagDiff_card_eq_nonnegline 415 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Finset.card,Prod,Fin, Imo2016P2.diagDiff,Int,HSub.hSubProof uses:
Trans.trans,Finset.range,Finset.card_bij,Membership.mem,Finset,Prod.snd,Eq.mpr,LT.lt,id,Decidable.byContradiction,Not,Eq.mp,Prod.fst,Eq.trans,Finset.filter,Finset.univ,And,True,congrFun',congrArgand 16 more37 instances, coercions and auxiliary constants left out.
Tactic trace: 24 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.diagDiff_card_eq_negline 438 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Finset.card,Prod,Fin, Imo2016P2.diagDiff,Neg.neg,Int,HSub.hSubProof uses:
Trans.trans,Finset.range,Finset.card_bij,Membership.mem,Finset,Prod.fst,Eq.mpr,LT.lt,id,Decidable.byContradiction,Not,Eq.mp,Prod.snd,Eq.trans,Finset.filter,Finset.univ,And,True,congrFun',congrArgand 16 more43 instances, coercions and auxiliary constants left out.
Tactic trace: 24 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.diagDiff_color_card_eq_nonnegline 461 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,Eq,Finset.card,Prod,Fin,Finset.filter, Imo2016P2.periodicColor,Prod.fst,Prod.snd,OfNat.ofNat, Imo2016P2.diagDiff,Int,Fin.ofNat,HAdd.hAdd,HDiv.hDiv,Finset.range,HSub.hSubProof uses:
Finset.card_bij,Membership.mem,Finset,Eq.mpr,And,id,And.intro,LT.lt,Decidable.byContradiction,Not,Eq.mp,congrFun',congrArg,Eq.trans,Finset.univ,True,true_and,Fin.NatCast.instNatCast,Fin.ofNat.congr_simp,Nat.add_assocand 14 more51 instances, coercions and auxiliary constants left out.
Tactic trace: 37 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.diagDiff_color_card_eq_negline 493 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,Eq,Finset.card,Prod,Fin,Finset.filter, Imo2016P2.periodicColor,Prod.fst,Prod.snd,OfNat.ofNat, Imo2016P2.diagDiff,Neg.neg,Int,Fin.ofNat,HAdd.hAdd,HDiv.hDiv,Finset.range,HSub.hSubProof uses:
Finset.card_bij,Membership.mem,Finset,Eq.mpr,And,id,And.intro,LT.lt,Decidable.byContradiction,Not,Eq.mp,congrFun',congrArg,Eq.trans,Finset.univ,True,true_and,Fin.NatCast.instNatCast,Fin.ofNat.congr_simp,And.rightand 13 more57 instances, coercions and auxiliary constants left out.
Tactic trace: 37 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.asc_periodic_countline 525 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,Eq,Finset.card,Finset.filter,Fin,OfNat.ofNat,Fin.ofNat,HAdd.hAdd,HDiv.hDiv,Finset.range,HMul.hMulProof uses:
Nat.recAux,of_eq_true,Eq.trans,True,congrFun',congrArg,Finset,EmptyCollection.emptyCollection,Fin.NatCast.instNatCast,Finset.filter_congr,Membership.mem,Iff.of_eq,Eq.refl,Finset.filter.congr_simp,MulZeroClass.mul_zero,Finset.filter_empty,eq_self,Eq.mpr,id,Union.unionand 26 more51 instances, coercions and auxiliary constants left out.
Tactic trace: 29 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.periodicColor_diagDiffline 565 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Dvd.dvd,OfNat.ofNat,Int,Finset.card,Prod,Fin, Imo2016P2.diagDiff, Imo2016P2.Balanced, Imo2016P2.periodicColorProof uses:
id, Imo2016P2.Letter,dite,Eq,Finset.filter,Prod.fst,Prod.snd,HDiv.hDiv,LE.le,Int.toNat,Int.toNat_of_nonneg,HSub.hSub,Eq.mpr,congrArg,Eq.symm, Imo2016P2.diagDiff_card_eq_nonneg,Finset,HMul.hMul,Fin.ofNat,HAdd.hAddand 33 more38 instances, coercions and auxiliary constants left out.
Tactic trace: 48 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.periodicColor_rowline 619 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Dvd.dvd,OfNat.ofNat, Imo2016P2.Balanced, Imo2016P2.periodicColor, Imo2016P2.rowProof uses:
id, Imo2016P2.Letter,Eq.mpr,Eq,Finset.card,Prod,Finset.filter,Prod.fst,Prod.snd,HDiv.hDiv,SProd.sprod,Finset,Singleton.singleton,Finset.univ,congrArg, Imo2016P2.row_eq_product,Finset.ext,Iff,Membership.mem,Prod.mkand 25 more28 instances, coercions and auxiliary constants left out.
Tactic trace: 24 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.periodicColor_colline 649 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,Dvd.dvd,OfNat.ofNat, Imo2016P2.Balanced, Imo2016P2.periodicColor, Imo2016P2.colProof uses:
id, Imo2016P2.Letter,Eq.mpr,Eq,Finset.card,Prod,Finset.filter,Prod.fst,Prod.snd,HDiv.hDiv,SProd.sprod,Finset,Finset.univ,Singleton.singleton,congrArg, Imo2016P2.col_eq_product,Finset.ext,Iff,Membership.mem,Prod.mkand 31 more31 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.exists_modTable_of_nine_dvdline 684 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Dvd.dvd,OfNat.ofNat,Exists,Fin, Imo2016P2.Letter, Imo2016P2.MODTableProof uses:
Exists.intro, Imo2016P2.periodicColor,And.intro, Imo2016P2.Balanced, Imo2016P2.row,And, Imo2016P2.col,Finset.card,Prod, Imo2016P2.diagSum,Int, Imo2016P2.diagDiff, Imo2016P2.periodicColor_row, Imo2016P2.periodicColor_col, Imo2016P2.periodicColor_diagSum, Imo2016P2.periodicColor_diagDiff4 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.Balanced.three_dvd_cardline 692 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin, Imo2016P2.Letter,Finset,Prod, Imo2016P2.Balanced,Dvd.dvd,OfNat.ofNat,Finset.cardProof uses:
Eq,Finset.sum,Finset.univ,Finset.filter,Prod.fst,Prod.snd,Finset.card_eq_sum_card_fiberwise,of_eq_true,Set.MapsTo,Eq.trans,Set.univ,True,congrArg,Set,Finset.coe_univ,HMul.hMul,HDiv.hDiv,Trans.trans,Finset.sum_congr,rfland 7 more19 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.balanced_of_fibersline 708 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,DecidableEq,Fin, Imo2016P2.Letter,Finset,Prod,Membership.mem, Imo2016P2.Balanced,Finset.filter,EqProof uses:
Finset.card,Finset.sum,Finset.card_eq_sum_card_fiberwise,HMul.hMul,OfNat.ofNat,HDiv.hDiv,Dvd.dvd, Imo2016P2.Balanced.three_dvd_card,Trans.trans,Finset.sum_congr,rfl,Eq.mpr,id,congrArg,Finset.mul_sum,Eq.refl,Prod.fst,Prod.snd,And.left,Iff.mpand 10 more22 instances, coercions and auxiliary constants left out.
Tactic trace: 24 steps
Open to load the checked before-and-after goal states.
- def
Imo2016P2.vitalIndicesline 755 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Fin,HMul.hMul,OfNat.ofNatProof uses:
Finset.filter,Eq,Fin.ofNat,Finset.univ11 instances, coercions and auxiliary constants left out.
- def
Imo2016P2.vitalRowCellsline 758 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Prod,Fin,HMul.hMul,OfNat.ofNatProof uses:
SProd.sprod, Imo2016P2.vitalIndices,Finset.univ8 instances, coercions and auxiliary constants left out.
- def
Imo2016P2.vitalColCellsline 761 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Prod,Fin,HMul.hMul,OfNat.ofNatProof uses:
SProd.sprod,Finset.univ, Imo2016P2.vitalIndices8 instances, coercions and auxiliary constants left out.
- def
Imo2016P2.vitalSumCellsline 764 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Prod,Fin,HMul.hMul,OfNat.ofNatProof uses:
Finset.filter,Eq,Fin.ofNat,HAdd.hAdd,Prod.fst,Prod.snd,Finset.univ14 instances, coercions and auxiliary constants left out.
- def
Imo2016P2.vitalDiffCellsline 767 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Prod,Fin,HMul.hMul,OfNat.ofNatProof uses:
Finset.filter,Eq,Fin.ofNat,Prod.fst,Prod.snd,Finset.univ11 instances, coercions and auxiliary constants left out.
- def
Imo2016P2.centerCellsline 770 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,Prod,Fin,HMul.hMul,OfNat.ofNatProof uses:
SProd.sprod, Imo2016P2.vitalIndices7 instances, coercions and auxiliary constants left out.
- def
Imo2016P2.colorCountline 773 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
Nat,Fin, Imo2016P2.Letter,Finset,ProdProof uses:
Finset.card,Finset.filter,Eq,Prod.fst,Prod.snd,OfNat.ofNat2 instances, coercions and auxiliary constants left out.
- def
Imo2016P2.vitalSumKeysline 777 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,FinsetProof uses:
Finset.filter,Eq,Fin,OfNat.ofNat,Fin.ofNat,Finset.range,HMul.hMul6 instances, coercions and auxiliary constants left out.
- def
Imo2016P2.vitalDiffKeysline 780 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset,IntProof uses:
Finset.filter,Dvd.dvd,OfNat.ofNat,Finset.map,Function.Embedding.mk,HSub.hSub,HMul.hMul,Eq,Finset.range,HAdd.hAdd14 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.card_filter_gridline 786 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,DecidableRel,Eq,Finset.card,Prod,Finset.filter,Prod.fst,Prod.snd,Finset.univ,Finset.sumProof uses:
Finset,Membership.mem,of_eq_true,Eq.trans,True,forall_congr,implies_congr,Eq.refl,implies_true,Trans.trans,Finset.card_eq_sum_card_fiberwise,Finset.sum_congr,rfl,Finset.card_bij,Eq.mpr,id,And,congrFun',congrArg,true_andand 12 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 25 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.fin_add_countline 810 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2016P2.Letter,Eq,Finset.card,Fin,HMul.hMul,OfNat.ofNat,Finset.filter,Fin.ofNat,HAdd.hAdd,Finset.univProof uses:
Finset,Finset.map,Fin.valEmbedding,Finset.range,Finset.ext,Eq.mpr,Iff,Membership.mem,Exists,And,LT.lt,id,congr,congrArg,Eq.trans,Function.Embedding,funext,True,congrFun',true_andand 11 more30 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vitalIndices_cardline 828 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Finset.card,Fin,HMul.hMul,OfNat.ofNat, Imo2016P2.vitalIndicesProof uses:
Eq.mpr,Finset.filter,Fin.NatCast.instNatCast,Finset.univ,id,congrFun',congrArg,Finset,Finset.filter_congr,Fin.ofNat,Membership.mem,Iff.of_eq,Eq.refl,Eq.mp,HAdd.hAdd, Imo2016P2.Letter,Fin.ofNat.congr_simp,zero_add, Imo2016P2.fin_add_count19 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vitalRowCells_cardline 831 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Finset.card,Prod,Fin,HMul.hMul,OfNat.ofNat, Imo2016P2.vitalRowCells,HPow.hPowProof uses:
Eq.mpr,id,congrFun',congrArg,Eq.trans,SProd.sprod,Finset, Imo2016P2.vitalIndices,Finset.univ,Finset.card_product,congr, Imo2016P2.vitalIndices_card,Fintype.card_fin,Mathlib.Tactic.Ring.of_eq,HAdd.hAdd,Nat.rawCast,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.symmand 22 more30 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vitalColCells_cardline 835 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Finset.card,Prod,Fin,HMul.hMul,OfNat.ofNat, Imo2016P2.vitalColCells,HPow.hPowProof uses:
Eq.mpr,id,congrFun',congrArg,Eq.trans,SProd.sprod,Finset,Finset.univ, Imo2016P2.vitalIndices,Finset.card_product,congr,Fintype.card_fin, Imo2016P2.vitalIndices_card,Mathlib.Tactic.Ring.of_eq,HAdd.hAdd,Nat.rawCast,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refland 22 more30 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vitalSumCells_cardline 839 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Finset.card,Prod,Fin,HMul.hMul,OfNat.ofNat, Imo2016P2.vitalSumCells,HPow.hPowProof uses:
Trans.trans,Finset.sum,Finset.univ,Finset.filter,Fin.ofNat,HAdd.hAdd, Imo2016P2.card_filter_grid,Finset.sum_congr,rfl,Finset,Membership.mem, Imo2016P2.fin_add_count, Imo2016P2.Letter,Eq.mpr,id,congrFun',congrArg,Eq.trans,HSMul.hSMul,Finset.sum_constand 28 more42 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vitalDiffCells_cardline 853 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Finset.card,Prod,Fin,HMul.hMul,OfNat.ofNat, Imo2016P2.vitalDiffCells,HPow.hPowProof uses:
Trans.trans,Finset.sum,Finset.univ,Finset.filter,Fin.ofNat, Imo2016P2.card_filter_grid,Finset.sum_congr,rfl,Finset,Membership.mem,Eq.mpr,Fin.NatCast.instNatCast,id,Eq.trans,congrFun',congrArg,Finset.filter_congr,Iff.of_eq,Eq.refl,Eq.mpand 33 more45 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.three_dvd_diagSum_cardline 867 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,Fin,OfNat.ofNat,Fin.ofNat,Dvd.dvd,Finset.card,Prod,HMul.hMul, Imo2016P2.diagSumProof uses:
HMod.hMod,Eq.mp,congrArg,Nat.mod_succ,HAdd.hAdd,HDiv.hDiv,Nat.div_add_mod,Eq.mpr,HSub.hSub,Min.min,id, Imo2016P2.diagSum_card_eq,dite,LE.le,Exists.intro,Nat.min_eq_right,Nat.sub_eq_zero_of_le,Not,Nat.min_eq_left30 instances, coercions and auxiliary constants left out.
Tactic trace: 23 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.three_dvd_diagDiff_cardline 887 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Int,Dvd.dvd,OfNat.ofNat,Finset.card,Prod,Fin,HMul.hMul, Imo2016P2.diagDiffProof uses:
Eq,dite,LE.le,Int.toNat,Int.toNat_of_nonneg,Eq.mpr,id,congrArg,Eq.symm,HSub.hSub, Imo2016P2.diagDiff_card_eq_nonneg,Exists.intro,Not,Neg.neg, Imo2016P2.diagDiff_card_eq_neg29 instances, coercions and auxiliary constants left out.
Tactic trace: 30 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.finMod_eq_iff_three_dvd_subline 910 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Iff,Eq,Fin,OfNat.ofNat,Fin.ofNat,Dvd.dvd,Int,HSub.hSubProof uses:
Iff.intro,HMod.hMod,congrArg,HAdd.hAdd,HMul.hMul,HDiv.hDiv,Nat.div_add_mod,Exists.intro,Fin.ext,id,LT.lt,Nat.mod_lt32 instances, coercions and auxiliary constants left out.
Tactic trace: 20 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.univ_balanced_of_rowsline 929 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin, Imo2016P2.Letter, Imo2016P2.Balanced, Imo2016P2.row,Finset.univ,ProdProof uses: Imo2016P2.balanced_of_fibers,
Prod.fst,of_eq_true,Membership.mem,Finset,Eq.trans,True,forall_congr,implies_congr,implies_true9 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vitalRowCells_balancedline 937 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HMul.hMul,OfNat.ofNat, Imo2016P2.Letter, Imo2016P2.Balanced, Imo2016P2.row, Imo2016P2.vitalRowCellsProof uses: Imo2016P2.balanced_of_fibers, Imo2016P2.vitalIndices,
Prod,Prod.fst,Membership.mem,Finset,And.left,Finset.univ,Prod.snd,Iff.mp,SProd.sprod,And,Finset.mem_product,Eq.mpr,Finset.filter,Eq,eq_of_heq,HEq,Eq.refl,HEq.refland 16 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vitalColCells_balancedline 955 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HMul.hMul,OfNat.ofNat, Imo2016P2.Letter, Imo2016P2.Balanced, Imo2016P2.col, Imo2016P2.vitalColCellsProof uses: Imo2016P2.balanced_of_fibers, Imo2016P2.vitalIndices,
Prod,Prod.snd,Membership.mem,Finset,And.right,Finset.univ,Prod.fst,Iff.mp,SProd.sprod,And,Finset.mem_product,Eq.mpr,Finset.filter,Eq,eq_of_heq,HEq,Eq.refl,HEq.refland 14 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vitalSumCells_balancedline 973 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HMul.hMul,OfNat.ofNat, Imo2016P2.Letter,Dvd.dvd,Finset.card,Prod, Imo2016P2.diagSum, Imo2016P2.Balanced, Imo2016P2.vitalSumCellsProof uses: Imo2016P2.balanced_of_fibers, Imo2016P2.vitalSumKeys,
HAdd.hAdd,Prod.fst,Prod.snd,Membership.mem,Finset,Eq.mpr,And,LT.lt,Eq,Fin.ofNat,id,Eq.trans,Finset.filter,Finset.range,congrFun',congrArg,And.intro,Eq.mpand 17 more29 instances, coercions and auxiliary constants left out.
Tactic trace: 23 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vitalDiffCells_balancedline 996 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HMul.hMul,OfNat.ofNat, Imo2016P2.Letter,Int,Dvd.dvd,Finset.card,Prod, Imo2016P2.diagDiff, Imo2016P2.Balanced, Imo2016P2.vitalDiffCellsProof uses: Imo2016P2.balanced_of_fibers, Imo2016P2.vitalDiffKeys,
HSub.hSub,Prod.fst,Prod.snd,Membership.mem,Finset,Eq.mpr,And,Exists,Finset.range,HAdd.hAdd,Eq,id,Eq.trans,Finset.filter,Finset.map,Function.Embedding.mk,congrFun',congrArgand 23 more40 instances, coercions and auxiliary constants left out.
Tactic trace: 31 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.three_dvd_of_modTableline 1026 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Fin, Imo2016P2.Letter, Imo2016P2.MODTable,Dvd.dvdProof uses:
Fin.mk,Finset.card,Prod, Imo2016P2.row, Imo2016P2.Balanced.three_dvd_card,And.left, Imo2016P2.Balanced,And, Imo2016P2.col, Imo2016P2.diagSum,Int, Imo2016P2.diagDiff,Eq.mp,SProd.sprod,Finset,Singleton.singleton,Finset.univ,congrArg,Eq.trans,Finset.mapand 5 more9 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vital_incidence_indicatorline 1033 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Prod,Fin,HMul.hMul,OfNat.ofNat,Eq,HAdd.hAdd,ite,Membership.mem,Finset, Imo2016P2.vitalRowCells, Imo2016P2.vitalColCells, Imo2016P2.vitalSumCells, Imo2016P2.vitalDiffCells, Imo2016P2.centerCellsProof uses:
Fin.ofNat,Prod.fst,Prod.snd,Fin.ext,of_eq_true,Eq.trans,HMod.hMod,True,congr,congrArg,Fin.mk,LT.lt,Nat.add_mod,congrFun',Nat.mod_mod_of_dvd,Dvd.dvd,Fin.mk.congr_simp,eq_self,Eq.mpr,Andand 29 more44 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.colorCount_eq_sum_indicatorline 1051 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin, Imo2016P2.Letter,Finset,Prod,Eq, Imo2016P2.colorCount,Finset.sum,Finset.univ,ite,And,Membership.mem,Prod.fst,Prod.snd,OfNat.ofNatProof uses:
id,Eq.mpr,Finset.card,Finset.filter,congrArg,Finset.card_eq_sum_ite,of_eq_true,LE.le,Eq.trans,True,congrFun',Finset.sum_congr,Eq.refl,ite_congr,Not,eq_self25 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.vital_color_count_identityline 1059 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HMul.hMul,OfNat.ofNat, Imo2016P2.Letter,Eq,HAdd.hAdd, Imo2016P2.colorCount, Imo2016P2.vitalRowCells, Imo2016P2.vitalColCells, Imo2016P2.vitalSumCells, Imo2016P2.vitalDiffCells,Finset.univ,Prod, Imo2016P2.centerCellsProof uses:
Eq.mpr,Finset.sum,ite,And,Membership.mem,Finset,Prod.fst,Prod.snd,id,congr,congrArg, Imo2016P2.colorCount_eq_sum_indicator,Eq.symm,Finset.sum_add_distrib,Finset.mul_sum,Finset.sum_congr,rfl,dite,ite_congr,Eq.transand 18 more35 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.colorCount_eq_of_balanced_cardline 1074 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin, Imo2016P2.Letter,Finset,Prod, Imo2016P2.Balanced,Eq,Finset.card,HMul.hMul,OfNat.ofNat, Imo2016P2.colorCountProof uses:
id,Eq.mpr,Finset.filter,Prod.fst,Prod.snd,HDiv.hDiv,congrArg10 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2016P2.nine_dvd_of_modTableline 1081 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Fin, Imo2016P2.Letter, Imo2016P2.MODTable,Dvd.dvdProof uses: Imo2016P2.three_dvd_of_modTable,
Eq,HMul.hMul, Imo2016P2.Balanced, Imo2016P2.row,And, Imo2016P2.col,Finset.card,Prod, Imo2016P2.diagSum,Int, Imo2016P2.diagDiff, Imo2016P2.vitalRowCells, Imo2016P2.vitalRowCells_balanced, Imo2016P2.vitalColCells, Imo2016P2.vitalColCells_balanced, Imo2016P2.vitalSumCells, Imo2016P2.vitalSumCells_balanced, Imo2016P2.vitalDiffCells, Imo2016P2.vitalDiffCells_balanced and 53 more36 instances, coercions and auxiliary constants left out.
Tactic trace: 26 steps
Open to load the checked before-and-after goal states.
- problem
Imo2016P2.imo2016_p2line 1117 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Iff,Membership.mem,Set, Imo2016P2.solution,Exists,Fin, Imo2016P2.Letter, Imo2016P2.MODTableProof uses:
Iff.intro, Imo2016P2.exists_modTable_of_nine_dvd, Imo2016P2.nine_dvd_of_modTable7 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.