Compfiles/Usa2018P6.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
157 declarations, 0 contain sorry, 0 declared as axioms
USA Mathematical Olympiad 2018, Problem 6
Let $a_n$ be the number of permutations $(x_1, x_2, \ldots, x_n)$ of the numbers $(1, 2, \ldots, n)$ such that the $n$ ratios $\frac{x_k}{k}$ for $1 \le k \le n$ are all distinct. Prove that $a_n$ is odd for all $n \ge 1$.
Imports (8)
Imported by 1 file
- def
Usa2018P6.ratioThe ratiox_k / kattached to positionkof a permutation of{1, ..., n}, with positions and values encoded byFin nvia·.val + 1line 40 sourceSource documentation
The ratio
x_k / kattached to positionkof a permutation of{1, ..., n}, with positions and values encoded byFin nvia·.val + 1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,RatProof uses:
HDiv.hDiv,HAdd.hAdd,OfNat.ofNat11 instances, coercions and auxiliary constants left out.
def ratio {n : ℕ} (σ : Equiv.Perm (Fin n)) (k : Fin n) : ℚ := … - def
Usa2018P6.ValidA permutation is valid if all its ratios are distinct line 44 sourceSource documentation
A permutation is valid if all its ratios are distinct.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,FinProof uses:
Function.Injective,Rat, Usa2018P6.ratioTactic trace: 2 steps
Open to load the checked before-and-after goal states.
def Valid {n : ℕ} (σ : Equiv.Perm (Fin n)) : Prop := … - instance
Usa2018P6.(instance at line 47)line 47 source - def
Usa2018P6.numsThe numerators of an involution: positions sent to a strictly larger value line 52 sourceSource documentation
The numerators of an involution: positions sent to a strictly larger value.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,FinsetProof uses:
Finset.filter,LT.lt,Finset.univ7 instances, coercions and auxiliary constants left out.
def nums {n : ℕ} (σ : Equiv.Perm (Fin n)) : Finset (Fin n) := … - def
Usa2018P6.labelThe label of the edge{k, σ k}as seen from its smaller endpointk: the rational(k+1)/(σ k + 1)line 57 sourceSource documentation
The label of the edge
{k, σ k}as seen from its smaller endpointk: the rational(k+1)/(σ k + 1).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,RatProof uses:
HDiv.hDiv,HAdd.hAdd,OfNat.ofNat11 instances, coercions and auxiliary constants left out.
def label {n : ℕ} (σ : Equiv.Perm (Fin n)) (k : Fin n) : ℚ := … - def
Usa2018P6.FantasticAn involution is fantastic if its edges have pairwise distinct labels line 61 sourceSource documentation
An involution is fantastic if its edges have pairwise distinct labels.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,FinProof uses:
Set.InjOn,Rat, Usa2018P6.label,Finset, Usa2018P6.nums2 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
def Fantastic {n : ℕ} (σ : Equiv.Perm (Fin n)) : Prop := … - instance
Usa2018P6.(instance at line 64)line 64 source - def
Usa2018P6.IsVertexA vertex is an involution with at most one fixed point (equivalently, a maximal matching of the complete graph) line 70 sourceSource documentation
A vertex is an involution with at most one fixed point (equivalently, a maximal matching of the complete graph).
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,FinProof uses:
And,Function.Involutive,LE.le,Finset.card,Finset.filter,Eq,Finset.univ,OfNat.ofNat7 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
def IsVertex {n : ℕ} (σ : Equiv.Perm (Fin n)) : Prop := … - instance
Usa2018P6.(instance at line 73)line 73 source - def
Usa2018P6.IsSwitchA switching involution on a vertexσ: an involutionφsupported on the numerators ofσwhich preserves labels line 79 sourceSource documentation
A switching involution on a vertex
σ: an involutionφsupported on the numerators ofσwhich preserves labels.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,FinProof uses:
And,Function.Involutive,Not,Membership.mem,Finset, Usa2018P6.nums,Eq,Rat, Usa2018P6.label5 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
def IsSwitch {n : ℕ} (σ φ : Equiv.Perm (Fin n)) : Prop := … - instance
Usa2018P6.(instance at line 83)line 83 source - def
Usa2018P6.WPairsThe type of pairs(σ, φ)withσa vertex andφa switching involution ofσline 88 sourceSource documentation
The type of pairs
(σ, φ)withσa vertex andφa switching involution ofσ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
Subtype,Prod,Equiv.Perm,Fin,And, Usa2018P6.IsVertex,Prod.fst, Usa2018P6.IsSwitch,Prod.sndTactic trace: 2 steps
Open to load the checked before-and-after goal states.
def WPairs (n : ℕ) : Type := …
- instance
Usa2018P6.(instance at line 91)line 91 source - theorem
Usa2018P6.even_card_of_involutive_neA fixed-point-free involution on a fintype forces the cardinality to be even line 98 sourceSource documentation
A fixed-point-free involution on a fintype forces the cardinality to be even.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,Function.Involutive,Ne,Even,Nat,Fintype.cardProof uses:
Equiv,Fin,Trunc.out,Fintype.truncEquivFin,Classical.propDecidable,Eq,Finset,Finset.filter,LT.lt,Finset.univ,rfl,Not,Finset.card,Finset.card_bij,Membership.mem,Eq.mpr,id,Eq.trans,And,congrFun'and 19 more19 instances, coercions and auxiliary constants left out.
Tactic trace: 29 steps
Open to load the checked before-and-after goal states.
theorem even_card_of_involutive_ne {α : Type*} [Fintype α] {f : α → α} (hf : Function.Involutive f) (hfree : ∀ x, f x ≠ x) : Even (Fintype.card α) := by …Mentions: f
- theorem
Usa2018P6.card_modEq_of_involutiveFor an involutionfon a fintype, the cardinality of the whole type is congruent modulo two to the cardinality of the fixed-point subtype line 130 sourceSource documentation
For an involution
fon a fintype, the cardinality of the whole type is congruent modulo two to the cardinality of the fixed-point subtype.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,DecidableEq,Function.Involutive,Nat.ModEq,OfNat.ofNat,Nat,Fintype.card,Subtype,EqProof uses:
HAdd.hAdd,Ne,Eq.mpr,HSub.hSub,id,congrArg,Not,Fintype.card_subtype_compl,Eq.symm,Nat.add_sub_of_le,Fintype.card_subtype_le,Even,Subtype.mk,Subtype.property,Eq.trans, Usa2018P6.even_card_of_involutive_ne,Subtype.ext,Iff.mp,Subtype.mk_eq_mk,HMod.hMod14 instances, coercions and auxiliary constants left out.
Tactic trace: 19 steps
Open to load the checked before-and-after goal states.
theorem card_modEq_of_involutive {α : Type*} [Fintype α] [DecidableEq α] (f : α → α) (hf : Function.Involutive f) : Fintype.card α ≡ Fintype.card {x // f x = x} [MOD 2] := by …Mentions: f
- lemma
Usa2018P6.val_add_one_posline 155 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,LT.lt,Rat,OfNat.ofNat,HAdd.hAddProof uses:
Right.add_pos_of_nonneg_of_pos,Nat.cast_nonneg',Mathlib.Meta.Positivity.pos_of_isNat,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Nat.ble35 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.nat_mul_eq_of_label_eqCross-multiplied form of an equality of labels line 158 sourceSource documentation
Cross-multiplied form of an equality of labels.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Eq,Rat, Usa2018P6.label,HMul.hMul,HAdd.hAdd,OfNat.ofNatProof uses:
Eq.mp,HDiv.hDiv,congrArg,propext,div_eq_div_iff,LT.lt.ne', Usa2018P6.val_add_one_pos,Usa2018P6.label.eq_1,cast,Eq.trans,congr,Eq.symm,Nat.cast_one49 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma nat_mul_eq_of_label_eq {n : ℕ} {σ : Equiv.Perm (Fin n)} {x y : Fin n} (h : label σ x = label σ y) : (x.val + 1) * ((σ y).val + 1) = (y.val + 1) * ((σ x).val + 1) := by …Mentions: h, Usa2018P6.label
- lemma
Usa2018P6.lt_of_mul_eq_mul_ltIfA * D = C * BwithA < CthenB < D(natural numbers) line 167 sourceSource documentation
If
A * D = C * BwithA < CthenB < D(natural numbers).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq,HMul.hMul,LT.lt,OfNat.ofNatProof uses:
Eq.mpr,id,congrArg,Nat.mul_comm,Eq.symm,Nat.mul_lt_mul_of_pos_right,Nat.lt_of_mul_lt_mul_right8 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma lt_of_mul_eq_mul_lt {A B C D : ℕ} (h : A * D = C * B) (hAC : A < C) (hD : 0 < D) : B < D := by …Mentions: h
- lemma
Usa2018P6.eq_of_mul_eq_mul_eqIfA * D = C * BwithA = Cand0 < AthenB = Dline 175 sourceSource documentation
If
A * D = C * BwithA = Cand0 < AthenB = D.standard axioms: propext what this means
Statement uses:
Nat,Eq,HMul.hMul,LT.lt,OfNat.ofNatProof uses:
Eq.symm,Nat.mul_left_cancel9 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
lemma eq_of_mul_eq_mul_eq {A B C D : ℕ} (h : A * D = C * B) (hAC : A = C) (hA : 0 < A) : B = D := by …Mentions: h
- lemma
Usa2018P6.label_order_transferLabel equality transfers the order of numerators to the order of denominators line 181 sourceSource documentation
Label equality transfers the order of numerators to the order of denominators.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Eq,Rat, Usa2018P6.label,LT.ltProof uses:
HMul.hMul,HAdd.hAdd,OfNat.ofNat, Usa2018P6.nat_mul_eq_of_label_eq, Usa2018P6.lt_of_mul_eq_mul_lt18 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma label_order_transfer {n : ℕ} {σ : Equiv.Perm (Fin n)} {x y : Fin n} (h : label σ x = label σ y) : x.val < y.val → (σ x).val < (σ y).val := by …Mentions: h, Usa2018P6.label
- lemma
Usa2018P6.ratio_posline 191 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,LT.lt,Rat,OfNat.ofNat, Usa2018P6.ratioProof uses:
id,div_pos,HAdd.hAdd,Right.add_pos_of_nonneg_of_pos,Nat.cast_nonneg',Mathlib.Meta.Positivity.pos_of_isNat,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Nat.ble46 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.valid_invA permutation is valid iff its inverse is (one direction) line 196 sourceSource documentation
A permutation is valid iff its inverse is (one direction).
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin, Usa2018P6.Valid,Inv.invProof uses:
Eq,Rat, Usa2018P6.ratio,of_eq_true,Eq.trans,True,congrFun',congrArg,Equiv.apply_symm_apply,eq_self,id,Eq.mpr,HDiv.hDiv,HAdd.hAdd,OfNat.ofNat,inv_div,Eq.refl,inv_injective,Eq.mp,Equiv.injective21 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
theorem valid_inv {n : ℕ} {σ : Equiv.Perm (Fin n)} (h : Valid σ) : Valid σ⁻¹ := by …Mentions: h, Usa2018P6.Valid
- lemma
Usa2018P6.ratio_eq_one_iffline 210 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Iff,Eq,Rat, Usa2018P6.ratio,OfNat.ofNatProof uses:
id,Eq.mpr,HDiv.hDiv,HAdd.hAdd,congrArg,propext,div_eq_one_iff_eq,LT.lt.ne', Usa2018P6.val_add_one_pos,Iff.intro,cast,Eq.trans,congr,Eq.symm,Nat.cast_one,Fin.ext,Nat.succ.inj,Eq.refl38 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.one_lt_ratio_iffline 221 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Iff,LT.lt,Rat,OfNat.ofNat, Usa2018P6.ratioProof uses:
id,Eq.mpr,HDiv.hDiv,HAdd.hAdd,Eq,congrArg,propext,one_lt_div, Usa2018P6.val_add_one_pos,Iff.intro,cast,Eq.trans,congr,Eq.symm,Nat.cast_one59 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.ratio_lt_one_iffline 233 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Iff,LT.lt,Rat, Usa2018P6.ratio,OfNat.ofNatProof uses:
id,Eq.mpr,HDiv.hDiv,HAdd.hAdd,Eq,congrArg,propext,div_lt_one, Usa2018P6.val_add_one_pos,Iff.intro,cast,Eq.trans,congr,Eq.symm,Nat.cast_one59 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.label_eq_ratioline 245 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Eq,Rat, Usa2018P6.label, Usa2018P6.ratioProof uses:
id,HDiv.hDiv,HAdd.hAdd,OfNat.ofNat,Eq.mpr,congrArg,Eq.refl14 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.mem_nums_iffline 250 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Iff,Membership.mem,Finset, Usa2018P6.nums,LT.ltProof uses:
of_eq_true,Eq.trans,True,congr,congrArg,And,Finset.univ,Finset.filter,congrFun',Finset.filter_congr,Iff.of_eq,true_and,iff_self21 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.fixed_or_num_or_denomFor an involution, every element is fixed, a numerator, or a denominator line 255 sourceSource documentation
For an involution, every element is fixed, a numerator, or a denominator.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Or,Eq,Membership.mem,Finset, Usa2018P6.numsProof uses:
LT.lt,lt_trichotomy,Or.inr,Or.inl,Iff.mpr, Usa2018P6.mem_nums_iff,Fin.ext,Eq.symm,Eq.mpr,id,congrArg17 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
lemma fixed_or_num_or_denom {n : ℕ} {σ : Equiv.Perm (Fin n)} (hinv : Function.Involutive σ) (k : Fin n) : σ k = k ∨ k ∈ nums σ ∨ σ k ∈ nums σ := by …Mentions: Usa2018P6.nums
- theorem
Usa2018P6.valid_iff_of_involutiveA valid involution has at most one fixed point and distinct edge labels; the converse also holds line 265 sourceSource documentation
A valid involution has at most one fixed point and distinct edge labels; the converse also holds.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Iff, Usa2018P6.Valid,And,LE.le,Finset.card,Finset.filter,Eq,Finset.univ,OfNat.ofNat, Usa2018P6.FantasticProof uses:
Iff.intro,And.intro,Eq.mpr,Membership.mem,Finset,id,congrArg,propext,Finset.card_le_one,Rat, Usa2018P6.ratio,Iff.mpr, Usa2018P6.ratio_eq_one_iff,Eq.mp,Eq.trans,True,congrFun',true_and,Eq.refl,Setand 69 more89 instances, coercions and auxiliary constants left out.
Tactic trace: 78 steps
Open to load the checked before-and-after goal states.
theorem valid_iff_of_involutive {n : ℕ} {σ : Equiv.Perm (Fin n)} (hinv : Function.Involutive σ) : Valid σ ↔ (Finset.univ.filter fun x => σ x = x).card ≤ 1 ∧ Fantastic σ := by …Mentions: Usa2018P6.Valid, Usa2018P6.Fantastic
- lemma
Usa2018P6.list_prod_perms_apply_of_forall_fixline 347 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Equiv.Perm,Membership.mem,Eq,List.prod,List.mapProof uses:
List.rec,List.nil,of_eq_true,Eq.trans,True,congrFun',congrArg,OfNat.ofNat,List.map_nil,eq_self,List.cons,Eq.mpr,id,List.map_cons,HMul.hMul,List.prod_cons,Equiv.Perm.mul_apply,List.mem_cons_of_mem,List.mem_cons_self,Eq.refl14 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.list_prod_swap_apply_leftA product of swaps of pairwise disjoint pairs sendsu itov iline 357 sourceSource documentation
A product of swaps of pairwise disjoint pairs sends
u itov i.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,List.Nodup,Membership.mem,Ne,And,Eq,Equiv.Perm,List.prod,List.map,Equiv.swapProof uses:
List.rec,List.nil,False.elim,Eq.mp,False,List.cons,Eq.mpr,id,congrArg,List.map_cons,HMul.hMul,List.prod_cons,Equiv.Perm.mul_apply,dite,Not,Eq.symm,And.left,Iff.mp,List.nodup_cons,Eq.recand 10 more15 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
lemma list_prod_swap_apply_left [DecidableEq ι] (l : List ι) (u v : ι → α) (hnd : l.Nodup) (hd : ∀ i ∈ l, ∀ j ∈ l, i ≠ j → u i ≠ u j ∧ u i ≠ v j ∧ v i ≠ u j ∧ v i ≠ v j) (i : ι) (hi : i ∈ l) : ((l.map fun j => Equiv.swap (u j) (v j)).prod) (u i) = v i := by … - lemma
Usa2018P6.list_prod_swap_apply_rightA product of swaps of pairwise disjoint pairs sendsv itou iline 388 sourceSource documentation
A product of swaps of pairwise disjoint pairs sends
v itou i.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,List.Nodup,Membership.mem,Ne,And,Eq,Equiv.Perm,List.prod,List.map,Equiv.swapProof uses:
List.rec,List.nil,False.elim,Eq.mp,False,List.cons,Eq.mpr,id,congrArg,List.map_cons,HMul.hMul,List.prod_cons,Equiv.Perm.mul_apply,dite,Not,Eq.symm,And.left,Iff.mp,List.nodup_cons,Eq.recand 10 more15 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
lemma list_prod_swap_apply_right [DecidableEq ι] (l : List ι) (u v : ι → α) (hnd : l.Nodup) (hd : ∀ i ∈ l, ∀ j ∈ l, i ≠ j → u i ≠ u j ∧ u i ≠ v j ∧ v i ≠ u j ∧ v i ≠ v j) (i : ι) (hi : i ∈ l) : ((l.map fun j => Equiv.swap (u j) (v j)).prod) (v i) = u i := by … - lemma
Usa2018P6.list_prod_swap_apply_of_not_memA product of swaps fixes any point avoided by all the swaps line 419 sourceSource documentation
A product of swaps fixes any point avoided by all the swaps.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,List,Membership.mem,And,Ne,Eq,Equiv.Perm,List.prod,List.map,Equiv.swapProof uses: Usa2018P6.list_prod_perms_apply_of_forall_fix,
Equiv.swap_apply_of_ne_of_ne,And.left,And.right7 instances, coercions and auxiliary constants left out.
lemma list_prod_swap_apply_of_not_mem [DecidableEq ι] (l : List ι) (u v : ι → α) (z : α) (hz : ∀ i ∈ l, z ≠ u i ∧ z ≠ v i) : ((l.map fun j => Equiv.swap (u j) (v j)).prod) z = z := … - def
Usa2018P6.repsThe representatives of the pairs switched byφ: the smaller element of each transposed pair of numerators line 431 sourceSource documentation
The representatives of the pairs switched by
φ: the smaller element of each transposed pair of numerators.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,FinsetProof uses:
Finset.filter,And,Ne,LT.lt,Eq, Usa2018P6.nums9 instances, coercions and auxiliary constants left out.
def reps {n : ℕ} (σ φ : Equiv.Perm (Fin n)) : Finset (Fin n) := … - def
Usa2018P6.conjPermThe conjugating permutation: the product of the swaps(σ x, φ x)over the representatives line 436 sourceSource documentation
The conjugating permutation: the product of the swaps
(σ x, φ x)over the representatives.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,FinProof uses:
List.prod,List.map,Equiv.swap,Finset.sort, Usa2018P6.reps,LE.le11 instances, coercions and auxiliary constants left out.
def conjPerm {n : ℕ} (σ φ : Equiv.Perm (Fin n)) : Equiv.Perm (Fin n) := … - def
Usa2018P6.newSwitchThe new switching involution: the product of the swaps(x, σ x)over the representatives line 441 sourceSource documentation
The new switching involution: the product of the swaps
(x, σ x)over the representatives.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,FinProof uses:
List.prod,List.map,Equiv.swap,Finset.sort, Usa2018P6.reps,LE.le11 instances, coercions and auxiliary constants left out.
def newSwitch {n : ℕ} (σ φ : Equiv.Perm (Fin n)) : Equiv.Perm (Fin n) := … - lemma
Usa2018P6.mem_repsline 444 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Iff,Membership.mem,Finset, Usa2018P6.reps,And, Usa2018P6.nums,Ne,LT.ltProof uses:
of_eq_true,Eq.trans,Not,Eq,True,congr,congrArg,Finset.filter,congrFun',Finset.filter_congr,Iff.of_eq,iff_self22 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.switch_mapsTo_numsA switching involution maps numerators to numerators line 449 sourceSource documentation
A switching involution maps numerators to numerators.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.numsProof uses:
Decidable.byContradiction,Not,Eq,And.left,Rat, Usa2018P6.label,And.right,Function.Involutive,And,Eq.mp,congrArg,Eq.mpr,id12 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
lemma switch_mapsTo_nums {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hφ : IsSwitch σ φ) {x : Fin n} (hx : x ∈ nums σ) : φ x ∈ nums σ := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.nums
- lemma
Usa2018P6.denom_not_mem_numsThe image of a numerator is not a numerator line 463 sourceSource documentation
The image of a numerator is not a numerator.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,NotProof uses:
Eq.mpr,LE.le,id,Eq,Eq.trans,LT.lt,congrArg,Finset.filter,Finset.univ,And,True,congrFun',true_and,le_of_lt,Iff.mp, Usa2018P6.mem_nums_iff22 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
lemma denom_not_mem_nums {n : ℕ} {σ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) {x : Fin n} (hx : x ∈ nums σ) : σ x ∉ nums σ := by …Mentions: Usa2018P6.nums
- lemma
Usa2018P6.reps_four_distinctThe pairs(σ x, φ x)for distinct representatives are pairwise disjoint line 470 sourceSource documentation
The pairs
(σ x, φ x)for distinct representatives are pairwise disjoint.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.reps,Ne,AndProof uses: Usa2018P6.nums,
And.left,LT.lt,Iff.mp, Usa2018P6.mem_reps,And.intro,Eq,Equiv.injective, Usa2018P6.denom_not_mem_nums,Eq.rec, Usa2018P6.switch_mapsTo_nums,Eq.symm,Function.Involutive.injective,Not,Rat, Usa2018P6.label12 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
lemma reps_four_distinct {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) {x y : Fin n} (hx : x ∈ reps σ φ) (hy : y ∈ reps σ φ) (hxy : x ≠ y) : σ x ≠ σ y ∧ σ x ≠ φ y ∧ φ x ≠ σ y ∧ φ x ≠ φ y := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.reps
- lemma
Usa2018P6.reps_four_distinct'The pairs(x, σ x)for distinct representatives are pairwise disjoint line 483 sourceSource documentation
The pairs
(x, σ x)for distinct representatives are pairwise disjoint.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.reps,Ne,AndProof uses: Usa2018P6.nums,
And.left,LT.lt,Iff.mp, Usa2018P6.mem_reps,And.intro,Eq, Usa2018P6.denom_not_mem_nums,Eq.rec,Eq.symm,Equiv.injective12 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
lemma reps_four_distinct' {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (_hφ : IsSwitch σ φ) {x y : Fin n} (hx : x ∈ reps σ φ) (hy : y ∈ reps σ φ) (hxy : x ≠ y) : x ≠ y ∧ x ≠ σ y ∧ σ x ≠ y ∧ σ x ≠ σ y := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.reps
- lemma
Usa2018P6.reps_four_distinct''The pairs(x, φ x)for distinct representatives are pairwise disjoint line 496 sourceSource documentation
The pairs
(x, φ x)for distinct representatives are pairwise disjoint.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.reps,Ne,AndProof uses:
LT.lt,And.right, Usa2018P6.nums,Iff.mp, Usa2018P6.mem_reps,And.intro,Eq,Eq.trans,congrArg,And.left,Function.Involutive,Not,Rat, Usa2018P6.label,absurd,False,Eq.mp,not_lt_of_gt,Eq.symm,Function.Involutive.injective13 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
lemma reps_four_distinct'' {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hφ : IsSwitch σ φ) {x y : Fin n} (hx : x ∈ reps σ φ) (hy : y ∈ reps σ φ) (hxy : x ≠ y) : x ≠ y ∧ x ≠ φ y ∧ φ x ≠ y ∧ φ x ≠ φ y := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.reps
- lemma
Usa2018P6.conjPerm_apply_leftline 514 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.reps,Eq, Usa2018P6.conjPermProof uses:
id, Usa2018P6.list_prod_swap_apply_left,Finset.sort,LE.le,Finset.sort_nodup,List,Ne, Usa2018P6.reps_four_distinct,Iff.mp,Finset.mem_sort,Iff.mpr17 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.conjPerm_apply_rightline 524 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.reps,Eq, Usa2018P6.conjPermProof uses:
id, Usa2018P6.list_prod_swap_apply_right,Finset.sort,LE.le,Finset.sort_nodup,List,Ne, Usa2018P6.reps_four_distinct,Iff.mp,Finset.mem_sort,Iff.mpr17 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.conjPerm_apply_of_not_memline 534 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Membership.mem,Finset, Usa2018P6.reps,And,Ne,Eq, Usa2018P6.conjPermProof uses:
id, Usa2018P6.list_prod_swap_apply_of_not_mem,Finset.sort,LE.le,List,Iff.mp,Finset.mem_sort17 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.newSwitch_apply_leftline 541 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.reps,Eq, Usa2018P6.newSwitchProof uses:
id, Usa2018P6.list_prod_swap_apply_left,Finset.sort,LE.le,Finset.sort_nodup,List,Ne, Usa2018P6.reps_four_distinct',Iff.mp,Finset.mem_sort,Iff.mpr17 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.newSwitch_apply_rightline 551 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.reps,Eq, Usa2018P6.newSwitchProof uses:
id, Usa2018P6.list_prod_swap_apply_right,Finset.sort,LE.le,Finset.sort_nodup,List,Ne, Usa2018P6.reps_four_distinct',Iff.mp,Finset.mem_sort,Iff.mpr17 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.newSwitch_apply_of_not_memline 561 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Membership.mem,Finset, Usa2018P6.reps,And,Ne,Eq, Usa2018P6.newSwitchProof uses:
id, Usa2018P6.list_prod_swap_apply_of_not_mem,Finset.sort,LE.le,List,Iff.mp,Finset.mem_sort17 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.conjPerm_involutiveline 568 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch, Usa2018P6.conjPermProof uses:
dite,Eq,Exists,And,Membership.mem,Finset, Usa2018P6.reps,Or,Or.inl,Eq.mpr,id,congrArg,Eq.symm, Usa2018P6.conjPerm_apply_left, Usa2018P6.conjPerm_apply_right,Eq.refl,Or.inr,Not, Usa2018P6.conjPerm_apply_of_not_mem,Neand 8 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.newSwitch_involutiveline 586 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch, Usa2018P6.newSwitchProof uses:
dite,Eq,Exists,And,Membership.mem,Finset, Usa2018P6.reps,Or,Or.inl,Eq.mpr,id,congrArg,Eq.symm, Usa2018P6.newSwitch_apply_left, Usa2018P6.newSwitch_apply_right,Eq.refl,Or.inr,Not, Usa2018P6.newSwitch_apply_of_not_mem,Neand 8 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.flip1_involutiveThe flipped involutionπ σ πis involutive line 605 sourceSource documentation
The flipped involution
π σ πis involutive.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,HMul.hMul, Usa2018P6.conjPermProof uses: Usa2018P6.conjPerm_involutive,
id,Eq,Eq.mpr,congrArg,Eq.refl10 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma flip1_involutive {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) : Function.Involutive (conjPerm σ φ * σ * conjPerm σ φ) := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.conjPerm
- lemma
Usa2018P6.flip1_fixed_iffFixed points of the flipped involution are theπ-images of fixed points ofσline 614 sourceSource documentation
Fixed points of the flipped involution are the
π-images of fixed points ofσ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Iff,Eq,HMul.hMul, Usa2018P6.conjPermProof uses:
id,Function.Involutive.eq_iff, Usa2018P6.conjPerm_involutive10 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
lemma flip1_fixed_iff {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) (z : Fin n) : (conjPerm σ φ * σ * conjPerm σ φ) z = z ↔ σ (conjPerm σ φ z) = conjPerm σ φ z := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.conjPerm
- lemma
Usa2018P6.flip1_fixed_cardThe flipped involution has the same number of fixed points asσline 621 sourceSource documentation
The flipped involution has the same number of fixed points as
σ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Eq,Finset.card,Finset.filter,HMul.hMul, Usa2018P6.conjPerm,Finset.univProof uses: Usa2018P6.conjPerm_involutive,
Finset.card_bij,Membership.mem,Finset,Eq.mpr,id,Eq.trans,And,True,congrFun',congrArg,true_and,Iff.mp, Usa2018P6.flip1_fixed_iff,Eq.mp,Function.Involutive.injective,Exists.intro,Exists,propext18 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
lemma flip1_fixed_card {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) : (Finset.univ.filter fun x => (conjPerm σ φ * σ * conjPerm σ φ) x = x).card = (Finset.univ.filter fun x => σ x = x).card := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.conjPerm
- lemma
Usa2018P6.flip1_apply_of_mem_repsOn a representativex, the flipped involution acts asφline 640 sourceSource documentation
On a representative
x, the flipped involution acts asφ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.reps,Eq,HMul.hMul, Usa2018P6.conjPermProof uses: Usa2018P6.conjPerm_apply_of_not_mem, Usa2018P6.nums,
And.left,And,Ne,LT.lt,Iff.mp, Usa2018P6.mem_reps,And.intro, Usa2018P6.denom_not_mem_nums,Eq.rec,Eq.trans,congrArg,Not,Rat, Usa2018P6.label,And.right,absurd,False,Eq.mpand 6 more17 instances, coercions and auxiliary constants left out.
Tactic trace: 19 steps
Open to load the checked before-and-after goal states.
lemma flip1_apply_of_mem_reps {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) {x : Fin n} (hx : x ∈ reps σ φ) : (conjPerm σ φ * σ * conjPerm σ φ) x = φ x := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.reps, Usa2018P6.conjPerm
- lemma
Usa2018P6.flip1_apply_denom_of_mem_repsOn the denominatorσ xof a representative, the flipped involution acts asσ ∘ φline 664 sourceSource documentation
On the denominator
σ xof a representative, the flipped involution acts asσ ∘ φ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.reps,Eq,HMul.hMul, Usa2018P6.conjPermProof uses: Usa2018P6.conjPerm_apply_of_not_mem,
And.intro,Ne,Equiv.injective, Usa2018P6.nums,And,LT.lt,False,Iff.mp, Usa2018P6.mem_reps,Eq.mp,congrArg,Eq.symm,And.right,absurd,And.left,Not,Rat, Usa2018P6.label,not_lt_of_gtand 6 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 19 steps
Open to load the checked before-and-after goal states.
lemma flip1_apply_denom_of_mem_reps {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) {x : Fin n} (hx : x ∈ reps σ φ) : (conjPerm σ φ * σ * conjPerm σ φ) (σ x) = σ (φ x) := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.reps, Usa2018P6.conjPerm
- lemma
Usa2018P6.newSwitch_mem_nums_flipPoints moved by the new switching involution are numerators of the flipped involution line 689 sourceSource documentation
Points moved by the new switching involution are numerators of the flipped involution.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Ne, Usa2018P6.newSwitch,Membership.mem,Finset, Usa2018P6.nums,HMul.hMul, Usa2018P6.conjPermProof uses:
Exists,And, Usa2018P6.reps,Or,Eq,Decidable.byContradiction,Not, Usa2018P6.newSwitch_apply_of_not_mem,Eq.mp,Eq.trans,binderNameHint,forall_congr,Mathlib.Tactic.Push.not_and_eq,implies_congr,Eq.refl,Eq.mpr,id,congrArg,LT.lt,propextand 11 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
lemma newSwitch_mem_nums_flip {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) {z : Fin n} (hz : newSwitch σ φ z ≠ z) : z ∈ nums (conjPerm σ φ * σ * conjPerm σ φ) := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.newSwitch, Usa2018P6.nums, Usa2018P6.conjPerm
- lemma
Usa2018P6.flip2_labelThe new switching involution preserves labels of the flipped involution line 706 sourceSource documentation
The new switching involution preserves labels of the flipped involution.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Membership.mem,Finset, Usa2018P6.nums,HMul.hMul, Usa2018P6.conjPerm,Eq,Rat, Usa2018P6.label, Usa2018P6.newSwitchProof uses:
dite,Exists,And, Usa2018P6.reps,Or,Eq.mpr,id,congrArg, Usa2018P6.newSwitch_apply_left,HDiv.hDiv,HAdd.hAdd,OfNat.ofNat, Usa2018P6.flip1_apply_denom_of_mem_reps, Usa2018P6.flip1_apply_of_mem_reps,And.right,Not,And.left,Ne,LT.lt,Iff.mpand 16 more48 instances, coercions and auxiliary constants left out.
Tactic trace: 25 steps
Open to load the checked before-and-after goal states.
lemma flip2_label {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) {z : Fin n} (_hz : z ∈ nums (conjPerm σ φ * σ * conjPerm σ φ)) : label (conjPerm σ φ * σ * conjPerm σ φ) (newSwitch σ φ z) = label (conjPerm σ φ * σ * conjPerm σ φ) z := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.nums, Usa2018P6.conjPerm, Usa2018P6.label, Usa2018P6.newSwitch
- lemma
Usa2018P6.reps_flipThe representatives of the flipped pair are the original representatives line 734 sourceSource documentation
The representatives of the flipped pair are the original representatives.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Eq,Finset, Usa2018P6.reps,HMul.hMul, Usa2018P6.conjPerm, Usa2018P6.newSwitchProof uses:
Finset.ext,Eq.mpr,Iff,Membership.mem,And, Usa2018P6.nums,Ne,LT.lt,id,congr,congrArg,Iff.intro,Exists,Or,Decidable.byContradiction,Not, Usa2018P6.newSwitch_apply_of_not_mem,Eq.mp,Eq.trans,binderNameHintand 19 more27 instances, coercions and auxiliary constants left out.
Tactic trace: 34 steps
Open to load the checked before-and-after goal states.
lemma reps_flip {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) : reps (conjPerm σ φ * σ * conjPerm σ φ) (newSwitch σ φ) = reps σ φ := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.reps, Usa2018P6.conjPerm, Usa2018P6.newSwitch
- lemma
Usa2018P6.conjPerm_flipThe conjugating permutation of the flipped pair is the original one line 765 sourceSource documentation
The conjugating permutation of the flipped pair is the original one.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Eq, Usa2018P6.conjPerm,HMul.hMul, Usa2018P6.newSwitchProof uses:
id,Eq.mpr,List.prod,List.map,Equiv.swap,Finset.sort, Usa2018P6.reps,LE.le,congrArg,Finset, Usa2018P6.reps_flip,Mul,One,List,Eq.rec,Eq.refl,List.map_congr_left,Membership.mem, Usa2018P6.flip1_apply_of_mem_reps,Iff.mpand 3 more23 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma conjPerm_flip {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) : conjPerm (conjPerm σ φ * σ * conjPerm σ φ) (newSwitch σ φ) = conjPerm σ φ := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.conjPerm, Usa2018P6.newSwitch
- lemma
Usa2018P6.eq_prod_swap_selfA switching involution is the product of its own transpositions line 779 sourceSource documentation
A switching involution is the product of its own transpositions.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin, Usa2018P6.IsSwitch,Eq,List.prod,List.map,Equiv.swap,Finset.sort, Usa2018P6.reps,LE.leProof uses:
Equiv.Perm.ext,Fin.ext,dite,Exists,And,Membership.mem,Finset,Or,Eq.mpr,id,congrArg,Eq.symm, Usa2018P6.list_prod_swap_apply_left,Finset.sort_nodup,List,Ne, Usa2018P6.reps_four_distinct'',Iff.mp,Finset.mem_sort,Iff.mprand 25 more45 instances, coercions and auxiliary constants left out.
Tactic trace: 36 steps
Open to load the checked before-and-after goal states.
lemma eq_prod_swap_self {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hφ : IsSwitch σ φ) : φ = (((reps σ φ).sort (· ≤ ·)).map fun x => Equiv.swap x (φ x)).prod := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.reps
- lemma
Usa2018P6.newSwitch_flipThe new switching involution of the flipped pair is the original switching involution line 820 sourceSource documentation
The new switching involution of the flipped pair is the original switching involution.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Eq, Usa2018P6.newSwitch,HMul.hMul, Usa2018P6.conjPermProof uses:
id,Eq.mpr,List.prod,List.map,Equiv.swap,Finset.sort, Usa2018P6.reps,LE.le,congrArg,Finset, Usa2018P6.reps_flip,Eq.rec,Eq.refl,Eq.trans, Usa2018P6.eq_prod_swap_self,Mul,One,List,List.map_congr_left,Membership.memand 3 more23 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
lemma newSwitch_flip {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) : newSwitch (conjPerm σ φ * σ * conjPerm σ φ) (newSwitch σ φ) = φ := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.newSwitch, Usa2018P6.conjPerm
- def
Usa2018P6.flipPairThe flip on pairs(σ, φ)line 833 sourceSource documentation
The flip on pairs
(σ, φ).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Prod,Equiv.Perm,FinProof uses:
Prod.mk,HMul.hMul, Usa2018P6.conjPerm,Prod.fst,Prod.snd, Usa2018P6.newSwitch2 instances, coercions and auxiliary constants left out.
def flipPair {n : ℕ} (p : Equiv.Perm (Fin n) × Equiv.Perm (Fin n)) : Equiv.Perm (Fin n) × Equiv.Perm (Fin n) := … - lemma
Usa2018P6.flipPair_involutive_onThe flip is an involution on valid pairs line 838 sourceSource documentation
The flip is an involution on valid pairs.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Eq,Prod, Usa2018P6.flipPair,Prod.mkProof uses: Usa2018P6.conjPerm, Usa2018P6.conjPerm_involutive,
HMul.hMul, Usa2018P6.newSwitch, Usa2018P6.conjPerm_flip, Usa2018P6.newSwitch_flip,OfNat.ofNat,Equiv.Perm.ext,Fin.ext,id,congrArg,Prod.fst,Prod.snd,Eq.mpr,Eq.rec,Eq.refl,Trans.trans,of_eq_true,Eq.trans,Trueand 5 more22 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
lemma flipPair_involutive_on {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) : flipPair (flipPair (σ, φ)) = (σ, φ) := by …Mentions: Usa2018P6.IsSwitch, Usa2018P6.flipPair
- lemma
Usa2018P6.flipPair_memThe flip preserves membership in the vertex-switching set line 859 sourceSource documentation
The flip preserves membership in the vertex-switching set.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin, Usa2018P6.IsVertex, Usa2018P6.IsSwitch,And,HMul.hMul, Usa2018P6.conjPerm, Usa2018P6.newSwitchProof uses:
Function.Involutive,LE.le,Finset.card,Finset.filter,Eq,Finset.univ,OfNat.ofNat,And.intro, Usa2018P6.flip1_involutive,Eq.mpr,id,congrArg, Usa2018P6.flip1_fixed_card,Not,Membership.mem,Finset, Usa2018P6.nums,Rat, Usa2018P6.label, Usa2018P6.newSwitch_involutive and 3 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
lemma flipPair_mem {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : IsVertex σ) (hφ : IsSwitch σ φ) : IsVertex (conjPerm σ φ * σ * conjPerm σ φ) ∧ IsSwitch (conjPerm σ φ * σ * conjPerm σ φ) (newSwitch σ φ) := by …Mentions: Usa2018P6.IsVertex, Usa2018P6.IsSwitch, Usa2018P6.conjPerm, Usa2018P6.newSwitch
- lemma
Usa2018P6.flipPair_eq_self_iffA fixed point of the flip has trivial switching involution line 872 sourceSource documentation
A fixed point of the flip has trivial switching involution.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive, Usa2018P6.IsSwitch,Eq,Prod, Usa2018P6.flipPair,Prod.mk,OfNat.ofNatProof uses: Usa2018P6.newSwitch,
congrArg,Prod.snd,Finset, Usa2018P6.reps,EmptyCollection.emptyCollection,Decidable.byContradiction,Not,Membership.mem,Finset.Nonempty,False,Iff.mpr,Ne,Finset.nonempty_iff_ne_empty,Eq.mpr,id,Eq.symm, Usa2018P6.newSwitch_apply_left, Usa2018P6.nums, Usa2018P6.switch_mapsTo_nums and 27 more25 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
lemma flipPair_eq_self_iff {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hφ : IsSwitch σ φ) (h : flipPair (σ, φ) = (σ, φ)) : φ = 1 := by …Mentions: Usa2018P6.IsSwitch, h, Usa2018P6.flipPair
- lemma
Usa2018P6.flipPair_eq_self_of_eq_oneAny pair with trivial switching involution is a fixed point of the flip line 890 sourceSource documentation
Any pair with trivial switching involution is a fixed point of the flip.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Eq,OfNat.ofNat,Prod, Usa2018P6.flipPair,Prod.mkProof uses:
Finset, Usa2018P6.reps,EmptyCollection.emptyCollection,Finset.ext,of_eq_true,Iff,Membership.mem,Eq.trans,False,True,congr,congrArg,congrFun',Finset.filter,And,Ne,LT.lt, Usa2018P6.nums,Finset.filter_congr,Iff.of_eqand 29 more35 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
lemma flipPair_eq_self_of_eq_one {n : ℕ} {σ φ : Equiv.Perm (Fin n)} (h : φ = 1) : flipPair (σ, φ) = (σ, φ) := by …Mentions: h, Usa2018P6.flipPair
- lemma
Usa2018P6.isSwitch_idThe identity is a switching involution line 908 sourceSource documentation
The identity is a switching involution.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin, Usa2018P6.IsSwitch,OfNat.ofNatProof uses:
And.intro,Function.Involutive,And,Not,Membership.mem,Finset, Usa2018P6.nums,Eq,Rat, Usa2018P6.label,of_eq_true,eq_self9 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
lemma isSwitch_id {n : ℕ} {σ : Equiv.Perm (Fin n)} : IsSwitch σ (1 : Equiv.Perm (Fin n)) := by …Mentions: Usa2018P6.IsSwitch
- lemma
Usa2018P6.Perm_mul_self_eq_one_of_involutiveAn involution squares to one line 916 sourceSource documentation
An involution squares to one.
standard axioms: Quot.sound what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Eq,HMul.hMul,OfNat.ofNatProof uses:
Equiv.Perm.ext,Fin.ext,id,congrArg15 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
lemma Perm_mul_self_eq_one_of_involutive {n : ℕ} {ψ : Equiv.Perm (Fin n)} (h : Function.Involutive ψ) : ψ * ψ = 1 := by …Mentions: h
- theorem
Usa2018P6.card_switch_eq_one_of_fantasticA fantastic vertex admits only the trivial switching involution line 923 sourceSource documentation
A fantastic vertex admits only the trivial switching involution.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin, Usa2018P6.Fantastic,Eq,Fintype.card,Subtype, Usa2018P6.IsSwitch,OfNat.ofNatProof uses:
Iff.mpr,Equiv.Perm.ext_iff,dite,Membership.mem,Finset, Usa2018P6.nums,Rat, Usa2018P6.label,And.right,Not,Function.Involutive,And, Usa2018P6.switch_mapsTo_nums,Eq.mpr,id,congrArg,of_eq_true,eq_self,And.left,LE.leand 11 more24 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
theorem card_switch_eq_one_of_fantastic {n : ℕ} {σ : Equiv.Perm (Fin n)} (hf : Fantastic σ) : Fintype.card {φ : Equiv.Perm (Fin n) // IsSwitch σ φ} = 1 := by …Mentions: Usa2018P6.Fantastic, Usa2018P6.IsSwitch
- lemma
Usa2018P6.conj_isSwitchConjugating a switching involution by the swap of two equal-labelled numerators yields a switching involution line 947 sourceSource documentation
Conjugating a switching involution by the swap of two equal-labelled numerators yields a switching involution.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Membership.mem,Finset, Usa2018P6.nums,Eq,Rat, Usa2018P6.label, Usa2018P6.IsSwitch,HMul.hMul,Equiv.swapProof uses:
Eq.mpr,id,congrArg,rfl,Equiv.swap_apply_left,Equiv.swap_apply_right,Ne,Equiv.swap_apply_of_ne_of_ne,Function.Involutive,Equiv.swap_apply_self,Iff,dite,iff_of_true,Not,Iff.rfl,Eq.symm,Eq.refl,And.intro,And,And.leftand 4 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 49 steps
Open to load the checked before-and-after goal states.
lemma conj_isSwitch {n : ℕ} {σ : Equiv.Perm (Fin n)} {a b : Fin n} (ha : a ∈ nums σ) (hb : b ∈ nums σ) (hab : label σ a = label σ b) {φ : Equiv.Perm (Fin n)} (hφ : IsSwitch σ φ) : IsSwitch σ (Equiv.swap a b * φ * Equiv.swap a b) := by …Mentions: Usa2018P6.nums, Usa2018P6.label, Usa2018P6.IsSwitch
- def
Usa2018P6.rhoThe involution obtained fromσby removing the two edges throughaandbline 998 sourceSource documentation
The involution obtained from
σby removing the two edges throughaandb.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,FinProof uses:
HMul.hMul,Equiv.swap6 instances, coercions and auxiliary constants left out.
def rho {n : ℕ} (σ : Equiv.Perm (Fin n)) (a b : Fin n) : Equiv.Perm (Fin n) := … - lemma
Usa2018P6.rho_apply_aline 1001 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Ne,Eq, Usa2018P6.rhoProof uses: Usa2018P6.denom_not_mem_nums,
Eq.rec,Eq.symm,Equiv.injective,id,Eq.mpr,Equiv.swap,congrArg,Equiv.swap_apply_of_ne_of_ne,Equiv.swap_apply_right,Eq.refl11 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.rho_apply_σaline 1009 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Ne,Eq, Usa2018P6.rhoProof uses: Usa2018P6.denom_not_mem_nums,
Eq.rec,id,Eq.mpr,Equiv.swap,congrArg,Equiv.swap_apply_of_ne_of_ne,Equiv.swap_apply_left,Eq.refl11 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.rho_apply_bline 1016 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Ne,Eq, Usa2018P6.rhoProof uses: Usa2018P6.denom_not_mem_nums,
Eq.rec,id,Eq.mpr,Equiv.swap,congrArg,Equiv.swap_apply_right,Equiv.swap_apply_of_ne_of_ne,Ne.symm,Eq.refl11 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.rho_apply_σbline 1023 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Ne,Eq, Usa2018P6.rhoProof uses: Usa2018P6.denom_not_mem_nums,
Eq.rec,Eq.symm,Ne.symm,Equiv.injective,id,Eq.mpr,Equiv.swap,congrArg,Equiv.swap_apply_left,Equiv.swap_apply_of_ne_of_ne,Eq.refl11 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.rho_apply_of_not_memline 1031 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,And,Ne,Eq, Usa2018P6.rhoProof uses:
And.right,Eq.trans,Eq.symm,congrArg,And.left,Equiv.injective,id,Eq.mpr,Equiv.swap,Equiv.swap_apply_of_ne_of_ne,Eq.refl7 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.rho_involutiveline 1041 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Ne, Usa2018P6.rhoProof uses:
dite,Eq,Or,Eq.mpr,id,congrArg, Usa2018P6.rho_apply_a,Eq.refl, Usa2018P6.rho_apply_σa,Eq.symm, Usa2018P6.rho_apply_b, Usa2018P6.rho_apply_σb,Not, Usa2018P6.rho_apply_of_not_mem,Eq.mp,And,Eq.trans,And.intro,And.left,And.rightand 1 more15 instances, coercions and auxiliary constants left out.
Tactic trace: 30 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.not_mem_four_of_mem_nums_rholine 1065 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Ne, Usa2018P6.rho,AndProof uses:
LT.lt,Iff.mp, Usa2018P6.mem_nums_iff,And.intro,Eq,False,absurd,Eq.mp,congrArg, Usa2018P6.rho_apply_a,lt_irrefl, Usa2018P6.rho_apply_σa,Eq.symm, Usa2018P6.rho_apply_b, Usa2018P6.rho_apply_σb14 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.nums_rholine 1081 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Ne,Eq, Usa2018P6.rho,Finset.filter,AndProof uses:
Finset.ext,Eq.mpr,Iff,LT.lt,id,congr,congrArg,Eq.trans,congrFun',Iff.intro, Usa2018P6.not_mem_four_of_mem_nums_rho,Iff.mpr, Usa2018P6.mem_nums_iff,And.intro,Eq.mp, Usa2018P6.rho_apply_of_not_mem,And.left,And.right, Usa2018P6.denom_not_mem_nums,Eq.rec21 instances, coercions and auxiliary constants left out.
Tactic trace: 20 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.label_rholine 1101 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Ne, Usa2018P6.rho,Eq,Rat, Usa2018P6.labelProof uses:
And, Usa2018P6.not_mem_four_of_mem_nums_rho,id,Eq.mpr,HDiv.hDiv,HAdd.hAdd,OfNat.ofNat,congrArg, Usa2018P6.rho_apply_of_not_mem,Eq.refl18 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- def
Usa2018P6.permOfInvolutivePackage an involutive function as a permutation line 1112 sourceSource documentation
Package an involutive function as a permutation.
no axioms what this means
Statement uses:
Function.Involutive,Equiv.PermProof uses:
Equiv.mkdef permOfInvolutive {α : Type*} (f : α → α) (hf : Function.Involutive f) : Equiv.Perm α where …Mentions: f
- lemma
Usa2018P6.permOfInvolutive_applyline 1119 sourcestandard axioms: Quot.sound what this means
Statement uses:
Function.Involutive,Eq,Equiv.Perm, Usa2018P6.permOfInvolutiveProof uses:
rfl6 instances, coercions and auxiliary constants left out.
- lemma
Usa2018P6.fixed_perm_abIfc * ψ = ψ * cforc = swap a b, thenψpreserves the pair{a, b}line 1123 sourceSource documentation
If
c * ψ = ψ * cforc = swap a b, thenψpreserves the pair{a, b}.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Membership.mem,Finset, Usa2018P6.nums,Eq,Rat, Usa2018P6.label,Ne, Usa2018P6.IsSwitch,HMul.hMul,Equiv.swap,And,Insert.insert,Singleton.singletonProof uses:
Equiv.swap_apply_left,Equiv.Perm.mul_apply,Eq.symm,Eq.mp,congrArg,And.intro,Decidable.byContradiction,Not,Eq.mpr,id,Equiv.swap_apply_of_ne_of_ne,And.left,Eq.trans,Or,And.right,Eq.refl,Equiv.injective,Equiv.swap_apply_right24 instances, coercions and auxiliary constants left out.
Tactic trace: 23 steps
Open to load the checked before-and-after goal states.
lemma fixed_perm_ab {n : ℕ} {σ ψ : Equiv.Perm (Fin n)} {a b : Fin n} (_ha : a ∈ nums σ) (_hb : b ∈ nums σ) (_hab : label σ a = label σ b) (hne : a ≠ b) (_hψ : IsSwitch σ ψ) (hcomm : Equiv.swap a b * ψ = ψ * Equiv.swap a b) : ψ a ∈ ({a, b} : Finset (Fin n)) ∧ ψ b ∈ ({a, b} : Finset (Fin n)) := by …Mentions: Usa2018P6.nums, Usa2018P6.label, Usa2018P6.IsSwitch
- lemma
Usa2018P6.perm_compl_of_perm_abA permutation preserving a two-element set also preserves its complement line 1151 sourceSource documentation
A permutation preserving a two-element set also preserves its complement.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Membership.mem,Finset,Insert.insert,Singleton.singleton,NotProof uses:
LE.le,Finset.image,Iff.mpr,Finset.image_subset_iff,Eq,Finset.card,Eq.mpr,id,congrArg,Equiv,Finset.card_image_of_injective,Equiv.injective,Eq.refl,Finset.eq_of_subset_of_card_le,le_refl,And,Exists,False,Iff.mp,Finset.mem_imageand 3 more23 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
lemma perm_compl_of_perm_ab {n : ℕ} {ψ : Equiv.Perm (Fin n)} {a b : Fin n} (h : ∀ y ∈ ({a, b} : Finset (Fin n)), ψ y ∈ ({a, b} : Finset (Fin n))) (y : Fin n) (hy : y ∉ ({a, b} : Finset (Fin n))) : ψ y ∉ ({a, b} : Finset (Fin n)) := by …Mentions: h
- def
Usa2018P6.restrictAbThe restriction of an involution to a preserved pair{a, b}line 1166 sourceSource documentation
The restriction of an involution to a preserved pair
{a, b}.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset,Insert.insert,Singleton.singletonProof uses: Usa2018P6.permOfInvolutive,
ite18 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
def restrictAb {n : ℕ} {ψ : Equiv.Perm (Fin n)} (hψ : Function.Involutive ψ) {a b : Fin n} (h : ∀ y ∈ ({a, b} : Finset (Fin n)), ψ y ∈ ({a, b} : Finset (Fin n))) : Equiv.Perm (Fin n) := …Mentions: h
- lemma
Usa2018P6.restrictAb_apply_of_memline 1178 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset,Insert.insert,Singleton.singleton,Eq, Usa2018P6.restrictAbProof uses:
id,Eq.mpr, Usa2018P6.permOfInvolutive,ite,congrArg, Usa2018P6.permOfInvolutive_apply,ite_eq_left,Eq.refl18 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.restrictAb_apply_of_not_memline 1186 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset,Insert.insert,Singleton.singleton,Not,Eq, Usa2018P6.restrictAbProof uses:
id,Eq.mpr, Usa2018P6.permOfInvolutive,ite,congrArg, Usa2018P6.permOfInvolutive_apply,ite_eq_right,Eq.refl18 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.restrictAb_involutiveline 1194 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset,Insert.insert,Singleton.singleton, Usa2018P6.restrictAbProof uses:
dite,Eq,Eq.mpr,id,congrArg, Usa2018P6.restrictAb_apply_of_mem,Eq.refl,Not, Usa2018P6.restrictAb_apply_of_not_mem17 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- def
Usa2018P6.restrictComplThe restriction of an involution to the complement of a preserved pair{a, b}line 1204 sourceSource documentation
The restriction of an involution to the complement of a preserved pair
{a, b}.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset,Insert.insert,Singleton.singletonProof uses: Usa2018P6.permOfInvolutive,
ite18 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
def restrictCompl {n : ℕ} {ψ : Equiv.Perm (Fin n)} (hψ : Function.Involutive ψ) {a b : Fin n} (h : ∀ y ∈ ({a, b} : Finset (Fin n)), ψ y ∈ ({a, b} : Finset (Fin n))) : Equiv.Perm (Fin n) := …Mentions: h
- lemma
Usa2018P6.restrictCompl_apply_of_memline 1216 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset,Insert.insert,Singleton.singleton,Eq, Usa2018P6.restrictComplProof uses:
id,Eq.mpr, Usa2018P6.permOfInvolutive,ite,congrArg, Usa2018P6.permOfInvolutive_apply,ite_eq_left,Eq.refl18 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.restrictCompl_apply_of_not_memline 1224 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset,Insert.insert,Singleton.singleton,Not,Eq, Usa2018P6.restrictComplProof uses:
id,Eq.mpr, Usa2018P6.permOfInvolutive,ite,congrArg, Usa2018P6.permOfInvolutive_apply,ite_eq_right,Eq.refl18 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.restrictCompl_involutiveline 1232 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset,Insert.insert,Singleton.singleton, Usa2018P6.restrictComplProof uses:
dite,Eq,Eq.mpr,id,congrArg, Usa2018P6.restrictCompl_apply_of_mem,Eq.refl,Not, Usa2018P6.restrictCompl_apply_of_not_mem, Usa2018P6.perm_compl_of_perm_ab17 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Usa2018P6.mul_restrictAb_restrictComplAn involution decomposes as the product of its two restrictions line 1243 sourceSource documentation
An involution decomposes as the product of its two restrictions.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset,Insert.insert,Singleton.singleton,Eq,HMul.hMul, Usa2018P6.restrictAb, Usa2018P6.restrictComplProof uses:
Iff.mpr,Equiv.Perm.ext_iff,Eq.mpr,id,congrArg,Equiv.Perm.mul_apply,dite, Usa2018P6.restrictCompl_apply_of_mem, Usa2018P6.restrictAb_apply_of_mem,Eq.refl,Not, Usa2018P6.restrictCompl_apply_of_not_mem, Usa2018P6.restrictAb_apply_of_not_mem, Usa2018P6.perm_compl_of_perm_ab21 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
lemma mul_restrictAb_restrictCompl {n : ℕ} {ψ : Equiv.Perm (Fin n)} (hψ : Function.Involutive ψ) {a b : Fin n} (h : ∀ y ∈ ({a, b} : Finset (Fin n)), ψ y ∈ ({a, b} : Finset (Fin n))) : restrictAb hψ h * restrictCompl hψ h = ψ := by …Mentions: h, Usa2018P6.restrictAb, Usa2018P6.restrictCompl
- lemma
Usa2018P6.restrictAb_eq_one_or_cOn a preserved pair{a, b}, an involution is either the identity or the swap line 1256 sourceSource documentation
On a preserved pair
{a, b}, an involution is either the identity or the swap.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Ne,Function.Involutive,Membership.mem,Finset,Insert.insert,Singleton.singleton,Or,Eq, Usa2018P6.restrictAb,OfNat.ofNat,Equiv.swapProof uses:
Finset.mem_insert_self,of_eq_true,Eq.trans,True,congrArg,eq_self,or_true,Eq.mp,Or.inl,absurd,Eq.symm,Equiv.injective,Equiv,Or.inr,Eq.refl,Iff.mpr,Equiv.Perm.ext_iff,dite,Eq.mpr,idand 11 more27 instances, coercions and auxiliary constants left out.
Tactic trace: 46 steps
Open to load the checked before-and-after goal states.
lemma restrictAb_eq_one_or_c {n : ℕ} {ψ : Equiv.Perm (Fin n)} {a b : Fin n} (hne : a ≠ b) (hψ : Function.Involutive ψ) (h : ∀ y ∈ ({a, b} : Finset (Fin n)), ψ y ∈ ({a, b} : Finset (Fin n))) : restrictAb hψ h = 1 ∨ restrictAb hψ h = Equiv.swap a b := by …Mentions: h, Usa2018P6.restrictAb
- lemma
Usa2018P6.isSwitch_rho_of_restrictComplThe complement restriction of a fixed switching involution is a switching involution of the reduced vertexρline 1310 sourceSource documentation
The complement restriction of a fixed switching involution is a switching involution of the reduced vertex
ρ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Eq,Rat, Usa2018P6.label,Ne, Usa2018P6.IsSwitch,Insert.insert,Singleton.singleton, Usa2018P6.rho, Usa2018P6.restrictCompl,And.left,And,NotProof uses:
And.intro, Usa2018P6.restrictCompl_involutive,dite, Usa2018P6.restrictCompl_apply_of_mem,Eq.mpr,id,congrArg, Usa2018P6.restrictCompl_apply_of_not_mem,Eq.mp,Finset.filter, Usa2018P6.nums_rho,Iff.mpr,Finset.mem_filter,Eq.trans,Or,And.right,False,Or.inl,Or.inr,Eq.refland 4 more24 instances, coercions and auxiliary constants left out.
Tactic trace: 37 steps
Open to load the checked before-and-after goal states.
lemma isSwitch_rho_of_restrictCompl {n : ℕ} {σ ψ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) {a b : Fin n} (ha : a ∈ nums σ) (hb : b ∈ nums σ) (_hab : label σ a = label σ b) (hne : a ≠ b) (hψ : IsSwitch σ ψ) (h : ∀ y ∈ ({a, b} : Finset (Fin n)), ψ y ∈ ({a, b} : Finset (Fin n))) : IsSwitch (rho σ a b) (restrictCompl hψ.1 h) := by …Mentions: Usa2018P6.nums, Usa2018P6.label, Usa2018P6.IsSwitch, h, Usa2018P6.rho, Usa2018P6.restrictCompl
- lemma
Usa2018P6.isSwitch_mulThe product of a permutation of{a, b}(identity or swap) with a switching involution of the reduced vertexρis a switching involution ofσline 1352 sourceSource documentation
The product of a permutation of
{a, b}(identity or swap) with a switching involution of the reduced vertexρis a switching involution ofσ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Eq,Rat, Usa2018P6.label,Ne,Or,OfNat.ofNat,Equiv.swap, Usa2018P6.IsSwitch, Usa2018P6.rho,HMul.hMulProof uses:
Equiv.swap_apply_left,Equiv.swap_apply_right,Insert.insert,Singleton.singleton,Eq.mp,Eq.trans,congrArg,Or.inl,Eq.rec,Eq.symm,Or.inr,Eq.refl,And.left,Not,And.right,And,False,Finset.filter, Usa2018P6.nums_rho,Eq.mprand 20 more41 instances, coercions and auxiliary constants left out.
Tactic trace: 109 steps
Open to load the checked before-and-after goal states.
lemma isSwitch_mul {n : ℕ} {σ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) {a b : Fin n} (ha : a ∈ nums σ) (hb : b ∈ nums σ) (hab : label σ a = label σ b) (hne : a ≠ b) {ψ₀ ψ₁ : Equiv.Perm (Fin n)} (hψ₀ : ψ₀ = 1 ∨ ψ₀ = Equiv.swap a b) (hψ₁ : IsSwitch (rho σ a b) ψ₁) : IsSwitch σ (ψ₀ * ψ₁) := by …Mentions: Usa2018P6.nums, Usa2018P6.label, Usa2018P6.IsSwitch, Usa2018P6.rho
- lemma
Usa2018P6.switch_rho_fix_of_mem_abA switching involution of the reduced vertex fixes bothaandbline 1453 sourceSource documentation
A switching involution of the reduced vertex fixes both
aandb.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Ne, Usa2018P6.IsSwitch, Usa2018P6.rho,Insert.insert,Singleton.singleton,EqProof uses:
And.left,Not,Rat, Usa2018P6.label,And.right,And,Iff.mp,Finset.filter,Finset.mem_filter,Eq.mp,congrArg, Usa2018P6.nums_rho,Or,Eq.trans,False,Or.inl,Or.inr,Eq.refl21 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
lemma switch_rho_fix_of_mem_ab {n : ℕ} {σ ψ₁ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) {a b : Fin n} (ha : a ∈ nums σ) (hb : b ∈ nums σ) (hne : a ≠ b) (hψ₁ : IsSwitch (rho σ a b) ψ₁) {x : Fin n} (hx : x ∈ ({a, b} : Finset (Fin n))) : ψ₁ x = x := by …Mentions: Usa2018P6.nums, Usa2018P6.IsSwitch, Usa2018P6.rho
- lemma
Usa2018P6.perm_ab_of_fixedA fixed switching involution preserves the pair{a, b}(bundled form) line 1467 sourceSource documentation
A fixed switching involution preserves the pair
{a, b}(bundled form).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Membership.mem,Finset, Usa2018P6.nums,Eq,Rat, Usa2018P6.label,Ne, Usa2018P6.IsSwitch,HMul.hMul,Equiv.swap,Insert.insert,Singleton.singletonProof uses:
And, Usa2018P6.fixed_perm_ab,Or,Eq.mp,Eq.trans,congrArg,Or.inl,And.left,Or.inr,And.right,Eq.refl24 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
lemma perm_ab_of_fixed {n : ℕ} {σ ψ : Equiv.Perm (Fin n)} {a b : Fin n} (ha : a ∈ nums σ) (hb : b ∈ nums σ) (hab : label σ a = label σ b) (hne : a ≠ b) (hψ : IsSwitch σ ψ) (hcomm : Equiv.swap a b * ψ = ψ * Equiv.swap a b) : ∀ y ∈ ({a, b} : Finset (Fin n)), ψ y ∈ ({a, b} : Finset (Fin n)) := by …Mentions: Usa2018P6.nums, Usa2018P6.label, Usa2018P6.IsSwitch
- lemma
Usa2018P6.commute_c_of_memThe productψ₀ * ψ₁commutes withswap a bwhenψ₀ ∈ {1, swap a b}andψ₁is a switching involution of the reduced vertex line 1480 sourceSource documentation
The product
ψ₀ * ψ₁commutes withswap a bwhenψ₀ ∈ {1, swap a b}andψ₁is a switching involution of the reduced vertex.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Ne,Or,Eq,OfNat.ofNat,Equiv.swap, Usa2018P6.IsSwitch, Usa2018P6.rho,HMul.hMulProof uses:
Commute,Or.inl,Eq.mpr,id,congrArg,Commute.one_right,Or.inr,Commute.refl,Eq.refl,Equiv.Perm.Disjoint.commute,dite,Insert.insert,Singleton.singleton, Usa2018P6.switch_rho_fix_of_mem_ab,Not,Equiv.swap_apply_of_ne_of_ne,And.left,Eq.mp,And,Eq.transand 5 more34 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
lemma commute_c_of_mem {n : ℕ} {σ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) {a b : Fin n} (ha : a ∈ nums σ) (hb : b ∈ nums σ) (hne : a ≠ b) {ψ₀ ψ₁ : Equiv.Perm (Fin n)} (hψ₀ : ψ₀ = 1 ∨ ψ₀ = Equiv.swap a b) (hψ₁ : IsSwitch (rho σ a b) ψ₁) : Equiv.swap a b * (ψ₀ * ψ₁) = (ψ₀ * ψ₁) * Equiv.swap a b := by …Mentions: Usa2018P6.nums, Usa2018P6.IsSwitch, Usa2018P6.rho
- def
Usa2018P6.fixedDecompEquivThe fixed points of the conjugation involution decompose as a choice on{a, b}(identity or swap) times a switching involution of the reduced vertex line 1505 sourceSource documentation
The fixed points of the conjugation involution decompose as a choice on
{a, b}(identity or swap) times a switching involution of the reduced vertex.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Membership.mem,Finset, Usa2018P6.nums,Eq,Rat, Usa2018P6.label,Ne,Equiv,Subtype,And, Usa2018P6.IsSwitch,HMul.hMul,Equiv.swap,Prod,Or,OfNat.ofNatand 1 moreProof uses:
Equiv.mk,Prod.mk,Subtype.mk, Usa2018P6.restrictAb, Usa2018P6.restrictCompl,Prod.fst,Prod.snd28 instances, coercions and auxiliary constants left out.
Tactic trace: 62 steps
Open to load the checked before-and-after goal states.
def fixedDecompEquiv {n : ℕ} {σ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) {a b : Fin n} (ha : a ∈ nums σ) (hb : b ∈ nums σ) (hab : label σ a = label σ b) (hne : a ≠ b) : {ψ : Equiv.Perm (Fin n) // IsSwitch σ ψ ∧ Equiv.swap a b * ψ = ψ * Equiv.swap a b} ≃ {ψ₀ : Equiv.Perm (Fin n) // ψ₀ = 1 ∨ ψ₀ = Equiv.swap a b} × {ψ₁ : Equiv.Perm (Fin n) // IsSwitch (rho σ a b) ψ₁} where …Mentions: Usa2018P6.nums, Usa2018P6.label, Usa2018P6.IsSwitch, Usa2018P6.rho
- theorem
Usa2018P6.even_card_switch_of_not_fantasticA non-fantastic vertex admits an even number of switching involutions line 1580 sourceSource documentation
A non-fantastic vertex admits an even number of switching involutions.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,Function.Involutive,Not, Usa2018P6.Fantastic,Even,Fintype.card,Subtype, Usa2018P6.IsSwitchProof uses:
And,Membership.mem,Finset, Usa2018P6.nums,Exists,Eq,Rat, Usa2018P6.label,Ne,Eq.mp,Set,Eq.trans,Mathlib.Tactic.Push.not_forall_eq,congrArg,funext,HMul.hMul,Equiv.swap,OfNat.ofNat, Usa2018P6.Perm_mul_self_eq_one_of_involutive,Equiv.swap_apply_selfand 41 more50 instances, coercions and auxiliary constants left out.
Tactic trace: 46 steps
Open to load the checked before-and-after goal states.
theorem even_card_switch_of_not_fantastic {n : ℕ} {σ : Equiv.Perm (Fin n)} (hσ : Function.Involutive σ) (hf : ¬ Fantastic σ) : Even (Fintype.card {φ : Equiv.Perm (Fin n) // IsSwitch σ φ}) := by …Mentions: Usa2018P6.Fantastic, Usa2018P6.IsSwitch
- instance
Usa2018P6.usa2018p6_aux.decInvolDecidability of being an involution onFin nline 1646 sourceSource documentation
Decidability of being an involution on
Fin n.no axioms what this means
Statement uses:
Nat,DecidablePred,Fin,Function.Involutive1 instances, coercions and auxiliary constants left out.
instance decInvol {n : ℕ} : DecidablePred (Function.Involutive (α := Fin n)) := fun σ => … - def
Usa2018P6.usa2018p6_aux.fpfSubtypeFixed-point-free involutions ofFin nline 1650 sourceSource documentation
Fixed-point-free involutions of
Fin n.standard axioms: Quot.sound what this means
Statement uses:
NatProof uses:
Subtype,Equiv.Perm,Fin,And,Function.Involutive,Ne3 instances, coercions and auxiliary constants left out.
def fpfSubtype (n : ℕ) := …
- def
Usa2018P6.usa2018p6_aux.vtxSubtypeInvolutions ofFin nwith at most one fixed point line 1654 sourceSource documentation
Involutions of
Fin nwith at most one fixed point.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
Subtype,Equiv.Perm,Fin,And,Function.Involutive,LE.le,Finset.card,Finset.filter,Eq,Finset.univ,OfNat.ofNat7 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
def vtxSubtype (n : ℕ) := …
- instance
Usa2018P6.usa2018p6_aux.(instance at line 1658)line 1658 source - instance
Usa2018P6.usa2018p6_aux.(instance at line 1661)line 1661 source - def
Usa2018P6.usa2018p6_aux.fcardThe number of fixed-point-free involutions ofFin nline 1665 sourceSource documentation
The number of fixed-point-free involutions of
Fin n.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
Fintype.card, Usa2018P6.usa2018p6_aux.fpfSubtype1 instances, coercions and auxiliary constants left out.
noncomputable def fcard (n : ℕ) : ℕ := Fintype.card (fpfSubtype n)
Mentions: Usa2018P6.usa2018p6_aux.fpfSubtype
- def
Usa2018P6.usa2018p6_aux.vcardThe number of involutions ofFin nwith at most one fixed point line 1668 sourceSource documentation
The number of involutions of
Fin nwith at most one fixed point.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
Fintype.card, Usa2018P6.usa2018p6_aux.vtxSubtype1 instances, coercions and auxiliary constants left out.
noncomputable def vcard (n : ℕ) : ℕ := Fintype.card (vtxSubtype n)
Mentions: Usa2018P6.usa2018p6_aux.vtxSubtype
- theorem
Usa2018P6.usa2018p6_aux.decomposeFin_fstline 1672 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Eq,Nat.succ,Prod.fst,Equiv,Prod,Equiv.Perm.decomposeFinProof uses:
Eq.mpr,Equiv.symm,Prod.mk,Prod.snd,id,congrArg,Eq.symm,Equiv.Perm.decomposeFin_symm_apply_zero,Prod.mk.eta,Equiv.symm_apply_apply,Eq.refl18 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
Usa2018P6.usa2018p6_aux.partnerThe partner of0under a permutation that moves0, seen as an element ofFin (n + 1)viaFin.predline 1679 sourceSource documentation
The partner of
0under a permutation that moves0, seen as an element ofFin (n + 1)viaFin.pred.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,NeProof uses:
Fin.pred,Prod.fst,Nat.succ,Equiv,Prod,Equiv.Perm.decomposeFin18 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
noncomputable def partner {n : ℕ} (σ : Equiv.Perm (Fin (n + 2))) (_h0 : σ 0 ≠ 0) : Fin (n + 1) := … - theorem
Usa2018P6.usa2018p6_aux.partner_succline 1685 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Ne,Eq,Fin.succ, Usa2018P6.usa2018p6_aux.partnerProof uses:
id,Eq.mpr,Fin.pred,Prod.fst,Nat.succ,Equiv,Prod,Equiv.Perm.decomposeFin,congrArg,Fin.succ_pred, Usa2018P6.usa2018p6_aux.decomposeFin_fst,Eq.refl19 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.decomposeFin_eq_symm_partnerline 1690 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Ne,Eq,Equiv,Prod,Nat.succ,Equiv.symm,Equiv.Perm.decomposeFin,Prod.mk,Fin.succ, Usa2018P6.usa2018p6_aux.partner,Prod.sndProof uses:
Eq.mpr,id,congrArg, Usa2018P6.usa2018p6_aux.partner_succ,Prod.fst,Eq.symm, Usa2018P6.usa2018p6_aux.decomposeFin_fst,Prod.mk.eta,Equiv.symm_apply_apply18 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.decomposeFin_eq_symm_zeroline 1695 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Eq,Equiv,Prod,Nat.succ,Equiv.symm,Equiv.Perm.decomposeFin,Prod.mk,Prod.sndProof uses:
Prod.fst,Eq.mpr,id,congrArg, Usa2018P6.usa2018p6_aux.decomposeFin_fst,Eq.symm,Prod.mk.eta,Equiv.symm_apply_apply18 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.partner_symm_succThe partner of0underdecomposeFin.symm (j.succ, e)isjitself line 1704 sourceSource documentation
The partner of
0underdecomposeFin.symm (j.succ, e)isjitself.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Ne,Nat.succ,Equiv,Prod,Equiv.symm,Equiv.Perm.decomposeFin,Prod.mk,Fin.succ,Eq, Usa2018P6.usa2018p6_aux.partnerProof uses: Usa2018P6.usa2018p6_aux.partner_succ,
Iff.mp,Fin.succ_inj,Eq.mp,congrArg,Equiv.Perm.decomposeFin_symm_apply_zero17 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem partner_symm_succ {n : ℕ} (j : Fin (n + 1)) (e : Equiv.Perm (Fin (n + 1))) (h0 : (Equiv.Perm.decomposeFin.symm (j.succ, e)) 0 ≠ 0) : partner (Equiv.Perm.decomposeFin.symm (j.succ, e)) h0 = j := by …Mentions: Usa2018P6.usa2018p6_aux.partner
- theorem
Usa2018P6.usa2018p6_aux.involutive_symm_succInvolutivity ofdecomposeFin.symm (j.succ, e)corresponds to involutivity ofetogether withe j = jline 1715 sourceSource documentation
Involutivity of
decomposeFin.symm (j.succ, e)corresponds to involutivity ofetogether withe j = j.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Iff,Function.Involutive,Nat.succ,Equiv,Prod,Equiv.symm,Equiv.Perm.decomposeFin,Prod.mk,Fin.succ,And,EqProof uses:
Equiv.swap,dite,absurd,Eq.mp,congrArg,Equiv.swap_apply_left,Fin.succ_ne_zero,Eq.symm,Not,Equiv.swap_apply_of_ne_of_ne,Iff.intro,Iff.mp,Fin.succ_inj,Equiv.Perm.decomposeFin_symm_apply_succ,Equiv.Perm.decomposeFin_symm_apply_zero,And.intro,Eq.mpr,id,Equiv.swap_apply_right,Eq.refland 4 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 65 steps
Open to load the checked before-and-after goal states.
theorem involutive_symm_succ {n : ℕ} (j : Fin (n + 1)) (e : Equiv.Perm (Fin (n + 1))) : Function.Involutive (Equiv.Perm.decomposeFin.symm (j.succ, e)) ↔ Function.Involutive e ∧ e j = j := by … - theorem
Usa2018P6.usa2018p6_aux.fpf_symm_succdecomposeFin.symm (j.succ, e)is fixed-point-free iffehas no fixed point other thanjline 1780 sourceSource documentation
decomposeFin.symm (j.succ, e)is fixed-point-free iffehas no fixed point other thanj.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Function.Involutive,Eq,Iff,Ne,Nat.succ,Equiv,Prod,Equiv.symm,Equiv.Perm.decomposeFin,Prod.mk,Fin.succProof uses:
Iff.intro,Equiv.swap,False,Eq.trans,Eq.symm,Eq.mp,congrArg,Equiv.Perm.decomposeFin_symm_apply_succ,Equiv.swap_apply_of_ne_of_ne,Fin.succ_ne_zero,Iff.mp,Fin.succ_inj,Fin.cases,Eq.mpr,id,Equiv.Perm.decomposeFin_symm_apply_zero,dite,Equiv.swap_apply_right,Ne.symm,Not17 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
theorem fpf_symm_succ {n : ℕ} (j : Fin (n + 1)) (e : Equiv.Perm (Fin (n + 1))) (he : Function.Involutive e) (hej : e j = j) : (∀ y : Fin (n + 2), Equiv.Perm.decomposeFin.symm (j.succ, e) y ≠ y) ↔ ∀ x : Fin (n + 1), x ≠ j → e x ≠ x := by … - theorem
Usa2018P6.usa2018p6_aux.card_fp_symm_succThe fixed points ofdecomposeFin.symm (j.succ, e)are in bijection with the fixed points ofedifferent fromjline 1814 sourceSource documentation
The fixed points of
decomposeFin.symm (j.succ, e)are in bijection with the fixed points ofedifferent fromj.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Function.Involutive,Eq,Finset.card,Finset.filter,Nat.succ,Equiv,Prod,Equiv.symm,Equiv.Perm.decomposeFin,Prod.mk,Fin.succ,Finset.univ,And,NeProof uses:
Eq.symm,Finset.card_bij,Membership.mem,Finset,Eq.mpr,id,congrArg,propext,Finset.mem_filter,Eq.mp,And.intro,Finset.mem_univ,Equiv.swap,Equiv.Perm.decomposeFin_symm_apply_succ,Equiv.swap_apply_of_ne_of_ne,Fin.succ_ne_zero,Iff.mp,Fin.succ_inj,Eq.refl,Existsand 11 more29 instances, coercions and auxiliary constants left out.
Tactic trace: 36 steps
Open to load the checked before-and-after goal states.
theorem card_fp_symm_succ {n : ℕ} (j : Fin (n + 1)) (e : Equiv.Perm (Fin (n + 1))) (he : Function.Involutive e) (hej : e j = j) : (Finset.univ.filter fun y : Fin (n + 2) => Equiv.Perm.decomposeFin.symm (j.succ, e) y = y).card = (Finset.univ.filter fun x : Fin (n + 1) => x ≠ j ∧ e x = x).card := by … - theorem
Usa2018P6.usa2018p6_aux.involutive_symm_zeroInvolutivity ofdecomposeFin.symm (0, e)corresponds to involutivity ofeline 1852 sourceSource documentation
Involutivity of
decomposeFin.symm (0, e)corresponds to involutivity ofe.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Iff,Function.Involutive,Nat.succ,Equiv,Prod,Equiv.symm,Equiv.Perm.decomposeFin,Prod.mkProof uses:
Iff.intro,Eq,Fin.succ,Eq.mp,congrArg,propext,Fin.succ_inj,Equiv.refl,Equiv.refl_apply,Equiv.swap,Equiv.swap_self,Equiv.Perm.decomposeFin_symm_apply_succ,Fin.cases,Eq.mpr,id,Equiv.Perm.decomposeFin_symm_apply_zero,Eq.refl18 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
theorem involutive_symm_zero {n : ℕ} (e : Equiv.Perm (Fin (n + 1))) : Function.Involutive (Equiv.Perm.decomposeFin.symm (0, e)) ↔ Function.Involutive e := by … - theorem
Usa2018P6.usa2018p6_aux.fp_symm_zeroThe fixed points ofdecomposeFin.symm (0, e)are0together with the successors of fixed points ofeline 1870 sourceSource documentation
The fixed points of
decomposeFin.symm (0, e)are0together with the successors of fixed points ofe.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Iff,Eq,Nat.succ,Equiv,Prod,Equiv.symm,Equiv.Perm.decomposeFin,Prod.mk,Or,Exists,And,Fin.succProof uses:
Fin.cases,of_eq_true,Eq.trans,True,congr,congrArg,congrFun',Equiv.Perm.decomposeFin_symm_apply_zero,eq_self,true_or,iff_self,Eq.mpr,Equiv.swap,id,Equiv.Perm.decomposeFin_symm_apply_succ,Equiv.refl,Equiv.swap_self,Equiv.refl_apply,Iff.intro,Or.inrand 10 more23 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
theorem fp_symm_zero {n : ℕ} (e : Equiv.Perm (Fin (n + 1))) (y : Fin (n + 2)) : Equiv.Perm.decomposeFin.symm (0, e) y = y ↔ y = 0 ∨ ∃ x : Fin (n + 1), y = x.succ ∧ e x = x := by … - theorem
Usa2018P6.usa2018p6_aux.card_le_one_symm_zero_iffdecomposeFin.symm (0, e)has at most one fixed point iffeis fixed-point-free line 1887 sourceSource documentation
decomposeFin.symm (0, e)has at most one fixed point iffeis fixed-point-free.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Iff,LE.le,Finset.card,Finset.filter,Eq,Nat.succ,Equiv,Prod,Equiv.symm,Equiv.Perm.decomposeFin,Prod.mk,Finset.univ,NeProof uses:
Iff.intro,Membership.mem,Finset,Eq.mpr,And,id,congrArg,propext,Finset.mem_filter,And.intro,Finset.mem_univ,Iff.mpr,Or,Exists,Fin.succ, Usa2018P6.usa2018p6_aux.fp_symm_zero,Or.inl,rfl,Or.inr,Exists.introand 16 more37 instances, coercions and auxiliary constants left out.
Tactic trace: 39 steps
Open to load the checked before-and-after goal states.
theorem card_le_one_symm_zero_iff {n : ℕ} (e : Equiv.Perm (Fin (n + 1))) : (Finset.univ.filter fun y : Fin (n + 2) => Equiv.Perm.decomposeFin.symm (0, e) y = y).card ≤ 1 ↔ ∀ x : Fin (n + 1), e x ≠ x := by … - def
Usa2018P6.usa2018p6_aux.restrictPermRestriction of a permutation fixingjto the complement ofj, transported toFin nalongfinSuccAboveEquivline 1935 sourceSource documentation
Restriction of a permutation fixing
jto the complement ofj, transported toFin nalongfinSuccAboveEquiv.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,EqProof uses:
Equiv,Subtype,Ne,Equiv.permCongr,Equiv.symm,finSuccAboveEquiv,Equiv.Perm.subtypePerm13 instances, coercions and auxiliary constants left out.
noncomputable def restrictPerm {n : ℕ} {j : Fin (n + 1)} (e : Equiv.Perm (Fin (n + 1))) (hej : e j = j) : Equiv.Perm (Fin n) := … - theorem
Usa2018P6.usa2018p6_aux.restrictPerm_applyline 1941 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Eq,Ne,Equiv,Subtype,finSuccAboveEquiv, Usa2018P6.usa2018p6_aux.restrictPermProof uses:
of_eq_true,Not,Eq.trans,True,congrFun',congrArg,Subtype.mk,Iff.mpr,Subtype.property,Equiv.apply_symm_apply,eq_self15 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.restrictPerm_involutiveline 1946 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Function.Involutive,Eq, Usa2018P6.usa2018p6_aux.restrictPermProof uses:
Equiv.injective,Subtype,Ne,finSuccAboveEquiv,Subtype.ext,Equiv,Eq.mpr,id,congrArg, Usa2018P6.usa2018p6_aux.restrictPerm_apply,Eq.refl13 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.restrictPerm_fix_iffline 1954 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Eq,Iff, Usa2018P6.usa2018p6_aux.restrictPerm,Ne,Equiv,Subtype,finSuccAboveEquivProof uses:
Iff.intro,congrArg, Usa2018P6.usa2018p6_aux.restrictPerm_apply,Eq.symm,Eq.mp,Equiv.injective,Subtype.ext,Eq.mpr,id14 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.card_fp_restrictPermThe fixed points ofrestrictPerm e hejare in bijection with the fixed points ofedifferent fromjline 1972 sourceSource documentation
The fixed points of
restrictPerm e hejare in bijection with the fixed points ofedifferent fromj.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Eq,Finset.card,Finset.filter, Usa2018P6.usa2018p6_aux.restrictPerm,Finset.univ,And,NeProof uses:
Finset.card_bij,Membership.mem,Finset,Equiv,Subtype,finSuccAboveEquiv,Eq.mpr,id,congrArg,propext,Finset.mem_filter,And.intro,Finset.mem_univ,Subtype.property,Iff.mp, Usa2018P6.usa2018p6_aux.restrictPerm_fix_iff,And.right,Eq.mp,Equiv.injective,Subtype.extand 5 more24 instances, coercions and auxiliary constants left out.
Tactic trace: 20 steps
Open to load the checked before-and-after goal states.
theorem card_fp_restrictPerm {n : ℕ} {j : Fin (n + 1)} (e : Equiv.Perm (Fin (n + 1))) (hej : e j = j) : (Finset.univ.filter fun y : Fin n => restrictPerm e hej y = y).card = (Finset.univ.filter fun x : Fin (n + 1) => x ≠ j ∧ e x = x).card := by …Mentions: Usa2018P6.usa2018p6_aux.restrictPerm
- theorem
Usa2018P6.usa2018p6_aux.fpf_restrictPermline 1993 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Eq,Ne, Usa2018P6.usa2018p6_aux.restrictPermProof uses:
Equiv,Subtype,finSuccAboveEquiv,Subtype.property,Iff.mp, Usa2018P6.usa2018p6_aux.restrictPerm_fix_iff13 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- def
Usa2018P6.usa2018p6_aux.extendPermExtension of a permutation ofFin ntoFin (n + 1)fixingj, via the identificationFin n ≃ {x // x ≠ j}line 2003 sourceSource documentation
Extension of a permutation of
Fin ntoFin (n + 1)fixingj, via the identificationFin n ≃ {x // x ≠ j}.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.PermProof uses:
Equiv.trans,Sum,Subtype,Eq,Not,Equiv.symm,Equiv.sumCompl,Ne,Equiv.sumCongr,Equiv.refl,Equiv,Equiv.permCongr,finSuccAboveEquiv10 instances, coercions and auxiliary constants left out.
noncomputable def extendPerm {n : ℕ} (j : Fin (n + 1)) (τ : Equiv.Perm (Fin n)) : Equiv.Perm (Fin (n + 1)) := … - theorem
Usa2018P6.usa2018p6_aux.extendPerm_apply_selfline 2009 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Eq, Usa2018P6.usa2018p6_aux.extendPermProof uses:
Sum,Subtype,Not,Equiv,Equiv.symm,Equiv.sumCompl,Sum.inl,Subtype.mk,rfl,Equiv.sumCompl_symm_apply_of_pos,of_eq_true,Eq.trans,True,congrFun',congrArg,Equiv.trans,Equiv.sumCongr,Equiv.refl,Ne,Equiv.permCongrand 3 more13 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.extendPerm_apply_neline 2015 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Ne,Eq, Usa2018P6.usa2018p6_aux.extendPerm,Equiv,Subtype,finSuccAboveEquiv,Equiv.symm,Subtype.mkProof uses:
Sum,Not,Equiv.sumCompl,Sum.inr,Equiv.sumCompl_symm_apply_of_neg,of_eq_true,Eq.trans,True,congrFun',congrArg,Equiv.trans,Equiv.sumCongr,Equiv.refl,Equiv.permCongr,Equiv.sumCongr_apply,eq_self15 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.extendPerm_involutiveline 2023 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Function.Involutive, Usa2018P6.usa2018p6_aux.extendPermProof uses:
dite,Eq,Eq.mpr,id,congrArg, Usa2018P6.usa2018p6_aux.extendPerm_apply_self,Eq.refl,Not,Ne,Equiv,Subtype,finSuccAboveEquiv,Equiv.symm,Subtype.mk, Usa2018P6.usa2018p6_aux.extendPerm_apply_ne,Subtype.property,Subtype.ext,rfl,Equiv.symm_apply_apply,Equiv.apply_symm_apply14 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.extendPerm_fix_iffline 2037 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Ne,Iff,Eq, Usa2018P6.usa2018p6_aux.extendPerm,Equiv,Subtype,Equiv.symm,finSuccAboveEquiv,Subtype.mkProof uses:
Eq.mpr,id,congrArg, Usa2018P6.usa2018p6_aux.extendPerm_apply_ne,Iff.intro,Equiv.injective,Equiv.apply_symm_apply,Subtype.ext13 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.extendPerm_restrictPermline 2051 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Eq, Usa2018P6.usa2018p6_aux.extendPerm, Usa2018P6.usa2018p6_aux.restrictPermProof uses:
Equiv.ext,dite,Equiv,Eq.mpr,id,congrArg, Usa2018P6.usa2018p6_aux.extendPerm_apply_self,Eq.refl,Not,Ne,Subtype,finSuccAboveEquiv,Equiv.symm,Subtype.mk, Usa2018P6.usa2018p6_aux.extendPerm_apply_ne, Usa2018P6.usa2018p6_aux.restrictPerm_apply,Equiv.apply_symm_apply14 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.restrictPerm_extendPermline 2059 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Eq, Usa2018P6.usa2018p6_aux.restrictPerm, Usa2018P6.usa2018p6_aux.extendPerm, Usa2018P6.usa2018p6_aux.extendPerm_apply_selfProof uses:
Equiv.ext,Equiv.injective,Subtype,Ne,finSuccAboveEquiv,Equiv,Subtype.ext,Eq.mpr,id,congrArg, Usa2018P6.usa2018p6_aux.restrictPerm_apply,Equiv.symm,Subtype.mk,Subtype.property, Usa2018P6.usa2018p6_aux.extendPerm_apply_ne,rfl,Equiv.symm_apply_apply,Eq.refl10 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.fpf_extendPermline 2070 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Ne, Usa2018P6.usa2018p6_aux.extendPermProof uses:
Eq,Equiv,Subtype,Equiv.symm,finSuccAboveEquiv,Subtype.mk,Iff.mp, Usa2018P6.usa2018p6_aux.extendPerm_fix_iff12 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.invol_decomposeFin_symmline 2077 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Ne,Function.Involutive,And,Prod.snd,Nat.succ,Equiv,Prod,Equiv.Perm.decomposeFin,Eq, Usa2018P6.usa2018p6_aux.partnerProof uses:
Iff.mp,Equiv.symm,Prod.mk,Fin.succ, Usa2018P6.usa2018p6_aux.involutive_symm_succ,Eq.mp,congrArg, Usa2018P6.usa2018p6_aux.decomposeFin_eq_symm_partner18 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.fpf_eline 2085 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Ne,Function.Involutive, Usa2018P6.usa2018p6_aux.partner,Prod.snd,Nat.succ,Equiv,Prod,Equiv.Perm.decomposeFinProof uses:
Iff.mp,Equiv.symm,Prod.mk,Fin.succ, Usa2018P6.usa2018p6_aux.fpf_symm_succ,And.left,Eq, Usa2018P6.usa2018p6_aux.invol_decomposeFin_symm,And.right,Eq.mp,congrArg, Usa2018P6.usa2018p6_aux.decomposeFin_eq_symm_partner18 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.card_e_le_oneline 2093 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Ne,Function.Involutive,LE.le,Finset.card,Finset.filter,Eq,Finset.univ, Usa2018P6.usa2018p6_aux.restrictPerm, Usa2018P6.usa2018p6_aux.partner,Prod.snd,Nat.succ,Equiv,Prod,Equiv.Perm.decomposeFin,And.rightand 1 moreProof uses:
Eq.mp,And,congrArg,Eq.symm, Usa2018P6.usa2018p6_aux.card_fp_restrictPerm,Equiv.symm,Prod.mk,Fin.succ, Usa2018P6.usa2018p6_aux.card_fp_symm_succ,And.left, Usa2018P6.usa2018p6_aux.decomposeFin_eq_symm_partner26 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.card_extend_le_oneline 2106 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,HAdd.hAdd,OfNat.ofNat,Equiv.Perm,Function.Involutive,LE.le,Finset.card,Finset.filter,Eq,Finset.univ,Nat.succ,Equiv,Prod,Equiv.symm,Equiv.Perm.decomposeFin,Prod.mk,Fin.succ, Usa2018P6.usa2018p6_aux.extendPermProof uses:
And,Ne,Eq.mpr, Usa2018P6.usa2018p6_aux.restrictPerm, Usa2018P6.usa2018p6_aux.extendPerm_apply_self,id,congrArg,Eq.symm, Usa2018P6.usa2018p6_aux.card_fp_restrictPerm, Usa2018P6.usa2018p6_aux.restrictPerm_extendPerm,Eq.refl, Usa2018P6.usa2018p6_aux.card_fp_symm_succ, Usa2018P6.usa2018p6_aux.extendPerm_involutive20 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.invol_e0line 2117 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Eq,Function.Involutive,Prod.snd,Nat.succ,Equiv,Prod,Equiv.Perm.decomposeFinProof uses:
Iff.mp,Equiv.symm,Prod.mk, Usa2018P6.usa2018p6_aux.involutive_symm_zero,Eq.mp,congrArg, Usa2018P6.usa2018p6_aux.decomposeFin_eq_symm_zero18 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.fpf_e0line 2123 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,Eq,LE.le,Finset.card,Finset.filter,Finset.univ,Ne,Prod.snd,Nat.succ,Equiv,Prod,Equiv.Perm.decomposeFinProof uses:
Iff.mp,Equiv.symm,Prod.mk, Usa2018P6.usa2018p6_aux.card_le_one_symm_zero_iff,Eq.mp,congrArg, Usa2018P6.usa2018p6_aux.decomposeFin_eq_symm_zero24 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- def
Usa2018P6.usa2018p6_aux.fpfDecomposeEquivFixed-point-free involutions ofFin (n + 2)are in bijection with pairs of an elementj : Fin (n + 1)(the partner of0) and a fixed-point-free involution ofFin nline 2135 sourceSource documentation
Fixed-point-free involutions of
Fin (n + 2)are in bijection with pairs of an elementj : Fin (n + 1)(the partner of0) and a fixed-point-free involution ofFin n.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv, Usa2018P6.usa2018p6_aux.fpfSubtype,HAdd.hAdd,OfNat.ofNat,Prod,FinProof uses:
Equiv.mk,Prod.mk, Usa2018P6.usa2018p6_aux.partner,Equiv.Perm,And,Function.Involutive,Ne,Subtype.mk, Usa2018P6.usa2018p6_aux.restrictPerm,Prod.snd,Nat.succ,Equiv.Perm.decomposeFin,Equiv.symm,Fin.succ,Prod.fst, Usa2018P6.usa2018p6_aux.extendPerm16 instances, coercions and auxiliary constants left out.
Tactic trace: 20 steps
Open to load the checked before-and-after goal states.
noncomputable def fpfDecomposeEquiv (n : ℕ) : fpfSubtype (n + 2) ≃ Fin (n + 1) × fpfSubtype n where …Mentions: Usa2018P6.usa2018p6_aux.fpfSubtype
- abbrev
Usa2018P6.usa2018p6_aux.vtxSplitTypeThe two cases of involutions ofFin (n + 2)with at most one fixed point, according to whether0is fixed line 2172 sourceSource documentation
The two cases of involutions of
Fin (n + 2)with at most one fixed point, according to whether0is fixed.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
NatProof uses:
Sum,Subtype,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,And,Function.Involutive,LE.le,Finset.card,Finset.filter,Eq,Finset.univ,Ne11 instances, coercions and auxiliary constants left out.
abbrev vtxSplitType (n : ℕ) := …
- def
Usa2018P6.usa2018p6_aux.splitZeroEquivSplit involutions ofFin (n + 2)according to whether0is a fixed point line 2179 sourceSource documentation
Split involutions of
Fin (n + 2)according to whether0is a fixed point.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv, Usa2018P6.usa2018p6_aux.vtxSubtype,HAdd.hAdd,OfNat.ofNat, Usa2018P6.usa2018p6_aux.vtxSplitTypeProof uses:
Equiv.mk,dite,Eq,Fin,Equiv.Perm,And,Function.Involutive,LE.le,Finset.card,Finset.filter,Finset.univ,Sum.inl,Subtype,Ne,Subtype.mk,Not,Sum.inr,Sum.elim21 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
noncomputable def splitZeroEquiv (n : ℕ) : vtxSubtype (n + 2) ≃ vtxSplitType n where …Mentions: Usa2018P6.usa2018p6_aux.vtxSubtype, Usa2018P6.usa2018p6_aux.vtxSplitType
- def
Usa2018P6.usa2018p6_aux.vtxZeroEquivInvolutions ofFin (n + 2)with at most one fixed point that fix0are in bijection with fixed-point-free involutions ofFin (n + 1)line 2197 sourceSource documentation
Involutions of
Fin (n + 2)with at most one fixed point that fix0are in bijection with fixed-point-free involutions ofFin (n + 1).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv,Subtype,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,And,Function.Involutive,LE.le,Finset.card,Finset.filter,Eq,Finset.univ, Usa2018P6.usa2018p6_aux.fpfSubtypeProof uses:
Equiv.mk,Subtype.mk,Ne,Prod.snd,Nat.succ,Prod,Equiv.Perm.decomposeFin,Equiv.symm,Prod.mk29 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
noncomputable def vtxZeroEquiv (n : ℕ) : {σ : Equiv.Perm (Fin (n + 2)) // (Function.Involutive σ ∧ (Finset.univ.filter fun x => σ x = x).card ≤ 1) ∧ σ 0 = 0} ≃ fpfSubtype (n + 1) where …Mentions: Usa2018P6.usa2018p6_aux.fpfSubtype
- def
Usa2018P6.usa2018p6_aux.vtxSuccEquivDocumented declaration: vtxSuccEquiv line 2218 sourceSource documentation
Involutions of
Fin (n + 2)with at most one fixed point that move0are in bijection with pairs of an elementj : Fin (n + 1)and an involution ofFin nwith at most one fixed point.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv,Subtype,Equiv.Perm,Fin,HAdd.hAdd,OfNat.ofNat,And,Function.Involutive,LE.le,Finset.card,Finset.filter,Eq,Finset.univ,Ne,Prod, Usa2018P6.usa2018p6_aux.vtxSubtypeProof uses:
Equiv.mk,Prod.mk, Usa2018P6.usa2018p6_aux.partner,Subtype.mk, Usa2018P6.usa2018p6_aux.restrictPerm,Prod.snd,Nat.succ,Equiv.Perm.decomposeFin,Equiv.symm,Fin.succ,Prod.fst, Usa2018P6.usa2018p6_aux.extendPerm30 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
noncomputable def vtxSuccEquiv (n : ℕ) : {σ : Equiv.Perm (Fin (n + 2)) // (Function.Involutive σ ∧ (Finset.univ.filter fun x => σ x = x).card ≤ 1) ∧ σ 0 ≠ 0} ≃ Fin (n + 1) × vtxSubtype n where …Mentions: Usa2018P6.usa2018p6_aux.vtxSubtype
- def
Usa2018P6.usa2018p6_aux.vtxDecomposeEquivThe full decomposition for involutions with at most one fixed point line 2256 sourceSource documentation
The full decomposition for involutions with at most one fixed point.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Equiv, Usa2018P6.usa2018p6_aux.vtxSubtype,HAdd.hAdd,OfNat.ofNat,Sum, Usa2018P6.usa2018p6_aux.fpfSubtype,Prod,FinProof uses:
Equiv.trans, Usa2018P6.usa2018p6_aux.vtxSplitType, Usa2018P6.usa2018p6_aux.splitZeroEquiv,Equiv.sumCongr,Subtype,Equiv.Perm,And,Function.Involutive,LE.le,Finset.card,Finset.filter,Eq,Finset.univ,Ne, Usa2018P6.usa2018p6_aux.vtxZeroEquiv, Usa2018P6.usa2018p6_aux.vtxSuccEquiv14 instances, coercions and auxiliary constants left out.
noncomputable def vtxDecomposeEquiv (n : ℕ) : vtxSubtype (n + 2) ≃ fpfSubtype (n + 1) ⊕ Fin (n + 1) × vtxSubtype n := …Mentions: Usa2018P6.usa2018p6_aux.vtxSubtype, Usa2018P6.usa2018p6_aux.fpfSubtype
- theorem
Usa2018P6.usa2018p6_aux.fcard_succ_succline 2262 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq, Usa2018P6.usa2018p6_aux.fcard,HAdd.hAdd,OfNat.ofNat,HMul.hMulProof uses:
id,Eq.mpr,Fintype.card, Usa2018P6.usa2018p6_aux.fpfSubtype,Prod,Fin,congrArg,Fintype.card_congr, Usa2018P6.usa2018p6_aux.fpfDecomposeEquiv,Fintype.card_prod,Fintype.card_fin,Eq.refl13 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.vcard_succ_succline 2266 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq, Usa2018P6.usa2018p6_aux.vcard,HAdd.hAdd,OfNat.ofNat, Usa2018P6.usa2018p6_aux.fcard,HMul.hMulProof uses:
id,Fintype.card, Usa2018P6.usa2018p6_aux.vtxSubtype,Eq.mpr, Usa2018P6.usa2018p6_aux.fpfSubtype,Sum,Prod,Fin,congrArg,Fintype.card_congr, Usa2018P6.usa2018p6_aux.vtxDecomposeEquiv,Fintype.card_sum,Fintype.card_prod,Fintype.card_fin,Eq.refl15 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.fcard_zeroline 2271 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Nat, Usa2018P6.usa2018p6_aux.fcard,OfNat.ofNatProof uses:
Equiv, Usa2018P6.usa2018p6_aux.fpfSubtype,Equiv.Perm,Fin,Equiv.subtypeUnivEquiv,And,Function.Involutive,Ne,And.intro,Fin.elim0,id,Eq.mpr,Fintype.card,congrArg,Fintype.card_congr,Nat.factorial,Fintype.card_perm,Fintype.card_fin,Nat.factorial_zero,Eq.refl9 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.fcard_oneline 2277 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Nat, Usa2018P6.usa2018p6_aux.fcard,OfNat.ofNatProof uses:
id,IsEmpty, Usa2018P6.usa2018p6_aux.fpfSubtype,IsEmpty.mk,And.right,Function.Involutive,Fin,Equiv.Perm,And,Ne,Subtype.property,Fin.eq_zero,Fintype.card_of_isEmpty9 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.vcard_zeroline 2282 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Nat, Usa2018P6.usa2018p6_aux.vcard,OfNat.ofNatProof uses:
Equiv, Usa2018P6.usa2018p6_aux.vtxSubtype,Equiv.Perm,Fin,Equiv.subtypeUnivEquiv,And,Function.Involutive,LE.le,Finset.card,Finset.filter,Finset.univ,And.intro,Fin.elim0,Iff.mpr,Membership.mem,Finset,Finset.card_le_one,id,Eq.mpr,Fintype.cardand 7 more12 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.vcard_oneline 2289 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Nat, Usa2018P6.usa2018p6_aux.vcard,OfNat.ofNatProof uses:
Equiv.Perm,Fin,And,Function.Involutive,LE.le,Finset.card,Finset.filter,Finset.univ,And.intro,Eq.mpr,id,congrArg,Fin.eq_zero,Eq.refl,Iff.mpr,Membership.mem,Finset,Finset.card_le_one,Equiv, Usa2018P6.usa2018p6_aux.vtxSubtype and 7 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.fcard_parityline 2302 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,And,Even,Odd, Usa2018P6.usa2018p6_aux.fcard,Eq,OfNat.ofNatProof uses:
Nat.twoStepInduction,And.intro,Eq.mpr,id,congrArg, Usa2018P6.usa2018p6_aux.fcard_zero,odd_one,False.elim,Eq.mp,HMod.hMod,False,propext,Nat.odd_iff,Eq.trans,congrFun',Nat.mod_succ,Nat.even_iff, Usa2018P6.usa2018p6_aux.fcard_one,HAdd.hAdd,HMul.hMuland 7 more19 instances, coercions and auxiliary constants left out.
Tactic trace: 23 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.usa2018p6_aux.vcard_oddline 2326 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd, Usa2018P6.usa2018p6_aux.vcardProof uses:
Nat.twoStepInduction,Eq.mpr,OfNat.ofNat,id,Eq,congrArg, Usa2018P6.usa2018p6_aux.vcard_zero,odd_one, Usa2018P6.usa2018p6_aux.vcard_one,HAdd.hAdd, Usa2018P6.usa2018p6_aux.fcard,HMul.hMul, Usa2018P6.usa2018p6_aux.vcard_succ_succ,Even,Or,Nat.even_or_odd,Even.add_one,And.right, Usa2018P6.usa2018p6_aux.fcard_parity,Nat.zero_addand 5 more10 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P6.odd_card_vertexThe number of involutions ofFin nwith at most one fixed point is odd line 2344 sourceSource documentation
The number of involutions of
Fin nwith at most one fixed point is odd.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd,Fintype.card,Subtype,Equiv.Perm,Fin,And,Function.Involutive,LE.le,Finset.card,Finset.filter,Eq,Finset.univ,OfNat.ofNatProof uses: Usa2018P6.usa2018p6_aux.vcard_odd
13 instances, coercions and auxiliary constants left out.
theorem odd_card_vertex (n : ℕ) : Odd (Fintype.card {σ : Equiv.Perm (Fin n) // Function.Involutive σ ∧ (Finset.univ.filter fun x => σ x = x).card ≤ 1}) := … - lemma
Usa2018P6.sum_modEq_of_forallSummedNat.ModEqover a finset line 2352 sourceSource documentation
Summed
Nat.ModEqover a finset.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
DecidableEq,Finset,Nat,Membership.mem,Nat.ModEq,OfNat.ofNat,Finset.sumProof uses:
Finset.induction,EmptyCollection.emptyCollection,Nat.ModEq.rfl,Not,Insert.insert,Eq.mpr,HAdd.hAdd,id,Eq,congrArg,Finset.sum_insert,Nat.ModEq.add,Finset.mem_insert_self,Finset.mem_insert_of_mem15 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma sum_modEq_of_forall {ι : Type*} [DecidableEq ι] (s : Finset ι) (f g : ι → ℕ) (h : ∀ i ∈ s, f i ≡ g i [MOD 2]) : (∑ i ∈ s, f i) ≡ (∑ i ∈ s, g i) [MOD 2] := by … - problem
Usa2018P6.usa2018_p6USAMO 2018, Problem 6: the number of permutations of(1, …, n)whose ratiosxₖ/kare all distinct is odd for everyn ≥ 1line 2363 sourceSource documentation
USAMO 2018, Problem 6: the number of permutations of
(1, …, n)whose ratiosxₖ/kare all distinct is odd for everyn ≥ 1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,Odd,Fintype.card,Subtype,Equiv.Perm,Fin, Usa2018P6.ValidProof uses:
Nat.ModEq,And,Function.Involutive,Subtype.mk,Inv.inv, Usa2018P6.valid_inv,Subtype.property,Subtype.ext,id,Eq,inv_inv, Usa2018P6.card_modEq_of_involutive,Fintype.card_congr,Equiv.mk,And.intro,congrArg,HMul.hMul,Iff.mpr,mul_eq_one_iff_eq_inv,Eq.symmand 70 more68 instances, coercions and auxiliary constants left out.
Tactic trace: 77 steps
Open to load the checked before-and-after goal states.
problem usa2018_p6 (n : ℕ) (_hn : 1 ≤ n) : Odd (Fintype.card {σ : Equiv.Perm (Fin n) // Valid σ}) := by …Mentions: Usa2018P6.Valid