Compfiles/Imo2022P1.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
100 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 2022, Problem 1
The bank of Oslo issues two types of coin: aluminum (denoted A) and bronze (denoted B). Marianne has n aluminum coins and n bronze coins arranged in a row in some arbitrary initial order. A chain is any subsequence of consecutive coins of the same type. Given a fixed positive integer k ≤ 2n, Gilberty repeatedly performs the following operation: he identifies the longest chain containing the kth coin from the left and moves all the coins in that chain to the left end of the row. For example, if n = 4 and k = 4, the process starting from the ordering AABBBABA would be
AABBBABA → BBBAAABA → AAABBBBA → BBBBAAAA → ⋯.
Find all pairs (n,k) with 1 ≤ k ≤ 2n such that for every initial ordering, at some moment in the process, the leftmost n coins will all be of the same type.
Imports (2)
Imported by 1 file
- inductive
Imo2022P1.CoinThe two types of coins line 41 sourceSource documentation
The two types of coins.
no axioms what this means
inductive Coin : Type where …
- abbrev
Imo2022P1.RowA row of coins line 47 sourceSource documentation
A row of coins.
no axioms what this means
Statement uses:
NatProof uses:
Fin,HMul.hMul,OfNat.ofNat, Imo2022P1.Coin3 instances, coercions and auxiliary constants left out.
abbrev Row (n : ℕ) : Type := Fin (2 * n) → Coin
Mentions: Imo2022P1.Coin
- def
Imo2022P1.Row.validThe property of a row havingnof each kind of coin line 50 sourceSource documentation
The property of a row having
nof each kind of coin.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.RowProof uses:
Eq,Finset.card,Fin,HMul.hMul,OfNat.ofNat,Finset.filter, Imo2022P1.Coin,Imo2022P1.Coin.A,Finset.univ5 instances, coercions and auxiliary constants left out.
def Row.valid {n : ℕ} (c : Row n) : Prop := #{i | c i = Coin.A} = nMentions: Imo2022P1.Row
- def
Imo2022P1.Row.chainLeftThe first coin in the chain containing coink(zero-based) line 53 sourceSource documentation
The first coin in the chain containing coin
k(zero-based).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row,Fin,HMul.hMul,OfNat.ofNatProof uses:
Finset.min',Finset.filter,LE.le,Eq, Imo2022P1.Coin,Finset.Iic16 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
def Row.chainLeft {n : ℕ} (c : Row n) (k : Fin (2 * n)) : Fin (2 * n) := …Mentions: Imo2022P1.Row
- def
Imo2022P1.Row.chainRightThe last coin in the chain containing coink(zero-based) line 60 sourceSource documentation
The last coin in the chain containing coin
k(zero-based).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row,Fin,HMul.hMul,OfNat.ofNatProof uses:
Finset.max',Finset.filter,LE.le,Eq, Imo2022P1.Coin,Finset.Ici16 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
def Row.chainRight {n : ℕ} (c : Row n) (k : Fin (2 * n)) : Fin (2 * n) := …Mentions: Imo2022P1.Row
- def
Imo2022P1.Row.moveMove coinsathroughbto the left of the row line 67 sourceSource documentation
Move coins
athroughbto the left of the row.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row,Fin,HMul.hMul,OfNat.ofNatProof uses:
ite, Imo2022P1.Coin,LT.lt,Fin.mk,HMod.hMod,HAdd.hAdd14 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
def Row.move {n : ℕ} (c : Row n) (a b : Fin (2 * n)) : Row n := …Mentions: Imo2022P1.Row
- def
Imo2022P1.Row.operationThe operation moving the chain containing coink(zero-based) line 72 sourceSource documentation
The operation moving the chain containing coin
k(zero-based).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HMul.hMul,OfNat.ofNat, Imo2022P1.RowProof uses: Imo2022P1.Row.move, Imo2022P1.Row.chainLeft, Imo2022P1.Row.chainRight
6 instances, coercions and auxiliary constants left out.
def Row.operation {n : ℕ} (k : Fin (2 * n)) (c : Row n) : Row n := …Mentions: Imo2022P1.Row
- def
Imo2022P1.Row.operationOneBasedThe operation moving the chain containing coink(one-based) line 76 sourceSource documentation
The operation moving the chain containing coin
k(one-based).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.RowProof uses: Imo2022P1.Row.operation,
Fin.mk,HSub.hSub11 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
def Row.operationOneBased {n k : ℕ} (hk1 : 1 ≤ k) (hkn : k ≤ 2 * n) (c : Row n) : Row n := …Mentions: Imo2022P1.Row
- def
Imo2022P1.Row.leftmostNSameThe property of a row having leftmostncoin with the same type line 81 sourceSource documentation
The property of a row having leftmost
ncoin with the same type.no axioms what this means
Statement uses:
Nat, Imo2022P1.RowProof uses:
Fin,HMul.hMul,OfNat.ofNat,LT.lt,Eq, Imo2022P1.Coin5 instances, coercions and auxiliary constants left out.
def Row.leftmostNSame {n : ℕ} (c : Row n) := ∀ j₁ j₂ : Fin (2 * n), …Mentions: Imo2022P1.Row
- lemma
Imo2022P1.Nat.ceilDiv_two_add_floorDiv_twoline 86 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,HAdd.hAdd,CeilDiv.ceilDiv,OfNat.ofNat,FloorDiv.floorDivProof uses:
Eq.mpr,HDiv.hDiv,HSub.hSub,id,congrArg,Nat.ceilDiv_eq_add_pred_div,Nat.floorDiv_eq_div29 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.Coin.flipline 90 sourceno axioms what this means
Statement uses: Imo2022P1.Coin
Proof uses:
Imo2022P1.Coin.flip.match_1,Unit,Imo2022P1.Coin.B,Imo2022P1.Coin.A - lemma
Imo2022P1.Coin.flip_eq_iffline 94 sourceno axioms what this means
Statement uses: Imo2022P1.Coin,
Iff,Eq, Imo2022P1.Coin.flip,NeProof uses:
Imo2022P1.Coin.A,of_decide_eq_true,id,Bool,Decidable.decide,Bool.true,Eq.refl,Eq.symm,Imo2022P1.Coin.B5 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Coin.flip_eq_iff'line 97 sourcestandard axioms: propext what this means
Statement uses: Imo2022P1.Coin,
Iff,Eq, Imo2022P1.Coin.flip,NeProof uses:
Eq.mpr,id,congrArg,propext,ne_comm,Eq.symm, Imo2022P1.Coin.flip_eq_iff,eq_comm,Iff.rflTactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.isValidRowline 100 sourceno axioms what this means
Statement uses:
List, Imo2022P1.CoinProof uses:
Eq,Nat,HMul.hMul,OfNat.ofNat,List.count,Imo2022P1.Coin.A,List.length5 instances, coercions and auxiliary constants left out.
- lemma
Imo2022P1.List.count_ofFnline 104 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Nat,Fin,Eq,Finset.card,Finset.filter,Finset.univ,List.count,List.ofFnProof uses:
Nat.recAux,OfNat.ofNat,Eq.mpr,List.nil,id,congrArg,List,List.ofFn_zero,List.count_nil,Finset,EmptyCollection.emptyCollection,propext,Finset.card_eq_zero,Finset.eq_empty_of_isEmpty,HAdd.hAdd,List.cons,Fin.succ,List.ofFn_succ,ite,Booland 52 more31 instances, coercions and auxiliary constants left out.
Tactic trace: 46 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.sum_rotateline 144 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
AddCommMonoid,List,Nat,Eq,List.sum,List.rotateProof uses:
List.Perm.sum_eq,List.rotate_perm7 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.splitBy_append'line 148 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Bool,List,Exists,And,Membership.mem,Option,List.getLast?,List.head?,Eq,Bool.true,List.splitBy,HAppend.hAppend,List.dropLast,List.cons,Option.getD,List.nil,List.tailProof uses:
Ne,Mathlib.Tactic.Contrapose.contrapose₃,Eq.mpr,Not,id,congrArg,Option.none,List.getLast?_nil,Option.not_mem_none,List.head?_nil,Iff.mpr,List.splitBy_ne_nil,Option.some,List.getLast,List.getLast?_eq_some_getLast,Option.getD_some,List.head,List.head?_eq_some_head,List.flatten,List.IsChainand 55 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 127 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.valid_iff_isValidRow_ofFnline 260 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row,Iff, Imo2022P1.Row.valid, Imo2022P1.isValidRow,List.ofFn, Imo2022P1.Coin,HMul.hMul,OfNat.ofNatProof uses:
Eq.mpr,Eq,Finset.card,Fin,Finset.filter,Imo2022P1.Coin.A,Finset.univ,id,congrArg,Imo2022P1.Row.valid.eq_1,List.count,List.length,Imo2022P1.isValidRow.eq_1,List.length_ofFn,Or,propext,mul_eq_mul_left_iff,or_iff_left,Mathlib.Meta.NormNum.isNat_eq_false,Mathlib.Meta.NormNum.isNat_ofNatand 5 more17 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.List.chainLeftline 265 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.lengthProof uses:
Finset.min',Finset.filter,LE.le,Eq,List.get,Finset.Iic9 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.chainLeft_eq_chainLeft_ofFnline 271 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row,Fin,HMul.hMul,OfNat.ofNat,Eq, Imo2022P1.Row.chainLeft,Fin.cast,List.length, Imo2022P1.Coin,List.ofFn, Imo2022P1.List.chainLeftProof uses:
Eq.mpr,id,congrArg,List.length_ofFn,Eq.refl,Finset.min',Finset.filter,LE.le,Finset.Iic,Imo2022P1.Row.chainLeft.eq_1,List.get,Imo2022P1.List.chainLeft.eq_1,rfl,Monotone,StrictMono.monotone,Fin.cast_strictMono,Finset.image,Finset.Nonempty,propext,Finset.image_nonemptyand 36 more38 instances, coercions and auxiliary constants left out.
Tactic trace: 50 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.chainLeft_leline 313 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,LE.le, Imo2022P1.List.chainLeftProof uses:
Eq.mpr,Finset.min',Finset.filter,Eq,List.get,Finset.Iic,id,congrArg,Imo2022P1.List.chainLeft.eq_1,Finset.min'_le,Membership.mem,Finset,Eq.trans,And,True,congrFun',true_and,le_antisymm,Eq.refl16 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.List.chainRightline 321 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.lengthProof uses:
Finset.max',Finset.filter,LE.le,Eq,List.get,Finset.Ici9 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.chainRight_eq_chainRight_ofFnline 327 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row,Fin,HMul.hMul,OfNat.ofNat,Eq, Imo2022P1.Row.chainRight,Fin.cast,List.length, Imo2022P1.Coin,List.ofFn, Imo2022P1.List.chainRightProof uses:
Eq.mpr,id,congrArg,List.length_ofFn,Eq.refl,Finset.max',Finset.filter,LE.le,Finset.Ici,Imo2022P1.Row.chainRight.eq_1,List.get,Imo2022P1.List.chainRight.eq_1,rfl,Monotone,StrictMono.monotone,Fin.cast_strictMono,Finset.image,Finset.Nonempty,propext,Finset.image_nonemptyand 36 more38 instances, coercions and auxiliary constants left out.
Tactic trace: 50 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.le_chainRightline 369 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,LE.le, Imo2022P1.List.chainRightProof uses:
Eq.mpr,Finset.max',Finset.filter,Eq,List.get,Finset.Ici,id,congrArg,Imo2022P1.List.chainRight.eq_1,Finset.le_max',Membership.mem,Finset,Eq.trans,And,True,congrFun',true_and,le_antisymm,Eq.refl16 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.chainLeft_le_chainRightline 377 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,LE.le, Imo2022P1.List.chainLeft, Imo2022P1.List.chainRightProof uses:
le_trans, Imo2022P1.List.chainLeft_le, Imo2022P1.List.le_chainRight3 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.List.moveline 381 sourceno axioms what this means
Statement uses:
Nat,ListProof uses:
HAppend.hAppend,List.take,HSub.hSub,HAdd.hAdd,OfNat.ofNat,List.drop7 instances, coercions and auxiliary constants left out.
- lemma
Imo2022P1.List.length_moveline 384 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,List,Eq,List.length, Imo2022P1.List.moveProof uses:
Eq.mpr,HAppend.hAppend,List.take,HSub.hSub,HAdd.hAdd,OfNat.ofNat,List.drop,id,congrArg,Imo2022P1.List.move.eq_1,List.length_append,Eq.symm,List.take_append_drop,List.drop_drop,Nat.add_sub_cancel'11 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.count_moveline 397 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Nat,LE.le,List,Eq,List.count, Imo2022P1.List.moveProof uses:
Eq.mpr,HAppend.hAppend,List.take,HSub.hSub,HAdd.hAdd,OfNat.ofNat,List.drop,id,congrArg,Imo2022P1.List.move.eq_1,List.count_append,Eq.symm,List.take_append_drop,List.drop_drop,Nat.add_sub_cancel'13 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.ofFn_move_eq_move_ofFnline 410 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row,Fin,HMul.hMul,OfNat.ofNat,LE.le,Eq,List, Imo2022P1.Coin,List.ofFn, Imo2022P1.Row.move, Imo2022P1.List.moveProof uses:
Eq.mpr,List.length,List.get,id,congrArg,Eq.symm,List.ofFn_get, Imo2022P1.List.length_move,List.length_ofFn,Eq.refl,Fin.cast,List.ofFn_congr,propext,List.ofFn_inj,funext,LT.lt,Fin.is_lt,ite,Fin.mk,HMod.hModand 33 more43 instances, coercions and auxiliary constants left out.
Tactic trace: 61 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.List.operationline 461 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.lengthProof uses: Imo2022P1.List.move, Imo2022P1.List.chainLeft, Imo2022P1.List.chainRight
1 instances, coercions and auxiliary constants left out.
- lemma
Imo2022P1.Row.ofFn_operation_eq_operation_ofFnline 464 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HMul.hMul,OfNat.ofNat, Imo2022P1.Row,Eq,List, Imo2022P1.Coin,List.ofFn, Imo2022P1.Row.operation, Imo2022P1.List.operation,Fin.cast,List.lengthProof uses:
LE.le, Imo2022P1.Row.chainLeft, Imo2022P1.Row.chainRight,Eq.mpr, Imo2022P1.List.chainLeft,id,congrArg, Imo2022P1.Row.chainLeft_eq_chainLeft_ofFn, Imo2022P1.List.chainRight, Imo2022P1.Row.chainRight_eq_chainRight_ofFn,propext,Fin.cast_le_cast, Imo2022P1.List.chainLeft_le_chainRight, Imo2022P1.List.move,Imo2022P1.List.operation.eq_1, Imo2022P1.Row.move,Imo2022P1.Row.operation.eq_1, Imo2022P1.Row.ofFn_move_eq_move_ofFn,Eq.refl13 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.List.operationOneBasedline 474 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Nat,LE.le,OfNat.ofNat,List.lengthProof uses: Imo2022P1.List.operation,
Fin.mk,HSub.hSub7 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.ofFn_operationOneBased_eq_operationOneBased_ofFnline 478 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.Row,Eq,List, Imo2022P1.Coin,List.ofFn, Imo2022P1.Row.operationOneBased, Imo2022P1.List.operationOneBasedProof uses:
Eq.mpr, Imo2022P1.List.operation,Fin.mk,List.length,HSub.hSub,id,congrArg,Imo2022P1.List.operationOneBased.eq_1, Imo2022P1.Row.operation,Imo2022P1.Row.operationOneBased.eq_1,Fin.cast, Imo2022P1.Row.ofFn_operation_eq_operation_ofFn,Eq.refl17 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.operationOneBased_validline 486 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row, Imo2022P1.Row.valid,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.Row.operationOneBasedProof uses:
Eq.mpr, Imo2022P1.isValidRow,List.ofFn, Imo2022P1.Coin,id,Eq,congrArg,propext, Imo2022P1.Row.valid_iff_isValidRow_ofFn, Imo2022P1.List.operationOneBased,List, Imo2022P1.Row.ofFn_operationOneBased_eq_operationOneBased_ofFn, Imo2022P1.List.operation,Fin.mk,List.length,HSub.hSub,Imo2022P1.List.operationOneBased.eq_1, Imo2022P1.List.move, Imo2022P1.List.chainLeft, Imo2022P1.List.chainRight and 8 more15 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.operationOneBased_iterate_validline 494 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row, Imo2022P1.Row.valid,LE.le,OfNat.ofNat,HMul.hMul,Nat.iterate, Imo2022P1.Row.operationOneBasedProof uses:
Function.Iterate.rec, Imo2022P1.Row.operationOneBased_valid8 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.leftmostNSame_iff_of_validline 500 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row, Imo2022P1.Row.valid,Iff, Imo2022P1.Row.leftmostNSame,Exists, Imo2022P1.Coin,Fin,HMul.hMul,OfNat.ofNat,Eq,LT.ltProof uses:
Eq.mpr,id,congrArg,Imo2022P1.Row.leftmostNSame.eq_1,Iff.intro,dite,Ne,NeZero,NeZero.mk,ne_of_gt,mul_pos,Mathlib.Meta.Positivity.pos_of_isNat,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Nat.ble,lt_of_le_of_ne',zero_le,Exists.intro,HAdd.hAddand 46 more59 instances, coercions and auxiliary constants left out.
Tactic trace: 52 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.List.segmentsline 544 sourceno axioms what this means
Statement uses:
DecidableEq,ListProof uses:
List.splitBy,BEq.beq1 instances, coercions and auxiliary constants left out.
- lemma
Imo2022P1.List.exists_replicate_of_isChain_beqline 547 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,List.IsChain,Eq,Bool,BEq.beq,Bool.true,Ne,List.nil,Exists,Nat,List.replicateProof uses:
List.rec,Mathlib.Tactic.Contrapose.contrapose₂,Eq.mpr,Not,id,implies_congr,binderNameHint,Eq.trans,forall_congr,Eq.refl,List.cons,dite,congrArg,Exists.intro,OfNat.ofNat,List.replicate_one,And.right,Membership.mem,Option,List.head?and 17 more11 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.segments_getElem?_map_eqline 574 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List, Imo2022P1.Coin,Nat,LT.lt,List.length, Imo2022P1.List.segments,Eq,Option,Option.bind,GetElem?.getElem?,List.head?,Option.map,ite,Even, Imo2022P1.Coin.flipProof uses:
dite,List.nil,Eq.mpr,id,congrArg,List.splitBy,BEq.beq,Imo2022P1.List.segments.eq_1,List.splitBy_nil,Option.none,List.getElem?_nil,List.head?_nil,Option.map_none,Option.bind_none,Eq.refl,Not,Option.some,List.head,List.head?_eq_some_head,Option.map_someand 49 more30 instances, coercions and auxiliary constants left out.
Tactic trace: 61 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.List.blocksline 631 sourceno axioms what this means
Statement uses:
DecidableEq,List,NatProof uses:
List.map,List.length, Imo2022P1.List.segments - lemma
Imo2022P1.List.isChain_beq_replicateline 634 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Nat,List.IsChain,Eq,Bool,BEq.beq,Bool.true,List.replicateProof uses:
List.isChain_replicate_of_rel,beq_self_eq_true5 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.sum_blocksline 639 sourcestandard axioms: propext what this means
Statement uses:
DecidableEq,List,Eq,Nat,List.sum, Imo2022P1.List.blocks,List.lengthProof uses:
Eq.mpr,List.map, Imo2022P1.List.segments,id,congrArg,Imo2022P1.List.blocks.eq_1,List.splitBy,BEq.beq,Imo2022P1.List.segments.eq_1,List.flatten,Eq.symm,List.length_flatten,List.flatten_splitBy,Eq.refl9 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.zero_lt_of_mem_blocksline 643 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Nat,Membership.mem, Imo2022P1.List.blocks,LT.lt,OfNat.ofNatProof uses:
And, Imo2022P1.List.segments,Eq,List.length,Exists,Eq.mp,List.map,congrArg,propext,List.mem_map,Imo2022P1.List.blocks.eq_1,Mathlib.Tactic.Contrapose.contrapose₂,List.nil,Eq.mpr,Not,LE.le,id,implies_congr,Eq.refl,List.length_eq_zero_iffand 3 more16 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.blocks_semi_inj_helperline 653 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List, Imo2022P1.Coin,Eq,Nat,List.map,List.length,Option,Option.bind,List.head?,Not,Membership.mem,List.nil,List.IsChain,Bool,BEq.beq,Bool.true,Exists,Ne,List.getLast,List.headand 1 moreProof uses:
List.rec,Eq.mpr,id,congrArg,Eq.mp,propext,List.map_eq_nil_iff,Eq.symm,List.map_nil,Eq.refl,List.cons,Mathlib.Tactic.Contrapose.contrapose₁,False,True,implies_congr,not_false_eq_true,List.cons_ne_nil,List.exists_cons_of_ne_nil,List.replicate, Imo2022P1.List.exists_replicate_of_isChain_beq and 42 more17 instances, coercions and auxiliary constants left out.
Tactic trace: 73 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.head?_flatten_of_nil_not_memline 730 sourcestandard axioms: propext what this means
Statement uses:
List,Not,Membership.mem,List.nil,Eq,Option,List.head?,List.flatten,Option.bindProof uses:
dite,Eq.mpr,id,congrArg,List.flatten_nil,Option.none,List.head?_nil,Option.bind_none,Eq.refl,Exists,List.cons,List.exists_cons_of_ne_nil,HAppend.hAppend,List.flatten_cons,Option.some,List.head?_cons,Option.bind_some,Option.or,List.head?_append,Option.or_eq_left_of_isSomeand 9 more6 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.blocks_semi_injline 742 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List, Imo2022P1.Coin,Eq,Nat, Imo2022P1.List.blocks,Option,List.head?Proof uses:
List.splitBy,BEq.beq,rfl,List.flatten,And,Not,Membership.mem,List.nil,List.IsChain,Bool,Bool.true,Exists,Ne,List.getLast,List.head,Bool.false,Eq.mp,congrArg,propext,List.splitBy_eq_iffand 12 more5 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.Row.blocksline 754 sourceno axioms what this means
Statement uses:
Nat, Imo2022P1.Row,ListProof uses: Imo2022P1.List.blocks, Imo2022P1.Coin,
List.ofFn,HMul.hMul,OfNat.ofNat4 instances, coercions and auxiliary constants left out.
- lemma
Imo2022P1.Row.sum_blocksline 756 sourcestandard axioms: propext what this means
Statement uses:
Nat, Imo2022P1.Row,Eq,List.sum, Imo2022P1.Row.blocks,HMul.hMul,OfNat.ofNatProof uses:
Eq.mpr, Imo2022P1.List.blocks, Imo2022P1.Coin,List.ofFn,id,congrArg,List,Imo2022P1.Row.blocks.eq_1,List.length, Imo2022P1.List.sum_blocks,List.length_ofFn,Eq.refl13 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.listOfBlocksline 760 sourceno axioms what this means
Statement uses:
List,Nat, Imo2022P1.Coin2 instances, coercions and auxiliary constants left out.
- lemma
Imo2022P1.List.head?_listOfBlocksline 765 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Nat, Imo2022P1.Coin,Ne,List.nil,LT.lt,OfNat.ofNat,List.head,Eq,Option,List.head?, Imo2022P1.listOfBlocks,Option.someProof uses:
Exists,List.cons,Eq.mp,congrArg,propext,List.ne_nil_iff_exists_cons,List.replicate,Eq.mpr,id,Iff.ne,List.replicate_eq_nil_iff,List.head.congr_simp,HAppend.hAppend, Imo2022P1.Coin.flip,Imo2022P1.listOfBlocks.eq_2,List.head?_append_of_ne_nil,ite,Option.none,List.head?_replicate,ite_eq_rightand 1 more9 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_listOfBlockline 776 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Nat, Imo2022P1.Coin,Membership.mem,LT.lt,OfNat.ofNat,Eq, Imo2022P1.List.blocks, Imo2022P1.listOfBlocksProof uses:
List.rec,List.nil,Eq.mpr,id,congrArg,Imo2022P1.listOfBlocks.eq_1,List.map,List.length, Imo2022P1.List.segments,Imo2022P1.List.blocks.eq_1,List.splitBy,BEq.beq,Imo2022P1.List.segments.eq_1,List.splitBy_nil,List.map_nil,Eq.refl,List.cons,List.mem_cons_self,List.mem_cons_of_mem, Imo2022P1.Coin.flip and 39 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 39 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.listOfBlocks_blocksline 816 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List, Imo2022P1.Coin,Exists,Eq, Imo2022P1.listOfBlocks, Imo2022P1.List.blocksProof uses:
dite,List.nil,Exists.intro,Imo2022P1.Coin.A,Eq.mpr,id,congrArg,List.map,Nat,List.length, Imo2022P1.List.segments,Imo2022P1.List.blocks.eq_1,List.splitBy,BEq.beq,Imo2022P1.List.segments.eq_1,List.splitBy_nil,List.map_nil,Imo2022P1.listOfBlocks.eq_1,Eq.refl,Notand 24 more9 instances, coercions and auxiliary constants left out.
Tactic trace: 20 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.listOfBlocks_lengthline 837 sourcestandard axioms: propext what this means
Statement uses:
List,Nat, Imo2022P1.Coin,Eq,List.length, Imo2022P1.listOfBlocks,List.sumProof uses:
List.rec,Eq.mpr,List.nil,id,congrArg,Imo2022P1.listOfBlocks.eq_1,OfNat.ofNat,List.length_nil,List.sum_nil,Eq.refl,List.cons,HAppend.hAppend,List.replicate, Imo2022P1.Coin.flip,Imo2022P1.listOfBlocks.eq_2,HAdd.hAdd,List.length_append,List.sum_cons,List.length_replicate11 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.Row.ofBlocksline 844 sourcestandard axioms: propext what this means
Statement uses:
Nat,List, Imo2022P1.Coin,Eq,List.sum,HMul.hMul,OfNat.ofNat, Imo2022P1.RowProof uses:
List.length, Imo2022P1.listOfBlocks,Fin,List.get,Fin.cast13 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.blocks_ofBlocksline 850 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,List, Imo2022P1.Coin,Eq,List.sum,HMul.hMul,OfNat.ofNat,Membership.mem,LT.lt, Imo2022P1.Row.blocks, Imo2022P1.Row.ofBlocksProof uses:
Eq.mpr, Imo2022P1.List.blocks, Imo2022P1.listOfBlocks,id,congrArg,Eq.symm, Imo2022P1.List.blocks_listOfBlock,List.ofFn,List.length,List.get,List.ofFn_get,Fin,Fin.cast, Imo2022P1.Row,Imo2022P1.Row.ofBlocks.eq_1,Imo2022P1.Row.blocks.eq_1,DecidableEq,Eq.rec,Eq.refl,Subsingleton.elimand 3 more21 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.ofBlocks_blocksline 858 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Imo2022P1.Row,Exists, Imo2022P1.Coin,Eq, Imo2022P1.Row.ofBlocks, Imo2022P1.Row.blocks, Imo2022P1.Row.sum_blocksProof uses:
List, Imo2022P1.listOfBlocks, Imo2022P1.List.blocks,List.ofFn,HMul.hMul,OfNat.ofNat, Imo2022P1.List.listOfBlocks_blocks,Exists.intro,Eq.mpr,Fin,Fin.mk,List.length,Fin.cast,LT.lt,Fin.isLt,Eq.refl,id,congrFun',congrArg,funextand 5 more11 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.ofFn_ofBlocksline 866 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
Nat,List, Imo2022P1.Coin,Eq,List.sum,HMul.hMul,OfNat.ofNat,List.ofFn, Imo2022P1.Row.ofBlocks, Imo2022P1.listOfBlocksProof uses:
List.length,Eq.mpr,id,congrArg, Imo2022P1.listOfBlocks_length,Eq.symm,List.get,Fin,Fin.cast,List.ofFn_congr,Eq.rec,Eq.refl,List.ofFn_get12 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.List.alternateSumline 876 sourceno axioms what this means
Statement uses:
Add,Zero,List,Bool2 instances, coercions and auxiliary constants left out.
- lemma
Imo2022P1.List.alternateSum_pos_of_natline 881 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Nat,Bool,Membership.mem,LT.lt,OfNat.ofNat,LE.le,List.length, Imo2022P1.List.alternateSumProof uses:
Exists,Eq,List.cons,List.exists_cons_of_length_pos,Eq.mpr,id,congrArg,Eq.mp,HAdd.hAdd,List.length_cons,ite,Bool.true,Bool.not,Imo2022P1.List.alternateSum.eq_2,Bool.false,Or,Eq.trans,congr,ite_eq_right_of_eq_false,Bool.false_eq_trueand 12 more33 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.lt_alternateSum_of_nat_memline 894 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Nat,Membership.mem,LT.lt,OfNat.ofNat,LE.le,List.length,Max.max, Imo2022P1.List.alternateSum,Bool.true,Bool.falseProof uses:
List.rec,List.nil,Mathlib.Tactic.Contrapose.contrapose₁,Eq.mpr,Not,id,Eq,implies_congr,Eq.refl,List.not_mem_nil,List.cons,dite,Exists,Eq.mp,congrArg,propext,List.length_eq_four,And.right,And,List.cons_eq_consand 31 more40 instances, coercions and auxiliary constants left out.
Tactic trace: 47 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.sum_eq_alternateSum_add_alternateSumline 931 sourcestandard axioms: propext what this means
Statement uses:
AddCommMonoid,List,Bool,Eq,List.sum,HAdd.hAdd, Imo2022P1.List.alternateSum,Bool.notProof uses:
List.rec,Eq.mpr,List.nil,OfNat.ofNat,id,congrArg,Imo2022P1.List.alternateSum.eq_1,List.sum_nil,List.cons,ite,Bool.true,Imo2022P1.List.alternateSum.eq_2,List.sum_cons,dite,ite_eq_left,of_decide_eq_true,Decidable.decide,Eq.refl,ite_eq_right,Notand 6 more22 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.count_ListOfBlocks_eq_alternateSumline 945 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Nat, Imo2022P1.Coin,Eq,List.count,Imo2022P1.Coin.A, Imo2022P1.listOfBlocks, Imo2022P1.List.alternateSum,Decidable.decideProof uses:
List.rec,Eq.mpr,List.nil,OfNat.ofNat,id,congrArg,Imo2022P1.List.alternateSum.eq_1,Imo2022P1.listOfBlocks.eq_1,List.count_nil,Eq.refl,List.cons,HAdd.hAdd,ite,Bool,Bool.true,Bool.not,Imo2022P1.List.alternateSum.eq_2,HAppend.hAppend,List.replicate, Imo2022P1.Coin.flip and 13 more38 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.ofBlocks_valid_iff_alternateSum_eqline 954 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,List, Imo2022P1.Coin,Eq,List.sum,HMul.hMul,OfNat.ofNat,Bool,Iff, Imo2022P1.Row.valid, Imo2022P1.Row.ofBlocks, Imo2022P1.List.alternateSumProof uses:
Eq.mpr, Imo2022P1.isValidRow,List.ofFn,id,congrArg,propext, Imo2022P1.Row.valid_iff_isValidRow_ofFn, Imo2022P1.listOfBlocks, Imo2022P1.ofFn_ofBlocks,List.count,Imo2022P1.Coin.A,List.length,Imo2022P1.isValidRow.eq_1, Imo2022P1.listOfBlocks_length,Or,mul_eq_mul_left_iff,or_iff_left,Mathlib.Meta.NormNum.isNat_eq_false,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refland 17 more60 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.blocks_eq_iffline 967 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero, Imo2022P1.Row,Iff,Eq,List, Imo2022P1.Row.blocks,List.cons,List.nil,Exists, Imo2022P1.Coin,Fin,HMul.hMul,OfNat.ofNat,LT.ltProof uses:
Iff.intro, Imo2022P1.Row.ofBlocks, Imo2022P1.Row.sum_blocks, Imo2022P1.Row.ofBlocks_blocks,Exists.intro,Eq.mpr,List.get, Imo2022P1.listOfBlocks,Fin.cast,List.length,id,congrArg,Eq.symm,Eq.mp,Imo2022P1.Row.ofBlocks.eq_1,LE.le, Imo2022P1.Coin.flip,congrFun',Eq.trans,Notand 72 more63 instances, coercions and auxiliary constants left out.
Tactic trace: 59 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.leftmostNSame_iff_length_blocks_ofFn_of_validline 1012 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero, Imo2022P1.Row, Imo2022P1.Row.valid,Iff, Imo2022P1.Row.leftmostNSame,Eq,List.length, Imo2022P1.Row.blocks,OfNat.ofNatProof uses:
Eq.mpr,Exists, Imo2022P1.Coin,Fin,HMul.hMul,LT.lt,id,congrArg,propext, Imo2022P1.Row.leftmostNSame_iff_of_valid,List,List.cons,List.nil,Eq.symm, Imo2022P1.Row.blocks_eq_iff,Iff.intro,HAdd.hAdd,List.length_cons,List.length_singleton,Eq.refland 28 more17 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_takeline 1030 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Nat,Eq, Imo2022P1.List.blocks,List.take,List.sumProof uses:
Eq.mpr,List.map,List.length, Imo2022P1.List.segments,id,congrArg,Imo2022P1.List.blocks.eq_1,List.splitBy,BEq.beq,Imo2022P1.List.segments.eq_1,Eq.symm,List.map_take,Eq.rec,Eq.refl,And,List.flatten,Not,Membership.mem,List.nil,List.IsChainand 22 more12 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_dropline 1047 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Nat,Eq, Imo2022P1.List.blocks,List.drop,List.sum,List.takeProof uses:
Eq.mpr,List.map,List.length, Imo2022P1.List.segments,id,congrArg,Imo2022P1.List.blocks.eq_1,List.splitBy,BEq.beq,Imo2022P1.List.segments.eq_1,Eq.symm,List.map_drop,Eq.rec,Eq.refl,And,List.flatten,Not,Membership.mem,List.nil,List.IsChainand 22 more12 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_drop_takeline 1064 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Nat,Eq, Imo2022P1.List.blocks,List.take,List.sum,List.dropProof uses:
Eq.mpr,id,congrArg,Eq.symm, Imo2022P1.List.blocks_drop, Imo2022P1.List.blocks_take,Eq.rec,Eq.refl,Subsingleton.elim,Decidable,Add,Zero9 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_appendline 1070 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Membership.mem,Option,List.getLast?,List.head?,Eq,Bool,BEq.beq,Bool.false,Nat, Imo2022P1.List.blocks,HAppend.hAppendProof uses:
of_eq_true,List.map,List.length,List.splitBy,Eq.trans,True,congrFun',congrArg, Imo2022P1.List.segments,List.splitBy_append,List.map_append,eq_self8 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.length_blocks_append_lt_ofline 1074 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Exists,And,Membership.mem,Option,List.getLast?,List.head?,Eq,Bool,BEq.beq,Bool.true,LT.lt,Nat,List.length, Imo2022P1.List.blocks,HAppend.hAppend,HAdd.hAddProof uses:
Eq.mpr,HSub.hSub,List.splitBy,OfNat.ofNat,id,congr,congrArg,Eq.trans,List.dropLast,List.cons,Option.getD,List.nil,List.tail,List.map, Imo2022P1.List.segments, Imo2022P1.List.splitBy_append',List.length_map,List.length_append,congrFun',List.length_dropLastand 14 more20 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.length_blocks_append_leline 1093 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,LE.le,Nat,List.length, Imo2022P1.List.blocks,HAppend.hAppend,HAdd.hAddProof uses:
dite,Exists,And,Membership.mem,Option,List.getLast?,List.head?,Eq,Bool,BEq.beq,Bool.true,le_of_lt, Imo2022P1.List.length_blocks_append_lt_of,Not,Bool.false,Bool.eq_false_of_ne_true,Eq.mp,Ne,Eq.trans,binderNameHintand 10 more16 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.indexInBlockline 1101 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,NatProof uses:
Finset.max',Finset.filter,LE.le,List.sum,List.take,Finset.Iic,List.length11 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.indexInBlock_eq_length_sub_one_ofline 1104 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Nat,Ne,List.nil,LE.le,List.sum,HAdd.hAdd,List.getLast,LT.lt,Eq, Imo2022P1.indexInBlock,HSub.hSub,List.length,OfNat.ofNatProof uses:
Eq.mpr,Finset.max',Finset.filter,List.take,Finset.Iic,id,congrArg,Imo2022P1.indexInBlock.eq_1,And,Membership.mem,Finset,propext,Finset.max'_eq_iff,congr,Eq.trans,True,congrFun',true_and,forall_congr,implies_congrand 15 more63 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
- def
Imo2022P1.List.blockIndexline 1121 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,NatProof uses: Imo2022P1.indexInBlock, Imo2022P1.List.blocks
1 instances, coercions and auxiliary constants left out.
- lemma
Imo2022P1.List.blockIndex_ltline 1124 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,LT.lt,Nat, Imo2022P1.List.blockIndex, Imo2022P1.List.blocksProof uses:
Eq.mpr, Imo2022P1.indexInBlock,id,Eq,congrArg,Imo2022P1.List.blockIndex.eq_1,Finset.max',Finset.filter,LE.le,List.sum,List.take,Finset.Iic,Imo2022P1.indexInBlock.eq_1,Membership.mem,Finset,propext,Finset.max'_lt_iff,lt_of_le_of_ne,And.left,Eq.mpand 13 more29 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.sum_take_blockIndex_blocks_leline 1135 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,LE.le,Nat,List.sum,List.take, Imo2022P1.List.blockIndex, Imo2022P1.List.blocksProof uses:
Eq.mpr,id,Eq,congrArg,rfl,And.right,And.left,And,Eq.mp,Membership.mem,Finset,Finset.filter,Finset.Iic,congr,Eq.trans,congrFun',forall_congr,implies_congr,Eq.refl,Finset.max'and 6 more28 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.lt_sum_take_succ_blockIndex_blocksline 1144 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,LT.lt,Nat,List.sum,List.take,HAdd.hAdd, Imo2022P1.List.blockIndex,OfNat.ofNat, Imo2022P1.List.blocksProof uses:
Eq.mpr,id,Eq,congrArg,rfl,Mathlib.Tactic.Contrapose.contrapose₁,And,LE.le,Not,Exists,implies_congr,Eq.trans,Mathlib.Tactic.Push.not_and_eq,Eq.refl,Mathlib.Tactic.Push.not_forall_eq,funext,Exists.intro,And.intro,Nat.succ,propextand 16 more39 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.some_get_eq_head?_get?_segments_blockIndexline 1161 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,Eq,Option,Option.some,List.get,Option.bind,GetElem?.getElem?,Nat,LT.lt, Imo2022P1.List.segments, Imo2022P1.List.blockIndex,List.head?Proof uses: Imo2022P1.List.blocks, Imo2022P1.List.blockIndex_lt,
Fin.mk,Eq.mp,List.map,congrArg,List.length_map,Imo2022P1.List.blocks.eq_1,Eq.mpr,Option.get,id,List.get_eq_getElem?,Option.some_get,Fin.getElem?_fin,Fin.val_mk,Eq.refl,Eq.symm,Option.bind_some,HAppend.hAppend,List.flattenand 68 more48 instances, coercions and auxiliary constants left out.
Tactic trace: 62 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.some_get_eq_head?_bind_get?_segments_blockIndexline 1223 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List, Imo2022P1.Coin,Fin,List.length,Eq,Option,Option.some,List.get,Option.map,ite,Even,Nat, Imo2022P1.List.blockIndex, Imo2022P1.Coin.flip,List.head?Proof uses:
Eq.mpr,Option.bind,GetElem?.getElem?,LT.lt, Imo2022P1.List.segments,id,congrArg, Imo2022P1.List.some_get_eq_head?_get?_segments_blockIndex, Imo2022P1.List.blocks, Imo2022P1.List.blockIndex_lt, Imo2022P1.segments_getElem?_map_eq,Eq.mp,List.map,List.length_map,Imo2022P1.List.blocks.eq_1,Eq.refl8 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.head?_get?_segments_blockIndex_ne_ofline 1230 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Nat,Eq,HAdd.hAdd,OfNat.ofNat,LT.lt,List.length, Imo2022P1.List.segments,Ne,Option,Option.bind,GetElem?.getElem?,List.head?Proof uses:
Option.some,List.get,Fin.mk,Eq.mpr,Option.get,Fin,id,congrArg,List.get_eq_getElem?,Option.some_get,Fin.getElem?_fin,Fin.val_mk,Eq.refl,Eq.symm,Option.bind_some,Exists,List.replicate, Imo2022P1.List.exists_replicate_of_isChain_beq,List.splitBy,BEq.beqand 35 more23 instances, coercions and auxiliary constants left out.
Tactic trace: 52 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.chainLeft_eqline 1280 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,Eq,Nat, Imo2022P1.List.chainLeft,List.sum,List.take, Imo2022P1.List.blockIndex, Imo2022P1.List.blocksProof uses:
Eq.mpr,Finset.min',Finset.filter,LE.le,List.get,Finset.Iic,id,congrArg,Imo2022P1.List.chainLeft.eq_1, Imo2022P1.List.sum_take_blockIndex_blocks_le,LT.lt,Fin.mk,Eq.symm,Fin.val_mk,propext,Fin.val_inj,And,Membership.mem,Finset,Finset.min'_eq_iffand 72 more75 instances, coercions and auxiliary constants left out.
Tactic trace: 97 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.chainRight_succ_eqline 1356 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,Eq,Nat,HAdd.hAdd, Imo2022P1.List.chainRight,OfNat.ofNat,List.sum,List.take, Imo2022P1.List.blockIndex, Imo2022P1.List.blocksProof uses:
Eq.symm,LT.lt, Imo2022P1.List.lt_sum_take_succ_blockIndex_blocks,Nat.eq_add_of_sub_eq,Nat.succ,HSub.hSub,Eq.mpr,Finset.max',Finset.filter,LE.le,List.get,Finset.Ici,id,congrArg,Imo2022P1.List.chainRight.eq_1, Imo2022P1.List.sum_blocks,List.drop,List.sum_take_add_sum_drop,Nat.le_add_right,Fin.mkand 68 more85 instances, coercions and auxiliary constants left out.
Tactic trace: 95 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_operation_left_segmentline 1434 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,Eq,Nat, Imo2022P1.List.blocks,List.take, Imo2022P1.List.chainLeft, Imo2022P1.List.blockIndexProof uses:
Eq.mpr,List.sum,id,congrArg,Eq.symm, Imo2022P1.List.blocks_take,Eq.rec,Eq.refl,Subsingleton.elim,Decidable, Imo2022P1.List.chainLeft_eq8 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_operation_right_segmentline 1440 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,Eq,Nat, Imo2022P1.List.blocks,List.drop,HAdd.hAdd, Imo2022P1.List.chainRight,OfNat.ofNat, Imo2022P1.List.blockIndexProof uses:
Eq.mpr,List.sum,List.take,id,congrArg,Eq.symm, Imo2022P1.List.blocks_drop,Eq.rec,Eq.refl,Subsingleton.elim,Decidable, Imo2022P1.List.chainRight_succ_eq13 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_operation_middle_segmentline 1446 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,Eq,Nat, Imo2022P1.List.blocks,List.take,HSub.hSub,HAdd.hAdd, Imo2022P1.List.chainRight,OfNat.ofNat, Imo2022P1.List.chainLeft,List.drop, Imo2022P1.List.blockIndexProof uses:
Eq.mpr,List.sum,id,congrArg,Eq.symm, Imo2022P1.List.blocks_drop_take,Eq.rec,Eq.refl,Subsingleton.elim,Decidable, Imo2022P1.List.chainLeft_eq, Imo2022P1.List.chainRight_succ_eq,Nat.sub_eq_of_eq_add',List.sum_take_add_sum_drop,HAdd,Min.min,List.take_take,Add,Zero,Nat.min_add_right_selfand 2 more23 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_operation_left_head?line 1460 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Fin,List.length,Ne,Nat, Imo2022P1.List.chainLeft,OfNat.ofNat,Eq,Option,List.head?,List.takeProof uses:
Eq.mpr,ite,Option.none,id,congrArg,List.head?_take,ite_eq_right,Eq.refl5 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_operation_left_getLast?line 1464 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List, Imo2022P1.Coin,Fin,List.length,Ne,Nat, Imo2022P1.List.chainLeft,OfNat.ofNat,Eq,Option,List.getLast?,List.take,Option.map,ite,Even, Imo2022P1.List.blockIndex, Imo2022P1.Coin.flip,List.head?Proof uses:
Eq.mpr,Option.none,Option.or,GetElem?.getElem?,LT.lt,HSub.hSub,id,congrArg,List.getLast?_take,ite_eq_right,Option.some,List.get,Fin.mk,Option.get,List.get_eq_getElem?,Option.some_get,Fin.getElem?_fin,Fin.val_mk,Eq.refl,Eq.symmand 80 more72 instances, coercions and auxiliary constants left out.
Tactic trace: 61 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_operation_right_head?line 1517 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List, Imo2022P1.Coin,Fin,List.length,Ne,Nat, Imo2022P1.List.chainRight,HSub.hSub,OfNat.ofNat,Eq,Option,List.head?,List.drop,HAdd.hAdd,Option.map,ite,Even, Imo2022P1.List.blockIndex, Imo2022P1.Coin.flipProof uses:
Eq.mpr,GetElem?.getElem?,LT.lt,id,congrArg,List.head?_drop,Option.some,List.get,Fin.mk,Option.get,List.get_eq_getElem?,Option.some_get,Fin.getElem?_fin,Fin.val_mk,Eq.refl,Eq.symm, Imo2022P1.some_get_eq_head?_bind_get?_segments_blockIndex,Eq.rec,funext,Notand 48 more66 instances, coercions and auxiliary constants left out.
Tactic trace: 35 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.List.blocks_operation_middle_getLast?line 1550 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List, Imo2022P1.Coin,Fin,List.length,Eq,Option,List.getLast?,List.take,HSub.hSub,Nat,HAdd.hAdd, Imo2022P1.List.chainRight,OfNat.ofNat, Imo2022P1.List.chainLeft,List.drop,Option.map,ite,Even, Imo2022P1.List.blockIndex, Imo2022P1.Coin.flip and 1 moreProof uses:
LE.le, Imo2022P1.List.chainLeft_le_chainRight,Not,Eq.mpr,Option.none,Option.or,GetElem?.getElem?,LT.lt,id,congrArg,List.getLast?_take,ite_eq_right,List.getElem?_drop,Nat.sub_right_comm,Nat.add_sub_cancel,Eq.symm,Nat.add_sub_assoc,Nat.add_sub_cancel_left,Fin.getElem?_fin,Option.someand 65 more74 instances, coercions and auxiliary constants left out.
Tactic trace: 45 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.blocks_operationOneBased_eq_blocks_ofline 1591 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.Row,List,Eq, Imo2022P1.Row.blocks, Imo2022P1.indexInBlock,HSub.hSub, Imo2022P1.Row.operationOneBasedProof uses:
Eq.mpr, Imo2022P1.List.blocks, Imo2022P1.Coin,List.ofFn,id,congrArg,Imo2022P1.Row.blocks.eq_1, Imo2022P1.List.operationOneBased, Imo2022P1.Row.ofFn_operationOneBased_eq_operationOneBased_ofFn, Imo2022P1.List.operation,Fin.mk,List.length,Imo2022P1.List.operationOneBased.eq_1, Imo2022P1.List.move, Imo2022P1.List.chainLeft, Imo2022P1.List.chainRight,Imo2022P1.List.operation.eq_1,HAppend.hAppend,List.take,HAdd.hAddand 33 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.blocks_operationOneBased_iterate_eq_blocks_ofline 1613 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.Row,List,Eq, Imo2022P1.Row.blocks, Imo2022P1.indexInBlock,HSub.hSub,Nat.iterate, Imo2022P1.Row.operationOneBasedProof uses:
Nat.recAux,Eq.mpr,id,congrArg,Function.iterate_zero,id.eq_1,HAdd.hAdd,Nat.succ,Function.iterate_succ_apply', Imo2022P1.Row.blocks_operationOneBased_eq_blocks_of14 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.blocks_operationOneBased_eq_rotate_one_blocks_ofline 1623 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.Row,List,Even,List.length,Eq, Imo2022P1.Row.blocks, Imo2022P1.indexInBlock,HSub.hSub, Imo2022P1.Row.operationOneBased,List.reverse,List.rotateProof uses:
Eq.mpr, Imo2022P1.List.blocks, Imo2022P1.Coin,List.ofFn,id,congrArg,Imo2022P1.Row.blocks.eq_1, Imo2022P1.List.operationOneBased, Imo2022P1.Row.ofFn_operationOneBased_eq_operationOneBased_ofFn, Imo2022P1.List.operation,Fin.mk,Imo2022P1.List.operationOneBased.eq_1, Imo2022P1.List.move, Imo2022P1.List.chainLeft, Imo2022P1.List.chainRight,Imo2022P1.List.operation.eq_1,HAppend.hAppend,List.take,HAdd.hAdd,List.dropand 89 more51 instances, coercions and auxiliary constants left out.
Tactic trace: 57 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.blocks_operationOneBased_iterate_eq_rotate_blocks_ofline 1683 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.Row,List,Even,List.length,Eq, Imo2022P1.Row.blocks,Membership.mem,LT.lt,HAdd.hAdd,Nat.iterate, Imo2022P1.Row.operationOneBased,List.reverse,List.rotateProof uses:
Nat.recAux,Eq.mpr,id,congrArg,Function.iterate_zero,id.eq_1,List.rotate_zero,List.reverse_reverse,Nat.succ,Function.iterate_succ_apply',List.length_reverse,List.length_rotate,Eq.refl,Ne,List.nil,Eq.symm,propext,List.length_pos_iff_ne_nil, Imo2022P1.List.blocks, Imo2022P1.Coin and 26 more37 instances, coercions and auxiliary constants left out.
Tactic trace: 31 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.length_blocks_operationOneBased_lt_of_odd_lastline 1717 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.Row,List,Odd,List.length,Eq, Imo2022P1.Row.blocks, Imo2022P1.indexInBlock,HSub.hSub,LT.lt, Imo2022P1.Row.operationOneBasedProof uses:
Eq.mpr, Imo2022P1.List.blocks, Imo2022P1.Coin,List.ofFn,id,congrArg,Imo2022P1.Row.blocks.eq_1, Imo2022P1.List.operationOneBased, Imo2022P1.Row.ofFn_operationOneBased_eq_operationOneBased_ofFn, Imo2022P1.List.operation,Fin.mk,Imo2022P1.List.operationOneBased.eq_1, Imo2022P1.List.move, Imo2022P1.List.chainLeft, Imo2022P1.List.chainRight,Imo2022P1.List.operation.eq_1,HAppend.hAppend,List.take,HAdd.hAdd,List.dropand 83 more54 instances, coercions and auxiliary constants left out.
Tactic trace: 51 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.length_blocks_operationOneBased_lt_of_middleline 1766 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.Row,List,Eq, Imo2022P1.Row.blocks,Ne, Imo2022P1.indexInBlock,HSub.hSub,List.length,LT.lt, Imo2022P1.Row.operationOneBasedProof uses: Imo2022P1.Coin,
List.ofFn,Eq.mpr,id,congrArg,List.length_ofFn, Imo2022P1.List.blocks,Imo2022P1.Row.blocks.eq_1, Imo2022P1.List.operationOneBased, Imo2022P1.Row.ofFn_operationOneBased_eq_operationOneBased_ofFn, Imo2022P1.List.operation,Fin.mk,Imo2022P1.List.operationOneBased.eq_1, Imo2022P1.List.move, Imo2022P1.List.chainLeft, Imo2022P1.List.chainRight,Imo2022P1.List.operation.eq_1,HAppend.hAppend,List.take,HAdd.hAddand 67 more61 instances, coercions and auxiliary constants left out.
Tactic trace: 63 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.exists_length_blocks_operationOneBased_iterate_lt_ofline 1826 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.Row,List,Even,List.length,Eq, Imo2022P1.Row.blocks,Membership.mem,HSub.hSub,Option,List.findIdx?,Decidable.decide,HAdd.hAdd,List.reverse,Option.some,Exists,LT.ltand 2 moreProof uses:
Nat.recAux,Exists.intro,Eq.mpr,id,congrArg,Function.iterate_one,And,Bool,GetElem.getElem,Bool.true,Not,Nat.lt_trans,Eq.mp,propext,List.findIdx?_eq_some_iff_getElem,Ne,List.nil, Imo2022P1.List.blocks, Imo2022P1.Coin,List.ofFnand 81 more89 instances, coercions and auxiliary constants left out.
Tactic trace: 87 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.exists_length_blocks_operationOneBased_iterate_ltline 1909 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,LE.le,CeilDiv.ceilDiv,HMul.hMul, Imo2022P1.Row, Imo2022P1.Row.valid,List.length, Imo2022P1.Row.blocks,Exists,Nat.iterate, Imo2022P1.Row.operationOneBasedProof uses: Imo2022P1.Coin,
Eq, Imo2022P1.Row.ofBlocks, Imo2022P1.Row.sum_blocks, Imo2022P1.Row.ofBlocks_blocks,Ne, Imo2022P1.indexInBlock,HSub.hSub,Eq.mpr,Finset.max',Finset.filter,List.sum,List.take,Finset.Iic,id,congrArg,Imo2022P1.indexInBlock.eq_1,Not,ne_eq,Andand 101 more105 instances, coercions and auxiliary constants left out.
Tactic trace: 91 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2022P1.Row.exists_length_blocks_operationOneBased_iterate_eq_twoline 1986 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,LE.le,CeilDiv.ceilDiv,HMul.hMul, Imo2022P1.Row, Imo2022P1.Row.valid,Eq,List.length, Imo2022P1.Row.blocks,Exists,Nat.iterate, Imo2022P1.Row.operationOneBasedProof uses:
Nat.strong_induction_on,dite,Exists.intro,Eq.mpr,id,congrArg,Function.iterate_zero,id.eq_1,le_antisymm,Eq.mp, Imo2022P1.Coin, Imo2022P1.Row.ofBlocks, Imo2022P1.Row.sum_blocks, Imo2022P1.Row.ofBlocks_blocks,Mathlib.Tactic.Contrapose.contrapose₁, Imo2022P1.List.alternateSum,Bool.false,Not,Ne,implies_congrand 23 more50 instances, coercions and auxiliary constants left out.
Tactic trace: 43 steps
Open to load the checked before-and-after goal states.
- determine
Imo2022P1.answerThe answer to be determined line 2026 sourceSource documentation
The answer to be determined.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set,Prod,NatProof uses:
Set.ofPred,Imo2022P1.answer.match_1,And,LT.lt,OfNat.ofNat,LE.le,CeilDiv.ceilDiv,HMul.hMul13 instances, coercions and auxiliary constants left out.
determine answer : Set (ℕ × ℕ) := {(n, k) : ℕ × ℕ | 0 < n ∧ n ≤ k ∧ k ≤ 3 * n ⌈/⌉ 2} - problem
Imo2022P1.imo2022_p1line 2028 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Set,Prod,Nat,Set.ofPred,Imo2022P1.answer.match_1,Exists,LE.le,OfNat.ofNat,HMul.hMul, Imo2022P1.Row, Imo2022P1.Row.valid, Imo2022P1.Row.leftmostNSame,Nat.iterate, Imo2022P1.Row.operationOneBased, Imo2022P1.answerProof uses:
Eq.mpr,And,LT.lt,CeilDiv.ceilDiv,id,congrArg,Imo2022P1.answer.eq_1,Set.ext,Iff,Membership.mem,Prod.mk,Iff.intro,Mathlib.Tactic.Contrapose.contrapose₁,Not,Or,implies_congr,Eq.trans,Mathlib.Tactic.Push.not_and_or_eq,congr,binderNameHintand 126 more117 instances, coercions and auxiliary constants left out.
Tactic trace: 113 steps
Open to load the checked before-and-after goal states.