Compfiles/Imo1989P6.lean
23 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 1989, Problem 6
A permutation $\{x_1, \ldots, x_{2n}\}$ of the set $\{1,2, \ldots, 2n\}$ where $n$ is a positive integer, is said to have property $T$ if $|x_i - x_{i + 1}| = n$ for at least one $i \in \{1,2, \ldots, 2n - 1\}$. Show that, for each $n$, there are more permutations with property $T$ than without.
Imported by 1 file
- def
Imo1989P6.Tline 33 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMulProof uses:
Exists,HSub.hSub,Eq,Nat.dist,Subtype.mk,HAdd.hAdd24 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- instance
Imo1989P6.instOneline 44 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,OfNat,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMulProof uses:
OfNat.mk,Subtype.mk19 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
Imo1989P6.Aline 46 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Set,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMulProof uses:
Set.ofPred,Not, Imo1989P6.T14 instances, coercions and auxiliary constants left out.
- def
Imo1989P6.Bline 49 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Set,Prod,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,HSub.hSubProof uses:
Set.ofPred,Imo1989P6.B.match_1,Iff,Eq,Nat.dist,Subtype.mk,HAdd.hAdd26 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1989P6.unique_ndiffline 53 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,Iff,Eq,Nat.dist,ite,LE.le,HAdd.hAdd,HSub.hSubProof uses:
Eq.mpr,Max.max,Min.min,id,congrFun',congrArg,Nat.dist_eq_max_sub_min31 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- def
Imo1989P6.fin_equivline 57 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,FinProof uses:
Equiv.mk,Fin.mk,HSub.hSub,Subtype.mk,HAdd.hAdd24 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- def
Imo1989P6.perm_fin_equivline 63 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,FinProof uses:
Equiv.equivCongr, Imo1989P6.fin_equiv14 instances, coercions and auxiliary constants left out.
- theorem
Imo1989P6.one_le_valline 67 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,LE.le17 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1989P6.val_le_2nline 70 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,LE.le17 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
Imo1989P6.partial_cycleline 73 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,Equiv.PermProof uses:
Equiv.mk,Equiv,Fin,Equiv.symm, Imo1989P6.perm_fin_equiv,Fin.cycleRange, Imo1989P6.fin_equiv20 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1989P6.partial_cycle.apply_of_eqline 79 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,Eq, Imo1989P6.partial_cycleProof uses:
id,Equiv.mk,Equiv,Fin,Equiv.symm, Imo1989P6.perm_fin_equiv,Fin.cycleRange, Imo1989P6.fin_equiv,Equiv.equivCongr,Eq.mpr,OfNat.mk,Subtype.mk,congrFun',congrArg,Eq.trans,Function.LeftInverse,funext,Equiv.equivCongr_symm,Function.RightInverse,Equiv.mk.congr_simpand 11 more46 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1989P6.partial_cycle.apply_of_gtline 88 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,LT.lt,Eq, Imo1989P6.partial_cycleProof uses:
id,Equiv.mk,Equiv,Fin,Equiv.symm, Imo1989P6.perm_fin_equiv,Fin.cycleRange, Imo1989P6.fin_equiv,Eq.mpr,Equiv.equivCongr,congrFun',congrArg,Eq.trans,Function.LeftInverse,funext,Equiv.equivCongr_symm,Function.RightInverse,Equiv.mk.congr_simp,Equiv.symm_apply_apply,Fin.cycleRange_of_gtand 5 more34 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1989P6.partial_cycle.apply_of_ltline 99 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,LT.lt,Eq, Imo1989P6.partial_cycle,Subtype.mk,HAdd.hAddProof uses:
id,Equiv.mk,Equiv,Fin,Equiv.symm, Imo1989P6.perm_fin_equiv,Fin.cycleRange, Imo1989P6.fin_equiv,Eq.mpr,Equiv.equivCongr,congrFun',congrArg,Eq.trans,Function.LeftInverse,funext,Equiv.equivCongr_symm,Function.RightInverse,Equiv.mk.congr_simp,Equiv.symm_apply_apply,Fin.cycleRange_of_ltand 19 more59 instances, coercions and auxiliary constants left out.
Tactic trace: 21 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1989P6.partial_cycle.symm.apply_of_eqline 119 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,Eq,Equiv,Equiv.symm, Imo1989P6.partial_cycleProof uses:
id,Equiv.mk,Fin, Imo1989P6.perm_fin_equiv,Fin.cycleRange, Imo1989P6.fin_equiv,Eq.mpr,Equiv.equivCongr,Eq.trans,congrFun',congrArg,Function.LeftInverse,funext,Equiv.equivCongr_symm,Function.RightInverse,Equiv.mk.congr_simp,Equiv.symm_apply_apply,Fin.cycleRange_of_eq,Eq.refl,Fin.mkand 10 more56 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1989P6.partial_cycle.symm.apply_of_gtline 131 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,LT.lt,Eq,Equiv,Equiv.symm, Imo1989P6.partial_cycleProof uses:
id,Equiv.mk,Fin, Imo1989P6.perm_fin_equiv,Fin.cycleRange, Imo1989P6.fin_equiv,Eq.mpr,Equiv.equivCongr,Eq.trans,congrFun',congrArg,Function.LeftInverse,funext,Equiv.equivCongr_symm,Function.RightInverse,Equiv.mk.congr_simp,Equiv.symm_apply_apply,Fin.cycleRange_of_gt,Nat.sub_lt_sub_right, Imo1989P6.one_le_val and 1 more37 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1989P6.partial_cycle.symm.apply_of_leline 142 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,LE.le,LT.lt,Eq,Equiv,Equiv.symm, Imo1989P6.partial_cycle,Subtype.mk,HSub.hSubProof uses:
id,Equiv.mk,Fin, Imo1989P6.perm_fin_equiv,Fin.cycleRange, Imo1989P6.fin_equiv,Eq.mpr,Equiv.equivCongr,congrFun',congrArg,Eq.trans,Function.LeftInverse,funext,Equiv.equivCongr_symm,Function.RightInverse,Equiv.mk.congr_simp,Equiv.symm_apply_apply,Eq.mp,OfNat.mk,Eq.symmand 13 more69 instances, coercions and auxiliary constants left out.
Tactic trace: 30 steps
Open to load the checked before-and-after goal states.
- def
Imo1989P6.transform_A_to_Bline 164 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul, Imo1989P6.A,Prod,HSub.hSub, Imo1989P6.BProof uses:
Set,Subtype.mk,ite,LE.le,HAdd.hAdd,Eq,Nat.dist,Equiv,Equiv.symm,Prod.mk, Imo1989P6.partial_cycle39 instances, coercions and auxiliary constants left out.
Tactic trace: 112 steps
Open to load the checked before-and-after goal states.
- def
Imo1989P6.transform_B_to_Aline 233 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Prod,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,HSub.hSub, Imo1989P6.B, Imo1989P6.AProof uses:
Imo1989P6.transform_B_to_A.match_1,Set,Prod.mk,Subtype.mk,HAdd.hAdd,Eq,Nat.dist,Equiv,Equiv.symm, Imo1989P6.partial_cycle35 instances, coercions and auxiliary constants left out.
Tactic trace: 93 steps
Open to load the checked before-and-after goal states.
- def
Imo1989P6.A_equiv_Bline 293 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Equiv,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul, Imo1989P6.A,Prod,HSub.hSub, Imo1989P6.BProof uses:
Equiv.mk, Imo1989P6.transform_A_to_B, Imo1989P6.transform_B_to_A26 instances, coercions and auxiliary constants left out.
Tactic trace: 52 steps
Open to load the checked before-and-after goal states.
- def
Imo1989P6.embed_Bline 337 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Function.Embedding,Prod,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,HSub.hSub, Imo1989P6.B,Set.ofPred, Imo1989P6.TProof uses:
Function.Embedding.mk,Imo1989P6.transform_B_to_A.match_1,Set,Prod.mk,Subtype.mk,Eq23 instances, coercions and auxiliary constants left out.
Tactic trace: 32 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1989P6.embed_B.not_Surjectiveline 367 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,Not,Function.Surjective,Prod,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,HSub.hSub, Imo1989P6.B,Set.ofPred, Imo1989P6.T,Function.Embedding, Imo1989P6.embed_BProof uses:
LT.lt,Nat.pos_of_neZero,Eq.mpr,Exists,Eq,id,congrArg,Function.Surjective.eq_1,propext,Classical.not_forall,ite,Subtype.mk,HAdd.hAdd,Equiv.mk,dite,congrFun',ite_congr,ite_eq_left,Eq.refl,ite_eq_rightand 28 more103 instances, coercions and auxiliary constants left out.
Tactic trace: 38 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1989P6.embed_B.cardline 406 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,NeZero,LT.lt,Set.ncard,Prod,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,OfNat.ofNat,HMul.hMul,HSub.hSub, Imo1989P6.B,Set.ofPred, Imo1989P6.TProof uses:
Eq.mpr,Set.univ,id,Eq,congrArg,Eq.symm,Set.ncard_coe,Set.image,Function.Embedding, Imo1989P6.embed_B,Set.ncard_image_of_injective,Function.Embedding.injective,Set.ncard_lt_card,Set,Ne,Not,Set.range,congrFun',Eq.trans,Set.image_congrand 6 more32 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- problem
Imo1989P6.imo1989_p6line 416 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,GT.gt,Set.ncard,Equiv.Perm,Subtype,Membership.mem,Finset,Finset.Icc,HMul.hMul,Set.ofPred, Imo1989P6.T,NotProof uses:
NeZero,NeZero.of_pos,Trans.trans,Eq, Imo1989P6.A,Prod,HSub.hSub, Imo1989P6.B, Imo1989P6.embed_B.card,Eq.mpr,id,congrArg,Set.ncard_congr',Equiv.symm, Imo1989P6.A_equiv_B,Eq.refl,Set,Imo1989P6.A.eq_122 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.