ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
⊢ IsCycle σ → (σ ∈ l ↔ ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a)
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
⊢ σ ∈ l ↔ IsCycle σ ∧ ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
suffices σ.IsCycle → (σ ∈ l ↔ ∀ (a : α) (_ : σ a ≠ a), σ a = l.prod a) by
  exact ⟨fun hσ => ⟨h1 σ hσ, (this (h1 σ hσ)).mp hσ⟩, fun hσ => (this hσ.1).mpr hσ.2⟩
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
⊢ σ ∈ l ↔ ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
⊢ IsCycle σ → (σ ∈ l ↔ ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a)
intro h3
no goals
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
this : IsCycle σ → (σ ∈ l ↔ ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a)
⊢ σ ∈ l ↔ IsCycle σ ∧ ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
exact ⟨fun hσ => ⟨h1 σ hσ, (this (h1 σ hσ)).mp hσ⟩, fun hσ => (this hσ.1).mpr hσ.2⟩
case intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
⊢ σ ∈ l ↔ ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
⊢ σ ∈ l ↔ ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
cases nonempty_fintype α
case intro.mp
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
⊢ σ ∈ l → ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a

case intro.mpr
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
⊢ (∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a) → σ ∈ l
case intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
⊢ σ ∈ l ↔ ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
constructor
case intro.mp
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : σ ∈ l
a : α
ha : ↑σ a ≠ a
⊢ ↑σ a = ↑(List.prod l) a
case intro.mp
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
⊢ σ ∈ l → ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
intro h a ha
no goals
case intro.mp
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : σ ∈ l
a : α
ha : ↑σ a ≠ a
⊢ ↑σ a = ↑(List.prod l) a
exact eq_on_support_mem_disjoint h h2 _ (mem_support.mpr ha)
case intro.mpr
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
⊢ σ ∈ l
case intro.mpr
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
⊢ (∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a) → σ ∈ l
intro h
case intro.mpr
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
⊢ σ ∈ l
case intro.mpr
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
⊢ σ ∈ l
have hσl : σ.support ⊆ l.prod.support := by
  intro x hx
  rw [mem_support] at hx
  rwa [mem_support, ← h _ hx]
case intro.mpr.intro.intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha : ↑σ a ≠ a
⊢ σ ∈ l
case intro.mpr
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
⊢ σ ∈ l
obtain ⟨a, ha, -⟩ := id h3
case intro.mpr.intro.intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
⊢ σ ∈ l
case intro.mpr.intro.intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha : ↑σ a ≠ a
⊢ σ ∈ l
rw [← mem_support] at ha
case intro.mpr.intro.intro.intro.intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
⊢ σ ∈ l
case intro.mpr.intro.intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
⊢ σ ∈ l
obtain ⟨τ, hτ, hτa⟩ := exists_mem_support_of_mem_support_prod (hσl ha)
case intro.mpr.intro.intro.intro.intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
⊢ σ ∈ l
case intro.mpr.intro.intro.intro.intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
⊢ σ ∈ l
have hτl : ∀ x ∈ τ.support, τ x = l.prod x := eq_on_support_mem_disjoint hτ h2
case intro.mpr.intro.intro.intro.intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
key : ∀ (x : α), x ∈ support σ ∩ support τ → ↑σ x = ↑τ x
⊢ σ ∈ l
case intro.mpr.intro.intro.intro.intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
⊢ σ ∈ l
have key : ∀ x ∈ σ.support ∩ τ.support, σ x = τ x := by
  intro x hx
  rw [h x (mem_support.mp (mem_of_mem_inter_left hx)), hτl x (mem_of_mem_inter_right hx)]
case h.e'_4
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
key : ∀ (x : α), x ∈ support σ ∩ support τ → ↑σ x = ↑τ x
⊢ σ = τ
case intro.mpr.intro.intro.intro.intro
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
key : ∀ (x : α), x ∈ support σ ∩ support τ → ↑σ x = ↑τ x
⊢ σ ∈ l
convert hτ
case h.e'_4
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
key : ∀ (x : α), x ∈ support σ ∩ support τ → ↑σ x = ↑τ x
⊢ ↑σ a = ↑τ a
case h.e'_4
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
key : ∀ (x : α), x ∈ support σ ∩ support τ → ↑σ x = ↑τ x
⊢ σ = τ
refine' h3.eq_on_support_inter_nonempty_congr (h1 _ hτ) key _ ha
no goals
case h.e'_4
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
key : ∀ (x : α), x ∈ support σ ∩ support τ → ↑σ x = ↑τ x
⊢ ↑σ a = ↑τ a
exact key a (mem_inter_of_mem ha hτa)
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
x : α
hx : x ∈ support σ
⊢ x ∈ support (List.prod l)
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
⊢ support σ ⊆ support (List.prod l)
intro x hx
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
x : α
hx : ↑σ x ≠ x
⊢ x ∈ support (List.prod l)
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
x : α
hx : x ∈ support σ
⊢ x ∈ support (List.prod l)
rw [mem_support] at hx
no goals
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
x : α
hx : ↑σ x ≠ x
⊢ x ∈ support (List.prod l)
rwa [mem_support, ← h _ hx]
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
x : α
hx : x ∈ support σ ∩ support τ
⊢ ↑σ x = ↑τ x
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
⊢ ∀ (x : α), x ∈ support σ ∩ support τ → ↑σ x = ↑τ x
intro x hx
no goals
ι : Type ?u.2666441
α✝ : Type ?u.2666444
β : Type ?u.2666447
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : Finite α
l : List (Perm α)
h1 : ∀ (σ : Perm α), σ ∈ l → IsCycle σ
h2 : List.Pairwise Disjoint l
σ : Perm α
h3 : IsCycle σ
val✝ : Fintype α
h : ∀ (a : α), ↑σ a ≠ a → ↑σ a = ↑(List.prod l) a
hσl : support σ ⊆ support (List.prod l)
a : α
ha✝ : ↑σ a ≠ a
ha : a ∈ support σ
τ : Perm α
hτ : τ ∈ l
hτa : a ∈ support τ
hτl : ∀ (x : α), x ∈ support τ → ↑τ x = ↑(List.prod l) x
x : α
hx : x ∈ support σ ∩ support τ
⊢ ↑σ x = ↑τ x
rw [h x (mem_support.mp (mem_of_mem_inter_left hx)), hτl x (mem_of_mem_inter_right hx)]