group_theory.specific_groups.alternating
⟷
Mathlib.GroupTheory.SpecificGroups.Alternating
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -130,7 +130,7 @@ theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ
obtain ⟨σ, hσ⟩ := σ
obtain ⟨τ, hτ⟩ := τ
obtain ⟨π, hπ⟩ := isConj_iff.1 hc
- rw [Subtype.coe_mk, Subtype.coe_mk] at hπ
+ rw [Subtype.coe_mk, Subtype.coe_mk] at hπ
cases' Int.units_eq_one_or (SignType.sign π) with h h
· rw [isConj_iff]
refine' ⟨⟨π, mem_alternating_group.mp h⟩, Subtype.val_injective _⟩
@@ -178,17 +178,17 @@ theorem closure_three_cycles_eq_alternating :
l.Prod ∈ closure {σ : perm α | is_three_cycle σ}
· obtain ⟨l, rfl, hl⟩ := trunc_swap_factors σ
obtain ⟨n, hn⟩ := (prod_list_swap_mem_alternating_group_iff_even_length hl).1 hσ
- rw [← two_mul] at hn
+ rw [← two_mul] at hn
exact hind n l hl hn
intro n
induction' n with n ih <;> intro l hl hn
· simp [List.length_eq_zero.1 hn, one_mem]
- rw [Nat.mul_succ] at hn
+ rw [Nat.mul_succ] at hn
obtain ⟨a, l, rfl⟩ := l.exists_of_length_succ hn
- rw [List.length_cons, Nat.succ_inj] at hn
+ rw [List.length_cons, Nat.succ_inj] at hn
obtain ⟨b, l, rfl⟩ := l.exists_of_length_succ hn
rw [List.prod_cons, List.prod_cons, ← mul_assoc]
- rw [List.length_cons, Nat.succ_inj] at hn
+ rw [List.length_cons, Nat.succ_inj] at hn
exact
mul_mem
(is_swap.mul_mem_closure_three_cycles (hl a (List.mem_cons_self a _))
@@ -321,13 +321,13 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
IsConj (swap 0 4 * swap 1 3) g :=
by
have h := g.support.card_le_univ
- rw [← Multiset.eq_replicate_card] at h2
- rw [← sum_cycle_type, h2, Multiset.sum_replicate, smul_eq_mul] at h
+ rw [← Multiset.eq_replicate_card] at h2
+ rw [← sum_cycle_type, h2, Multiset.sum_replicate, smul_eq_mul] at h
have h : g.cycle_type.card ≤ 3 := le_of_mul_le_mul_right (le_trans h (by decide)) (by decide)
- rw [mem_alternating_group, sign_of_cycle_type, h2] at ha
- norm_num at ha
+ rw [mem_alternating_group, sign_of_cycle_type, h2] at ha
+ norm_num at ha
rw [pow_add, pow_mul, Int.units_pow_two, one_mul, Units.ext_iff, Units.val_one,
- Units.val_pow_eq_pow_val, Units.coe_neg_one, neg_one_pow_eq_one_iff_even _] at ha
+ Units.val_pow_eq_pow_val, Units.coe_neg_one, neg_one_pow_eq_one_iff_even _] at ha
swap; · decide
rw [is_conj_iff_cycle_type_eq, h2]
interval_cases
@@ -353,21 +353,21 @@ instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
⟨exists_pair_ne _, fun H => by
intro Hn
refine' or_not.imp id fun Hb => _
- rw [eq_bot_iff_forall] at Hb
- push_neg at Hb
+ rw [eq_bot_iff_forall] at Hb
+ push_neg at Hb
obtain ⟨⟨g, gA⟩, gH, g1⟩ : ∃ x : ↥(alternatingGroup (Fin 5)), x ∈ H ∧ x ≠ 1 := Hb
-- `g` is a non-identity alternating permutation in a normal subgroup `H` of $A_5$.
- rw [← SetLike.mem_coe, ← Set.singleton_subset_iff] at gH
+ rw [← SetLike.mem_coe, ← Set.singleton_subset_iff] at gH
refine' eq_top_iff.2 (le_trans (ge_of_eq _) (normal_closure_le_normal gH))
-- It suffices to show that the normal closure of `g` in $A_5$ is $A_5$.
by_cases h2 : ∀ n ∈ g.cycle_type, n = 2
· -- If the cycle decomposition of `g` consists entirely of swaps, then the cycle type is $(2,2)$.
-- This means that it is conjugate to $(04)(13)$, whose normal closure is $A_5$.
- rw [Ne.def, Subtype.ext_iff] at g1
+ rw [Ne.def, Subtype.ext_iff] at g1
exact
(is_conj_swap_mul_swap_of_cycle_type_two gA g1 h2).normalClosure_eq_top_of
normal_closure_swap_mul_swap_five
- push_neg at h2
+ push_neg at h2
obtain ⟨n, ng, n2⟩ : ∃ n : ℕ, n ∈ g.cycle_type ∧ n ≠ 2 := h2
-- `n` is the size of a non-swap cycle in the decomposition of `g`.
have n2' : 2 < n := lt_of_le_of_ne (two_le_of_mem_cycle_type ng) n2.symm
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -185,10 +185,10 @@ theorem closure_three_cycles_eq_alternating :
· simp [List.length_eq_zero.1 hn, one_mem]
rw [Nat.mul_succ] at hn
obtain ⟨a, l, rfl⟩ := l.exists_of_length_succ hn
- rw [List.length_cons, Nat.succ_inj'] at hn
+ rw [List.length_cons, Nat.succ_inj] at hn
obtain ⟨b, l, rfl⟩ := l.exists_of_length_succ hn
rw [List.prod_cons, List.prod_cons, ← mul_assoc]
- rw [List.length_cons, Nat.succ_inj'] at hn
+ rw [List.length_cons, Nat.succ_inj] at hn
exact
mul_mem
(is_swap.mul_mem_closure_three_cycles (hl a (List.mem_cons_self a _))
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2021 Aaron Anderson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson
-/
-import Mathbin.Algebra.Group.ConjFinite
-import Mathbin.GroupTheory.Perm.Fin
-import Mathbin.GroupTheory.Subgroup.Simple
-import Mathbin.Tactic.IntervalCases
+import Algebra.Group.ConjFinite
+import GroupTheory.Perm.Fin
+import GroupTheory.Subgroup.Simple
+import Tactic.IntervalCases
#align_import group_theory.specific_groups.alternating from "leanprover-community/mathlib"@"9a48a083b390d9b84a71efbdc4e8dfa26a687104"
mathlib commit https://github.com/leanprover-community/mathlib/commit/442a83d738cb208d3600056c489be16900ba701d
@@ -207,7 +207,7 @@ theorem IsThreeCycle.alternating_normalClosure (h5 : 5 ≤ Fintype.card α) {f :
(by
have hi : Function.Injective (alternatingGroup α).Subtype := Subtype.coe_injective
refine' eq_top_iff.1 (map_injective hi (le_antisymm (map_mono le_top) _))
- rw [← MonoidHom.range_eq_map, subtype_range, normalClosure, MonoidHom.map_closure]
+ rw [← MonoidHom.range_eq_map, subtype_range, normal_closure, MonoidHom.map_closure]
refine' (le_of_eq closure_three_cycles_eq_alternating.symm).trans (closure_mono _)
intro g h
obtain ⟨c, rfl⟩ := isConj_iff.1 (is_conj_iff_cycle_type_eq.2 (hf.trans h.symm))
@@ -276,7 +276,7 @@ theorem normalClosure_finRotate_five :
rw [Set.singleton_subset_iff, SetLike.mem_coe]
have h :
(⟨finRotate 5, fin_rotate_bit1_mem_alternating_group⟩ : alternatingGroup (Fin 5)) ∈
- normalClosure _ :=
+ normal_closure _ :=
SetLike.mem_coe.1 (subset_normal_closure (Set.mem_singleton _))
exact
mul_mem
@@ -306,7 +306,7 @@ theorem normalClosure_swap_mul_swap_five :
rw [eq_top_iff, ← normal_closure_fin_rotate_five]
refine' normal_closure_le_normal _
rw [Set.singleton_subset_iff, SetLike.mem_coe, ← h5]
- have h : g2 ∈ normalClosure {g2} :=
+ have h : g2 ∈ normal_closure {g2} :=
SetLike.mem_coe.1 (subset_normal_closure (Set.mem_singleton _))
exact mul_mem (subgroup.normal_closure_normal.conj_mem _ h g1) (inv_mem h)
#align alternating_group.normal_closure_swap_mul_swap_five alternatingGroup.normalClosure_swap_mul_swap_five
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2021 Aaron Anderson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson
-
-! This file was ported from Lean 3 source module group_theory.specific_groups.alternating
-! leanprover-community/mathlib commit 9a48a083b390d9b84a71efbdc4e8dfa26a687104
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Group.ConjFinite
import Mathbin.GroupTheory.Perm.Fin
import Mathbin.GroupTheory.Subgroup.Simple
import Mathbin.Tactic.IntervalCases
+#align_import group_theory.specific_groups.alternating from "leanprover-community/mathlib"@"9a48a083b390d9b84a71efbdc4e8dfa26a687104"
+
/-!
# Alternating Groups
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -65,17 +65,22 @@ instance [Subsingleton α] : Unique (alternatingGroup α) :=
variable {α}
+#print alternatingGroup_eq_sign_ker /-
theorem alternatingGroup_eq_sign_ker : alternatingGroup α = sign.ker :=
rfl
#align alternating_group_eq_sign_ker alternatingGroup_eq_sign_ker
+-/
namespace Equiv.Perm
+#print Equiv.Perm.mem_alternatingGroup /-
@[simp]
theorem mem_alternatingGroup {f : Perm α} : f ∈ alternatingGroup α ↔ sign f = 1 :=
sign.mem_ker
#align equiv.perm.mem_alternating_group Equiv.Perm.mem_alternatingGroup
+-/
+#print Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_length /-
theorem prod_list_swap_mem_alternatingGroup_iff_even_length {l : List (Perm α)}
(hl : ∀ g ∈ l, IsSwap g) : l.Prod ∈ alternatingGroup α ↔ Even l.length :=
by
@@ -83,19 +88,25 @@ theorem prod_list_swap_mem_alternatingGroup_iff_even_length {l : List (Perm α)}
Units.coe_neg_one, neg_one_pow_eq_one_iff_even]
decide
#align equiv.perm.prod_list_swap_mem_alternating_group_iff_even_length Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_length
+-/
+#print Equiv.Perm.IsThreeCycle.mem_alternatingGroup /-
theorem IsThreeCycle.mem_alternatingGroup {f : Perm α} (h : IsThreeCycle f) :
f ∈ alternatingGroup α :=
mem_alternatingGroup.2 h.sign
#align equiv.perm.is_three_cycle.mem_alternating_group Equiv.Perm.IsThreeCycle.mem_alternatingGroup
+-/
+#print Equiv.Perm.finRotate_bit1_mem_alternatingGroup /-
theorem finRotate_bit1_mem_alternatingGroup {n : ℕ} :
finRotate (bit1 n) ∈ alternatingGroup (Fin (bit1 n)) := by
rw [mem_alternating_group, bit1, sign_finRotate, pow_bit0', Int.units_mul_self, one_pow]
#align equiv.perm.fin_rotate_bit1_mem_alternating_group Equiv.Perm.finRotate_bit1_mem_alternatingGroup
+-/
end Equiv.Perm
+#print two_mul_card_alternatingGroup /-
theorem two_mul_card_alternatingGroup [Nontrivial α] :
2 * card (alternatingGroup α) = card (Perm α) :=
by
@@ -103,6 +114,7 @@ theorem two_mul_card_alternatingGroup [Nontrivial α] :
rw [← Fintype.card_units_int, ← Fintype.card_congr this]
exact (Subgroup.card_eq_card_quotient_mul_card_subgroup _).symm
#align two_mul_card_alternating_group two_mul_card_alternatingGroup
+-/
namespace alternatingGroup
@@ -114,6 +126,7 @@ instance normal : (alternatingGroup α).Normal :=
#align alternating_group.normal alternatingGroup.normal
-/
+#print alternatingGroup.isConj_of /-
theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ : Perm α))
(hσ : (σ : Perm α).support.card + 2 ≤ Fintype.card α) : IsConj σ τ :=
by
@@ -141,12 +154,15 @@ theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ
rw [mul_assoc π _ σ, hd.commute.eq, coe_inv, coe_mk]
simp [mul_assoc]
#align alternating_group.is_conj_of alternatingGroup.isConj_of
+-/
+#print alternatingGroup.isThreeCycle_isConj /-
theorem isThreeCycle_isConj (h5 : 5 ≤ Fintype.card α) {σ τ : alternatingGroup α}
(hσ : IsThreeCycle (σ : Perm α)) (hτ : IsThreeCycle (τ : Perm α)) : IsConj σ τ :=
alternatingGroup.isConj_of (isConj_iff_cycleType_eq.2 (hσ.trans hτ.symm))
(by rwa [hσ.card_support])
#align alternating_group.is_three_cycle_is_conj alternatingGroup.isThreeCycle_isConj
+-/
end alternatingGroup
@@ -184,6 +200,7 @@ theorem closure_three_cycles_eq_alternating :
#align equiv.perm.closure_three_cycles_eq_alternating Equiv.Perm.closure_three_cycles_eq_alternating
-/
+#print Equiv.Perm.IsThreeCycle.alternating_normalClosure /-
/-- A key lemma to prove $A_5$ is simple. Shows that any normal subgroup of an alternating group on
at least 5 elements is the entire alternating group if it contains a 3-cycle. -/
theorem IsThreeCycle.alternating_normalClosure (h5 : 5 ≤ Fintype.card α) {f : Perm α}
@@ -201,6 +218,7 @@ theorem IsThreeCycle.alternating_normalClosure (h5 : 5 ≤ Fintype.card α) {f :
rw [Group.mem_conjugatesOfSet_iff]
exact ⟨⟨f, hf.mem_alternating_group⟩, Set.mem_singleton _, is_three_cycle_is_conj h5 hf h⟩)
#align equiv.perm.is_three_cycle.alternating_normal_closure Equiv.Perm.IsThreeCycle.alternating_normalClosure
+-/
#print Equiv.Perm.isThreeCycle_sq_of_three_mem_cycleType_five /-
/-- Part of proving $A_5$ is simple. Shows that the square of any element of $A_5$ with a 3-cycle in
@@ -230,6 +248,7 @@ namespace alternatingGroup
open Equiv.Perm
+#print alternatingGroup.nontrivial_of_three_le_card /-
theorem nontrivial_of_three_le_card (h3 : 3 ≤ card α) : Nontrivial (alternatingGroup α) :=
by
haveI := Fintype.one_lt_card_iff_nontrivial.1 (lt_trans (by decide) h3)
@@ -238,10 +257,12 @@ theorem nontrivial_of_three_le_card (h3 : 3 ≤ card α) : Nontrivial (alternati
rw [two_mul_card_alternatingGroup, card_perm, ← Nat.succ_le_iff]
exact le_trans h3 (card α).self_le_factorial
#align alternating_group.nontrivial_of_three_le_card alternatingGroup.nontrivial_of_three_le_card
+-/
instance {n : ℕ} : Nontrivial (alternatingGroup (Fin (n + 3))) :=
nontrivial_of_three_le_card (by rw [card_fin]; exact le_add_left (le_refl 3))
+#print alternatingGroup.normalClosure_finRotate_five /-
/-- The normal closure of the 5-cycle `fin_rotate 5` within $A_5$ is the whole group. This will be
used to show that the normal closure of any 5-cycle within $A_5$ is the whole group. -/
theorem normalClosure_finRotate_five :
@@ -266,7 +287,9 @@ theorem normalClosure_finRotate_five :
⟨Fin.cycleRange 2, fin.is_three_cycle_cycle_range_two.mem_alternating_group⟩)
(inv_mem h))
#align alternating_group.normal_closure_fin_rotate_five alternatingGroup.normalClosure_finRotate_five
+-/
+#print alternatingGroup.normalClosure_swap_mul_swap_five /-
/-- The normal closure of $(04)(13)$ within $A_5$ is the whole group. This will be
used to show that the normal closure of any permutation of cycle type $(2,2)$ is the whole group.
-/
@@ -290,7 +313,9 @@ theorem normalClosure_swap_mul_swap_five :
SetLike.mem_coe.1 (subset_normal_closure (Set.mem_singleton _))
exact mul_mem (subgroup.normal_closure_normal.conj_mem _ h g1) (inv_mem h)
#align alternating_group.normal_closure_swap_mul_swap_five alternatingGroup.normalClosure_swap_mul_swap_five
+-/
+#print alternatingGroup.isConj_swap_mul_swap_of_cycleType_two /-
/-- Shows that any non-identity element of $A_5$ whose cycle decomposition consists only of swaps
is conjugate to $(04)(13)$. This is used to show that the normal closure of such a permutation
in $A_5$ is $A_5$. -/
@@ -322,7 +347,9 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
· contrapose! ha
simp [h_1]
#align alternating_group.is_conj_swap_mul_swap_of_cycle_type_two alternatingGroup.isConj_swap_mul_swap_of_cycleType_two
+-/
+#print alternatingGroup.isSimpleGroup_five /-
/-- Shows that $A_5$ is simple by taking an arbitrary non-identity element and showing by casework
on its cycle type that its normal closure is all of $A_5$. -/
instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
@@ -373,6 +400,7 @@ instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
refine' (is_conj_iff_cycle_type_eq.2 _).normalClosure_eq_top_of normal_closure_fin_rotate_five
rw [cycle_type_of_card_le_mem_cycle_type_add_two (by decide) ng, cycleType_finRotate]⟩
#align alternating_group.is_simple_group_five alternatingGroup.isSimpleGroup_five
+-/
end alternatingGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -193,7 +193,7 @@ theorem IsThreeCycle.alternating_normalClosure (h5 : 5 ≤ Fintype.card α) {f :
(by
have hi : Function.Injective (alternatingGroup α).Subtype := Subtype.coe_injective
refine' eq_top_iff.1 (map_injective hi (le_antisymm (map_mono le_top) _))
- rw [← MonoidHom.range_eq_map, subtype_range, normal_closure, MonoidHom.map_closure]
+ rw [← MonoidHom.range_eq_map, subtype_range, normalClosure, MonoidHom.map_closure]
refine' (le_of_eq closure_three_cycles_eq_alternating.symm).trans (closure_mono _)
intro g h
obtain ⟨c, rfl⟩ := isConj_iff.1 (is_conj_iff_cycle_type_eq.2 (hf.trans h.symm))
@@ -258,7 +258,7 @@ theorem normalClosure_finRotate_five :
rw [Set.singleton_subset_iff, SetLike.mem_coe]
have h :
(⟨finRotate 5, fin_rotate_bit1_mem_alternating_group⟩ : alternatingGroup (Fin 5)) ∈
- normal_closure _ :=
+ normalClosure _ :=
SetLike.mem_coe.1 (subset_normal_closure (Set.mem_singleton _))
exact
mul_mem
@@ -286,7 +286,7 @@ theorem normalClosure_swap_mul_swap_five :
rw [eq_top_iff, ← normal_closure_fin_rotate_five]
refine' normal_closure_le_normal _
rw [Set.singleton_subset_iff, SetLike.mem_coe, ← h5]
- have h : g2 ∈ normal_closure {g2} :=
+ have h : g2 ∈ normalClosure {g2} :=
SetLike.mem_coe.1 (subset_normal_closure (Set.mem_singleton _))
exact mul_mem (subgroup.normal_closure_normal.conj_mem _ h g1) (inv_mem h)
#align alternating_group.normal_closure_swap_mul_swap_five alternatingGroup.normalClosure_swap_mul_swap_five
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -99,7 +99,7 @@ end Equiv.Perm
theorem two_mul_card_alternatingGroup [Nontrivial α] :
2 * card (alternatingGroup α) = card (Perm α) :=
by
- let this := (QuotientGroup.quotientKerEquivOfSurjective _ (sign_surjective α)).toEquiv
+ let this.1 := (QuotientGroup.quotientKerEquivOfSurjective _ (sign_surjective α)).toEquiv
rw [← Fintype.card_units_int, ← Fintype.card_congr this]
exact (Subgroup.card_eq_card_quotient_mul_card_subgroup _).symm
#align two_mul_card_alternating_group two_mul_card_alternatingGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -157,12 +157,12 @@ open alternatingGroup
#print Equiv.Perm.closure_three_cycles_eq_alternating /-
@[simp]
theorem closure_three_cycles_eq_alternating :
- closure { σ : Perm α | IsThreeCycle σ } = alternatingGroup α :=
+ closure {σ : Perm α | IsThreeCycle σ} = alternatingGroup α :=
closure_eq_of_le _ (fun σ hσ => mem_alternatingGroup.2 hσ.sign) fun σ hσ =>
by
suffices hind :
∀ (n : ℕ) (l : List (perm α)) (hl : ∀ g, g ∈ l → is_swap g) (hn : l.length = 2 * n),
- l.Prod ∈ closure { σ : perm α | is_three_cycle σ }
+ l.Prod ∈ closure {σ : perm α | is_three_cycle σ}
· obtain ⟨l, rfl, hl⟩ := trunc_swap_factors σ
obtain ⟨n, hn⟩ := (prod_list_swap_mem_alternating_group_iff_even_length hl).1 hσ
rw [← two_mul] at hn
@@ -330,7 +330,7 @@ instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
intro Hn
refine' or_not.imp id fun Hb => _
rw [eq_bot_iff_forall] at Hb
- push_neg at Hb
+ push_neg at Hb
obtain ⟨⟨g, gA⟩, gH, g1⟩ : ∃ x : ↥(alternatingGroup (Fin 5)), x ∈ H ∧ x ≠ 1 := Hb
-- `g` is a non-identity alternating permutation in a normal subgroup `H` of $A_5$.
rw [← SetLike.mem_coe, ← Set.singleton_subset_iff] at gH
@@ -343,7 +343,7 @@ instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
exact
(is_conj_swap_mul_swap_of_cycle_type_two gA g1 h2).normalClosure_eq_top_of
normal_closure_swap_mul_swap_five
- push_neg at h2
+ push_neg at h2
obtain ⟨n, ng, n2⟩ : ∃ n : ℕ, n ∈ g.cycle_type ∧ n ≠ 2 := h2
-- `n` is the size of a non-swap cycle in the decomposition of `g`.
have n2' : 2 < n := lt_of_le_of_ne (two_le_of_mem_cycle_type ng) n2.symm
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -55,7 +55,8 @@ variable (α : Type _) [Fintype α] [DecidableEq α]
/-- The alternating group on a finite type, realized as a subgroup of `equiv.perm`.
For $A_n$, use `alternating_group (fin n)`. -/
def alternatingGroup : Subgroup (Perm α) :=
- sign.ker deriving Fintype
+ sign.ker
+deriving Fintype
#align alternating_group alternatingGroup
-/
@@ -119,7 +120,7 @@ theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ
obtain ⟨σ, hσ⟩ := σ
obtain ⟨τ, hτ⟩ := τ
obtain ⟨π, hπ⟩ := isConj_iff.1 hc
- rw [Subtype.coe_mk, Subtype.coe_mk] at hπ
+ rw [Subtype.coe_mk, Subtype.coe_mk] at hπ
cases' Int.units_eq_one_or (SignType.sign π) with h h
· rw [isConj_iff]
refine' ⟨⟨π, mem_alternating_group.mp h⟩, Subtype.val_injective _⟩
@@ -164,17 +165,17 @@ theorem closure_three_cycles_eq_alternating :
l.Prod ∈ closure { σ : perm α | is_three_cycle σ }
· obtain ⟨l, rfl, hl⟩ := trunc_swap_factors σ
obtain ⟨n, hn⟩ := (prod_list_swap_mem_alternating_group_iff_even_length hl).1 hσ
- rw [← two_mul] at hn
+ rw [← two_mul] at hn
exact hind n l hl hn
intro n
induction' n with n ih <;> intro l hl hn
· simp [List.length_eq_zero.1 hn, one_mem]
- rw [Nat.mul_succ] at hn
+ rw [Nat.mul_succ] at hn
obtain ⟨a, l, rfl⟩ := l.exists_of_length_succ hn
- rw [List.length_cons, Nat.succ_inj'] at hn
+ rw [List.length_cons, Nat.succ_inj'] at hn
obtain ⟨b, l, rfl⟩ := l.exists_of_length_succ hn
rw [List.prod_cons, List.prod_cons, ← mul_assoc]
- rw [List.length_cons, Nat.succ_inj'] at hn
+ rw [List.length_cons, Nat.succ_inj'] at hn
exact
mul_mem
(is_swap.mul_mem_closure_three_cycles (hl a (List.mem_cons_self a _))
@@ -298,13 +299,13 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
IsConj (swap 0 4 * swap 1 3) g :=
by
have h := g.support.card_le_univ
- rw [← Multiset.eq_replicate_card] at h2
- rw [← sum_cycle_type, h2, Multiset.sum_replicate, smul_eq_mul] at h
+ rw [← Multiset.eq_replicate_card] at h2
+ rw [← sum_cycle_type, h2, Multiset.sum_replicate, smul_eq_mul] at h
have h : g.cycle_type.card ≤ 3 := le_of_mul_le_mul_right (le_trans h (by decide)) (by decide)
- rw [mem_alternating_group, sign_of_cycle_type, h2] at ha
- norm_num at ha
+ rw [mem_alternating_group, sign_of_cycle_type, h2] at ha
+ norm_num at ha
rw [pow_add, pow_mul, Int.units_pow_two, one_mul, Units.ext_iff, Units.val_one,
- Units.val_pow_eq_pow_val, Units.coe_neg_one, neg_one_pow_eq_one_iff_even _] at ha
+ Units.val_pow_eq_pow_val, Units.coe_neg_one, neg_one_pow_eq_one_iff_even _] at ha
swap; · decide
rw [is_conj_iff_cycle_type_eq, h2]
interval_cases
@@ -328,21 +329,21 @@ instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
⟨exists_pair_ne _, fun H => by
intro Hn
refine' or_not.imp id fun Hb => _
- rw [eq_bot_iff_forall] at Hb
- push_neg at Hb
+ rw [eq_bot_iff_forall] at Hb
+ push_neg at Hb
obtain ⟨⟨g, gA⟩, gH, g1⟩ : ∃ x : ↥(alternatingGroup (Fin 5)), x ∈ H ∧ x ≠ 1 := Hb
-- `g` is a non-identity alternating permutation in a normal subgroup `H` of $A_5$.
- rw [← SetLike.mem_coe, ← Set.singleton_subset_iff] at gH
+ rw [← SetLike.mem_coe, ← Set.singleton_subset_iff] at gH
refine' eq_top_iff.2 (le_trans (ge_of_eq _) (normal_closure_le_normal gH))
-- It suffices to show that the normal closure of `g` in $A_5$ is $A_5$.
by_cases h2 : ∀ n ∈ g.cycle_type, n = 2
· -- If the cycle decomposition of `g` consists entirely of swaps, then the cycle type is $(2,2)$.
-- This means that it is conjugate to $(04)(13)$, whose normal closure is $A_5$.
- rw [Ne.def, Subtype.ext_iff] at g1
+ rw [Ne.def, Subtype.ext_iff] at g1
exact
(is_conj_swap_mul_swap_of_cycle_type_two gA g1 h2).normalClosure_eq_top_of
normal_closure_swap_mul_swap_five
- push_neg at h2
+ push_neg at h2
obtain ⟨n, ng, n2⟩ : ∃ n : ℕ, n ∈ g.cycle_type ∧ n ≠ 2 := h2
-- `n` is the size of a non-swap cycle in the decomposition of `g`.
have n2' : 2 < n := lt_of_le_of_ne (two_le_of_mem_cycle_type ng) n2.symm
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -64,35 +64,17 @@ instance [Subsingleton α] : Unique (alternatingGroup α) :=
variable {α}
-/- warning: alternating_group_eq_sign_ker -> alternatingGroup_eq_sign_ker is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], Eq.{succ u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)) (MonoidHom.ker.{u1, 0} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], Eq.{succ u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)) (MonoidHom.ker.{u1, 0} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1))
-Case conversion may be inaccurate. Consider using '#align alternating_group_eq_sign_ker alternatingGroup_eq_sign_kerₓ'. -/
theorem alternatingGroup_eq_sign_ker : alternatingGroup α = sign.ker :=
rfl
#align alternating_group_eq_sign_ker alternatingGroup_eq_sign_ker
namespace Equiv.Perm
-/- warning: equiv.perm.mem_alternating_group -> Equiv.Perm.mem_alternatingGroup is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, Iff (Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Eq.{1} (Units.{0} Int Int.monoid) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{succ u1} α) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1) f) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, Iff (Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (fun (_x : Equiv.Perm.{succ u1} α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{u1} (Equiv.Perm.{succ u1} α) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1) f) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt)))))))))
-Case conversion may be inaccurate. Consider using '#align equiv.perm.mem_alternating_group Equiv.Perm.mem_alternatingGroupₓ'. -/
@[simp]
theorem mem_alternatingGroup {f : Perm α} : f ∈ alternatingGroup α ↔ sign f = 1 :=
sign.mem_ker
#align equiv.perm.mem_alternating_group Equiv.Perm.mem_alternatingGroup
-/- warning: equiv.perm.prod_list_swap_mem_alternating_group_iff_even_length -> Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_length is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {l : List.{u1} (Equiv.Perm.{succ u1} α)}, (forall (g : Equiv.Perm.{succ u1} α), (Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (List.{u1} (Equiv.Perm.{succ u1} α)) (List.hasMem.{u1} (Equiv.Perm.{succ u1} α)) g l) -> (Equiv.Perm.IsSwap.{u1} α (fun (a : α) (b : α) => _inst_2 a b) g)) -> (Iff (Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (List.prod.{u1} (Equiv.Perm.{succ u1} α) (MulOneClass.toHasMul.{u1} (Equiv.Perm.{succ u1} α) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) (MulOneClass.toHasOne.{u1} (Equiv.Perm.{succ u1} α) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) l) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Even.{0} Nat Nat.hasAdd (List.length.{u1} (Equiv.Perm.{succ u1} α) l)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {l : List.{u1} (Equiv.Perm.{succ u1} α)}, (forall (g : Equiv.Perm.{succ u1} α), (Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (List.{u1} (Equiv.Perm.{succ u1} α)) (List.instMembershipList.{u1} (Equiv.Perm.{succ u1} α)) g l) -> (Equiv.Perm.IsSwap.{u1} α (fun (a : α) (b : α) => _inst_2 a b) g)) -> (Iff (Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (List.prod.{u1} (Equiv.Perm.{succ u1} α) (MulOneClass.toMul.{u1} (Equiv.Perm.{succ u1} α) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) (InvOneClass.toOne.{u1} (Equiv.Perm.{succ u1} α) (DivInvOneMonoid.toInvOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivisionMonoid.toDivInvOneMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivisionMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) l) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Even.{0} Nat instAddNat (List.length.{u1} (Equiv.Perm.{succ u1} α) l)))
-Case conversion may be inaccurate. Consider using '#align equiv.perm.prod_list_swap_mem_alternating_group_iff_even_length Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_lengthₓ'. -/
theorem prod_list_swap_mem_alternatingGroup_iff_even_length {l : List (Perm α)}
(hl : ∀ g ∈ l, IsSwap g) : l.Prod ∈ alternatingGroup α ↔ Even l.length :=
by
@@ -101,23 +83,11 @@ theorem prod_list_swap_mem_alternatingGroup_iff_even_length {l : List (Perm α)}
decide
#align equiv.perm.prod_list_swap_mem_alternating_group_iff_even_length Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_length
-/- warning: equiv.perm.is_three_cycle.mem_alternating_group -> Equiv.Perm.IsThreeCycle.mem_alternatingGroup is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f) -> (Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f) -> (Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))
-Case conversion may be inaccurate. Consider using '#align equiv.perm.is_three_cycle.mem_alternating_group Equiv.Perm.IsThreeCycle.mem_alternatingGroupₓ'. -/
theorem IsThreeCycle.mem_alternatingGroup {f : Perm α} (h : IsThreeCycle f) :
f ∈ alternatingGroup α :=
mem_alternatingGroup.2 h.sign
#align equiv.perm.is_three_cycle.mem_alternating_group Equiv.Perm.IsThreeCycle.mem_alternatingGroup
-/- warning: equiv.perm.fin_rotate_bit1_mem_alternating_group -> Equiv.Perm.finRotate_bit1_mem_alternatingGroup is a dubious translation:
-lean 3 declaration is
- forall {n : Nat}, Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)))) (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))))) (finRotate (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)) (alternatingGroup.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)) (Fin.fintype (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)) (fun (a : Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)) (b : Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)) => Fin.decidableEq (bit1.{0} Nat Nat.hasOne Nat.hasAdd n) a b))
-but is expected to have type
- forall {n : Nat}, Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)))) (Equiv.Perm.{1} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))))) (finRotate (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)) (alternatingGroup.{0} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)) (Fin.fintype (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)) (fun (a : Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)) (b : Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)) => instDecidableEqFin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n) a b))
-Case conversion may be inaccurate. Consider using '#align equiv.perm.fin_rotate_bit1_mem_alternating_group Equiv.Perm.finRotate_bit1_mem_alternatingGroupₓ'. -/
theorem finRotate_bit1_mem_alternatingGroup {n : ℕ} :
finRotate (bit1 n) ∈ alternatingGroup (Fin (bit1 n)) := by
rw [mem_alternating_group, bit1, sign_finRotate, pow_bit0', Int.units_mul_self, one_pow]
@@ -125,12 +95,6 @@ theorem finRotate_bit1_mem_alternatingGroup {n : ℕ} :
end Equiv.Perm
-/- warning: two_mul_card_alternating_group -> two_mul_card_alternatingGroup is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] [_inst_3 : Nontrivial.{u1} α], Eq.{1} Nat (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fintype.card.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (alternatingGroup.fintype.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Fintype.card.{u1} (Equiv.Perm.{succ u1} α) (Equiv.fintype.{u1, u1} α α (fun (a : α) (b : α) => _inst_2 a b) (fun (a : α) (b : α) => _inst_2 a b) _inst_1 _inst_1))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] [_inst_3 : Nontrivial.{u1} α], Eq.{1} Nat (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) (Fintype.card.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (fta.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Fintype.card.{u1} (Equiv.Perm.{succ u1} α) (equivFintype.{u1, u1} α α (fun (a : α) (b : α) => _inst_2 a b) (fun (a : α) (b : α) => _inst_2 a b) _inst_1 _inst_1))
-Case conversion may be inaccurate. Consider using '#align two_mul_card_alternating_group two_mul_card_alternatingGroupₓ'. -/
theorem two_mul_card_alternatingGroup [Nontrivial α] :
2 * card (alternatingGroup α) = card (Perm α) :=
by
@@ -149,9 +113,6 @@ instance normal : (alternatingGroup α).Normal :=
#align alternating_group.normal alternatingGroup.normal
-/
-/- warning: alternating_group.is_conj_of -> alternatingGroup.isConj_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align alternating_group.is_conj_of alternatingGroup.isConj_ofₓ'. -/
theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ : Perm α))
(hσ : (σ : Perm α).support.card + 2 ≤ Fintype.card α) : IsConj σ τ :=
by
@@ -180,9 +141,6 @@ theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ
simp [mul_assoc]
#align alternating_group.is_conj_of alternatingGroup.isConj_of
-/- warning: alternating_group.is_three_cycle_is_conj -> alternatingGroup.isThreeCycle_isConj is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align alternating_group.is_three_cycle_is_conj alternatingGroup.isThreeCycle_isConjₓ'. -/
theorem isThreeCycle_isConj (h5 : 5 ≤ Fintype.card α) {σ τ : alternatingGroup α}
(hσ : IsThreeCycle (σ : Perm α)) (hτ : IsThreeCycle (τ : Perm α)) : IsConj σ τ :=
alternatingGroup.isConj_of (isConj_iff_cycleType_eq.2 (hσ.trans hτ.symm))
@@ -225,12 +183,6 @@ theorem closure_three_cycles_eq_alternating :
#align equiv.perm.closure_three_cycles_eq_alternating Equiv.Perm.closure_three_cycles_eq_alternating
-/
-/- warning: equiv.perm.is_three_cycle.alternating_normal_closure -> Equiv.Perm.IsThreeCycle.alternating_normalClosure is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat Nat.hasLe (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fintype.card.{u1} α _inst_1)) -> (forall {f : Equiv.Perm.{succ u1} α} (hf : Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f), Eq.{succ u1} (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.normalClosure.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Singleton.singleton.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Set.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Set.hasSingleton.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subtype.mk.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) f (Equiv.Perm.IsThreeCycle.mem_alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f hf)))) (Top.top.{u1} (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.hasTop.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat instLENat (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) (Fintype.card.{u1} α _inst_1)) -> (forall {f : Equiv.Perm.{succ u1} α} (hf : Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f), Eq.{succ u1} (Subgroup.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.normalClosure.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Singleton.singleton.{u1, u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Set.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))) (Set.instSingletonSet.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))) (Subtype.mk.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) f (Equiv.Perm.IsThreeCycle.mem_alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f hf)))) (Top.top.{u1} (Subgroup.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.instTopSubgroup.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))
-Case conversion may be inaccurate. Consider using '#align equiv.perm.is_three_cycle.alternating_normal_closure Equiv.Perm.IsThreeCycle.alternating_normalClosureₓ'. -/
/-- A key lemma to prove $A_5$ is simple. Shows that any normal subgroup of an alternating group on
at least 5 elements is the entire alternating group if it contains a 3-cycle. -/
theorem IsThreeCycle.alternating_normalClosure (h5 : 5 ≤ Fintype.card α) {f : Perm α}
@@ -277,12 +229,6 @@ namespace alternatingGroup
open Equiv.Perm
-/- warning: alternating_group.nontrivial_of_three_le_card -> alternatingGroup.nontrivial_of_three_le_card is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat Nat.hasLe (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fintype.card.{u1} α _inst_1)) -> (Nontrivial.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat instLENat (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3)) (Fintype.card.{u1} α _inst_1)) -> (Nontrivial.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))))
-Case conversion may be inaccurate. Consider using '#align alternating_group.nontrivial_of_three_le_card alternatingGroup.nontrivial_of_three_le_cardₓ'. -/
theorem nontrivial_of_three_le_card (h3 : 3 ≤ card α) : Nontrivial (alternatingGroup α) :=
by
haveI := Fintype.one_lt_card_iff_nontrivial.1 (lt_trans (by decide) h3)
@@ -295,9 +241,6 @@ theorem nontrivial_of_three_le_card (h3 : 3 ≤ card α) : Nontrivial (alternati
instance {n : ℕ} : Nontrivial (alternatingGroup (Fin (n + 3))) :=
nontrivial_of_three_le_card (by rw [card_fin]; exact le_add_left (le_refl 3))
-/- warning: alternating_group.normal_closure_fin_rotate_five -> alternatingGroup.normalClosure_finRotate_five is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align alternating_group.normal_closure_fin_rotate_five alternatingGroup.normalClosure_finRotate_fiveₓ'. -/
/-- The normal closure of the 5-cycle `fin_rotate 5` within $A_5$ is the whole group. This will be
used to show that the normal closure of any 5-cycle within $A_5$ is the whole group. -/
theorem normalClosure_finRotate_five :
@@ -323,9 +266,6 @@ theorem normalClosure_finRotate_five :
(inv_mem h))
#align alternating_group.normal_closure_fin_rotate_five alternatingGroup.normalClosure_finRotate_five
-/- warning: alternating_group.normal_closure_swap_mul_swap_five -> alternatingGroup.normalClosure_swap_mul_swap_five is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align alternating_group.normal_closure_swap_mul_swap_five alternatingGroup.normalClosure_swap_mul_swap_fiveₓ'. -/
/-- The normal closure of $(04)(13)$ within $A_5$ is the whole group. This will be
used to show that the normal closure of any permutation of cycle type $(2,2)$ is the whole group.
-/
@@ -350,9 +290,6 @@ theorem normalClosure_swap_mul_swap_five :
exact mul_mem (subgroup.normal_closure_normal.conj_mem _ h g1) (inv_mem h)
#align alternating_group.normal_closure_swap_mul_swap_five alternatingGroup.normalClosure_swap_mul_swap_five
-/- warning: alternating_group.is_conj_swap_mul_swap_of_cycle_type_two -> alternatingGroup.isConj_swap_mul_swap_of_cycleType_two is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align alternating_group.is_conj_swap_mul_swap_of_cycle_type_two alternatingGroup.isConj_swap_mul_swap_of_cycleType_twoₓ'. -/
/-- Shows that any non-identity element of $A_5$ whose cycle decomposition consists only of swaps
is conjugate to $(04)(13)$. This is used to show that the normal closure of such a permutation
in $A_5$ is $A_5$. -/
@@ -385,12 +322,6 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
simp [h_1]
#align alternating_group.is_conj_swap_mul_swap_of_cycle_type_two alternatingGroup.isConj_swap_mul_swap_of_cycleType_two
-/- warning: alternating_group.is_simple_group_five -> alternatingGroup.isSimpleGroup_five is a dubious translation:
-lean 3 declaration is
- IsSimpleGroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))
-but is expected to have type
- IsSimpleGroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))
-Case conversion may be inaccurate. Consider using '#align alternating_group.is_simple_group_five alternatingGroup.isSimpleGroup_fiveₓ'. -/
/-- Shows that $A_5$ is simple by taking an arbitrary non-identity element and showing by casework
on its cycle type that its normal closure is all of $A_5$. -/
instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -293,10 +293,7 @@ theorem nontrivial_of_three_le_card (h3 : 3 ≤ card α) : Nontrivial (alternati
#align alternating_group.nontrivial_of_three_le_card alternatingGroup.nontrivial_of_three_le_card
instance {n : ℕ} : Nontrivial (alternatingGroup (Fin (n + 3))) :=
- nontrivial_of_three_le_card
- (by
- rw [card_fin]
- exact le_add_left (le_refl 3))
+ nontrivial_of_three_le_card (by rw [card_fin]; exact le_add_left (le_refl 3))
/- warning: alternating_group.normal_closure_fin_rotate_five -> alternatingGroup.normalClosure_finRotate_five is a dubious translation:
<too large>
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -150,10 +150,7 @@ instance normal : (alternatingGroup α).Normal :=
-/
/- warning: alternating_group.is_conj_of -> alternatingGroup.isConj_of is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {σ : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))} {τ : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))}, (IsConj.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeSubtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))) σ) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeSubtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))) τ)) -> (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Finset.card.{u1} α (Equiv.Perm.support.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeSubtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))) σ))) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fintype.card.{u1} α _inst_1)) -> (IsConj.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))) σ τ)
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {σ : Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))} {τ : Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))}, (IsConj.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (Subtype.val.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Set.{u1} (Equiv.Perm.{succ u1} α)) (Set.instMembershipSet.{u1} (Equiv.Perm.{succ u1} α)) x (SetLike.coe.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) σ) (Subtype.val.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Set.{u1} (Equiv.Perm.{succ u1} α)) (Set.instMembershipSet.{u1} (Equiv.Perm.{succ u1} α)) x (SetLike.coe.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) τ)) -> (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Finset.card.{u1} α (Equiv.Perm.support.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1 (Subtype.val.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Set.{u1} (Equiv.Perm.{succ u1} α)) (Set.instMembershipSet.{u1} (Equiv.Perm.{succ u1} α)) x (SetLike.coe.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) σ))) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fintype.card.{u1} α _inst_1)) -> (IsConj.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Submonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (Subgroup.toSubmonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) σ τ)
+<too large>
Case conversion may be inaccurate. Consider using '#align alternating_group.is_conj_of alternatingGroup.isConj_ofₓ'. -/
theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ : Perm α))
(hσ : (σ : Perm α).support.card + 2 ≤ Fintype.card α) : IsConj σ τ :=
@@ -184,10 +181,7 @@ theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ
#align alternating_group.is_conj_of alternatingGroup.isConj_of
/- warning: alternating_group.is_three_cycle_is_conj -> alternatingGroup.isThreeCycle_isConj is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat Nat.hasLe (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fintype.card.{u1} α _inst_1)) -> (forall {σ : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))} {τ : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))}, (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeSubtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))) σ)) -> (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeSubtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))) τ)) -> (IsConj.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))) σ τ))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat instLENat (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) (Fintype.card.{u1} α _inst_1)) -> (forall {σ : Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))} {τ : Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))}, (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) (Subtype.val.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Set.{u1} (Equiv.Perm.{succ u1} α)) (Set.instMembershipSet.{u1} (Equiv.Perm.{succ u1} α)) x (SetLike.coe.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) σ)) -> (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) (Subtype.val.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Set.{u1} (Equiv.Perm.{succ u1} α)) (Set.instMembershipSet.{u1} (Equiv.Perm.{succ u1} α)) x (SetLike.coe.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) τ)) -> (IsConj.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Submonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (Subgroup.toSubmonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) σ τ))
+<too large>
Case conversion may be inaccurate. Consider using '#align alternating_group.is_three_cycle_is_conj alternatingGroup.isThreeCycle_isConjₓ'. -/
theorem isThreeCycle_isConj (h5 : 5 ≤ Fintype.card α) {σ τ : alternatingGroup α}
(hσ : IsThreeCycle (σ : Perm α)) (hτ : IsThreeCycle (τ : Perm α)) : IsConj σ τ :=
@@ -305,10 +299,7 @@ instance {n : ℕ} : Nontrivial (alternatingGroup (Fin (n + 3))) :=
exact le_add_left (le_refl 3))
/- warning: alternating_group.normal_closure_fin_rotate_five -> alternatingGroup.normalClosure_finRotate_five is a dubious translation:
-lean 3 declaration is
- Eq.{1} (Subgroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subgroup.normalClosure.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Singleton.singleton.{0, 0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Set.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Set.hasSingleton.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) => Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (finRotate (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Equiv.Perm.finRotate_bit1_mem_alternatingGroup (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Top.top.{0} (Subgroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subgroup.hasTop.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))))
-but is expected to have type
- Eq.{1} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.normalClosure.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (Singleton.singleton.{0, 0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Set.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Set.instSingletonSet.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (finRotate (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Equiv.Perm.finRotate_bit1_mem_alternatingGroup (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) (Top.top.{0} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.instTopSubgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align alternating_group.normal_closure_fin_rotate_five alternatingGroup.normalClosure_finRotate_fiveₓ'. -/
/-- The normal closure of the 5-cycle `fin_rotate 5` within $A_5$ is the whole group. This will be
used to show that the normal closure of any 5-cycle within $A_5$ is the whole group. -/
@@ -336,10 +327,7 @@ theorem normalClosure_finRotate_five :
#align alternating_group.normal_closure_fin_rotate_five alternatingGroup.normalClosure_finRotate_five
/- warning: alternating_group.normal_closure_swap_mul_swap_five -> alternatingGroup.normalClosure_swap_mul_swap_five is a dubious translation:
-lean 3 declaration is
- Eq.{1} (Subgroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subgroup.normalClosure.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Singleton.singleton.{0, 0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Set.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Set.hasSingleton.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) => Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Iff.mpr (Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Eq.{1} (Units.{0} Int Int.monoid) (coeFn.{1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid)))))) (Equiv.Perm.mem_alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (AsTrue.get (Eq.{1} (Units.{0} Int Int.monoid) (coeFn.{1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid)))))) (Units.decidableEq.{0} Int Int.monoid (fun (a : Int) (b : Int) => Int.decidableEq a b) (coeFn.{1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid)))))) trivial))))) (Top.top.{0} (Subgroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subgroup.hasTop.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))))
-but is expected to have type
- Eq.{1} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.normalClosure.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (Singleton.singleton.{0, 0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Set.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Set.instSingletonSet.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))))) (Iff.mpr (Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Equiv.Perm.mem_alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (of_decide_eq_true (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Units.instDecidableEqUnits.{0} Int Int.instMonoidInt (fun (a : Int) (b : Int) => Int.instDecidableEqInt a b) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Eq.refl.{1} Bool Bool.true)))))) (Top.top.{0} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.instTopSubgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align alternating_group.normal_closure_swap_mul_swap_five alternatingGroup.normalClosure_swap_mul_swap_fiveₓ'. -/
/-- The normal closure of $(04)(13)$ within $A_5$ is the whole group. This will be
used to show that the normal closure of any permutation of cycle type $(2,2)$ is the whole group.
@@ -366,10 +354,7 @@ theorem normalClosure_swap_mul_swap_five :
#align alternating_group.normal_closure_swap_mul_swap_five alternatingGroup.normalClosure_swap_mul_swap_five
/- warning: alternating_group.is_conj_swap_mul_swap_of_cycle_type_two -> alternatingGroup.isConj_swap_mul_swap_of_cycleType_two is a dubious translation:
-lean 3 declaration is
- forall {g : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))}, (Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) g (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) -> (Ne.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) g (OfNat.ofNat.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) 1 (OfNat.mk.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) 1 (One.one.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (MulOneClass.toHasOne.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))))) -> (forall (n : Nat), (Membership.Mem.{0, 0} Nat (Multiset.{0} Nat) (Multiset.hasMem.{0} Nat) n (Equiv.Perm.cycleType.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) g)) -> (Eq.{1} Nat n (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) -> (IsConj.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) g)
-but is expected to have type
- forall {g : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))}, (Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) g (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) -> (Ne.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) g (OfNat.ofNat.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) 1 (One.toOfNat1.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (InvOneClass.toOne.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvOneMonoid.toInvOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivisionMonoid.toDivInvOneMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivisionMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))))) -> (forall (n : Nat), (Membership.mem.{0, 0} Nat (Multiset.{0} Nat) (Multiset.instMembershipMultiset.{0} Nat) n (Equiv.Perm.cycleType.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) g)) -> (Eq.{1} Nat n (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))) -> (IsConj.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))))) g)
+<too large>
Case conversion may be inaccurate. Consider using '#align alternating_group.is_conj_swap_mul_swap_of_cycle_type_two alternatingGroup.isConj_swap_mul_swap_of_cycleType_twoₓ'. -/
/-- Shows that any non-identity element of $A_5$ whose cycle decomposition consists only of swaps
is conjugate to $(04)(13)$. This is used to show that the normal closure of such a permutation
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -80,7 +80,7 @@ namespace Equiv.Perm
lean 3 declaration is
forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, Iff (Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Eq.{1} (Units.{0} Int Int.monoid) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{succ u1} α) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1) f) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid))))))
but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, Iff (Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (fun (_x : Equiv.Perm.{succ u1} α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{u1} (Equiv.Perm.{succ u1} α) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1) f) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt)))))))))
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, Iff (Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (fun (_x : Equiv.Perm.{succ u1} α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{u1} (Equiv.Perm.{succ u1} α) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1) f) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt)))))))))
Case conversion may be inaccurate. Consider using '#align equiv.perm.mem_alternating_group Equiv.Perm.mem_alternatingGroupₓ'. -/
@[simp]
theorem mem_alternatingGroup {f : Perm α} : f ∈ alternatingGroup α ↔ sign f = 1 :=
@@ -339,7 +339,7 @@ theorem normalClosure_finRotate_five :
lean 3 declaration is
Eq.{1} (Subgroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subgroup.normalClosure.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Singleton.singleton.{0, 0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Set.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Set.hasSingleton.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) => Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Iff.mpr (Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Eq.{1} (Units.{0} Int Int.monoid) (coeFn.{1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid)))))) (Equiv.Perm.mem_alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (AsTrue.get (Eq.{1} (Units.{0} Int Int.monoid) (coeFn.{1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid)))))) (Units.decidableEq.{0} Int Int.monoid (fun (a : Int) (b : Int) => Int.decidableEq a b) (coeFn.{1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid)))))) trivial))))) (Top.top.{0} (Subgroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subgroup.hasTop.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))))
but is expected to have type
- Eq.{1} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.normalClosure.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (Singleton.singleton.{0, 0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Set.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Set.instSingletonSet.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))))) (Iff.mpr (Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Equiv.Perm.mem_alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (of_decide_eq_true (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Units.instDecidableEqUnits.{0} Int Int.instMonoidInt (fun (a : Int) (b : Int) => Int.instDecidableEqInt a b) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Eq.refl.{1} Bool Bool.true)))))) (Top.top.{0} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.instTopSubgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))))
+ Eq.{1} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.normalClosure.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (Singleton.singleton.{0, 0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Set.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Set.instSingletonSet.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))))) (Iff.mpr (Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Equiv.Perm.mem_alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (of_decide_eq_true (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Units.instDecidableEqUnits.{0} Int Int.instMonoidInt (fun (a : Int) (b : Int) => Int.instDecidableEqInt a b) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Eq.refl.{1} Bool Bool.true)))))) (Top.top.{0} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.instTopSubgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))))
Case conversion may be inaccurate. Consider using '#align alternating_group.normal_closure_swap_mul_swap_five alternatingGroup.normalClosure_swap_mul_swap_fiveₓ'. -/
/-- The normal closure of $(04)(13)$ within $A_5$ is the whole group. This will be
used to show that the normal closure of any permutation of cycle type $(2,2)$ is the whole group.
mathlib commit https://github.com/leanprover-community/mathlib/commit/7ebf83ed9c262adbf983ef64d5e8c2ae94b625f4
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson
! This file was ported from Lean 3 source module group_theory.specific_groups.alternating
-! leanprover-community/mathlib commit 0f6670b8af2dff699de1c0b4b49039b31bc13c46
+! leanprover-community/mathlib commit 9a48a083b390d9b84a71efbdc4e8dfa26a687104
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.Tactic.IntervalCases
/-!
# Alternating Groups
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
The alternating group on a finite type `α` is the subgroup of the permutation group `perm α`
consisting of the even permutations.
mathlib commit https://github.com/leanprover-community/mathlib/commit/039ef89bef6e58b32b62898dd48e9d1a4312bb65
@@ -48,28 +48,48 @@ open Equiv Equiv.Perm Subgroup Fintype
variable (α : Type _) [Fintype α] [DecidableEq α]
+#print alternatingGroup /-
/-- The alternating group on a finite type, realized as a subgroup of `equiv.perm`.
For $A_n$, use `alternating_group (fin n)`. -/
def alternatingGroup : Subgroup (Perm α) :=
sign.ker deriving Fintype
#align alternating_group alternatingGroup
+-/
instance [Subsingleton α] : Unique (alternatingGroup α) :=
⟨⟨1⟩, fun ⟨p, hp⟩ => Subtype.eq (Subsingleton.elim p _)⟩
variable {α}
+/- warning: alternating_group_eq_sign_ker -> alternatingGroup_eq_sign_ker is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], Eq.{succ u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)) (MonoidHom.ker.{u1, 0} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], Eq.{succ u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)) (MonoidHom.ker.{u1, 0} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1))
+Case conversion may be inaccurate. Consider using '#align alternating_group_eq_sign_ker alternatingGroup_eq_sign_kerₓ'. -/
theorem alternatingGroup_eq_sign_ker : alternatingGroup α = sign.ker :=
rfl
#align alternating_group_eq_sign_ker alternatingGroup_eq_sign_ker
namespace Equiv.Perm
+/- warning: equiv.perm.mem_alternating_group -> Equiv.Perm.mem_alternatingGroup is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, Iff (Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Eq.{1} (Units.{0} Int Int.monoid) (coeFn.{succ u1, succ u1} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{succ u1} α) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1) f) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, Iff (Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (FunLike.coe.{succ u1, succ u1, 1} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (fun (_x : Equiv.Perm.{succ u1} α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{u1, u1, 0} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{u1} (Equiv.Perm.{succ u1} α) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{u1, u1, 0} (MonoidHom.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{u1, 0} (Equiv.Perm.{succ u1} α) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1) f) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{succ u1} α) => Units.{0} Int Int.instMonoidInt) f) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt)))))))))
+Case conversion may be inaccurate. Consider using '#align equiv.perm.mem_alternating_group Equiv.Perm.mem_alternatingGroupₓ'. -/
@[simp]
theorem mem_alternatingGroup {f : Perm α} : f ∈ alternatingGroup α ↔ sign f = 1 :=
sign.mem_ker
#align equiv.perm.mem_alternating_group Equiv.Perm.mem_alternatingGroup
+/- warning: equiv.perm.prod_list_swap_mem_alternating_group_iff_even_length -> Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_length is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {l : List.{u1} (Equiv.Perm.{succ u1} α)}, (forall (g : Equiv.Perm.{succ u1} α), (Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (List.{u1} (Equiv.Perm.{succ u1} α)) (List.hasMem.{u1} (Equiv.Perm.{succ u1} α)) g l) -> (Equiv.Perm.IsSwap.{u1} α (fun (a : α) (b : α) => _inst_2 a b) g)) -> (Iff (Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (List.prod.{u1} (Equiv.Perm.{succ u1} α) (MulOneClass.toHasMul.{u1} (Equiv.Perm.{succ u1} α) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) (MulOneClass.toHasOne.{u1} (Equiv.Perm.{succ u1} α) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) l) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Even.{0} Nat Nat.hasAdd (List.length.{u1} (Equiv.Perm.{succ u1} α) l)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {l : List.{u1} (Equiv.Perm.{succ u1} α)}, (forall (g : Equiv.Perm.{succ u1} α), (Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (List.{u1} (Equiv.Perm.{succ u1} α)) (List.instMembershipList.{u1} (Equiv.Perm.{succ u1} α)) g l) -> (Equiv.Perm.IsSwap.{u1} α (fun (a : α) (b : α) => _inst_2 a b) g)) -> (Iff (Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (List.prod.{u1} (Equiv.Perm.{succ u1} α) (MulOneClass.toMul.{u1} (Equiv.Perm.{succ u1} α) (Monoid.toMulOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) (InvOneClass.toOne.{u1} (Equiv.Perm.{succ u1} α) (DivInvOneMonoid.toInvOneClass.{u1} (Equiv.Perm.{succ u1} α) (DivisionMonoid.toDivInvOneMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivisionMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))))) l) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Even.{0} Nat instAddNat (List.length.{u1} (Equiv.Perm.{succ u1} α) l)))
+Case conversion may be inaccurate. Consider using '#align equiv.perm.prod_list_swap_mem_alternating_group_iff_even_length Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_lengthₓ'. -/
theorem prod_list_swap_mem_alternatingGroup_iff_even_length {l : List (Perm α)}
(hl : ∀ g ∈ l, IsSwap g) : l.Prod ∈ alternatingGroup α ↔ Even l.length :=
by
@@ -78,11 +98,23 @@ theorem prod_list_swap_mem_alternatingGroup_iff_even_length {l : List (Perm α)}
decide
#align equiv.perm.prod_list_swap_mem_alternating_group_iff_even_length Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_length
+/- warning: equiv.perm.is_three_cycle.mem_alternating_group -> Equiv.Perm.IsThreeCycle.mem_alternatingGroup is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f) -> (Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {f : Equiv.Perm.{succ u1} α}, (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f) -> (Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) f (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))
+Case conversion may be inaccurate. Consider using '#align equiv.perm.is_three_cycle.mem_alternating_group Equiv.Perm.IsThreeCycle.mem_alternatingGroupₓ'. -/
theorem IsThreeCycle.mem_alternatingGroup {f : Perm α} (h : IsThreeCycle f) :
f ∈ alternatingGroup α :=
mem_alternatingGroup.2 h.sign
#align equiv.perm.is_three_cycle.mem_alternating_group Equiv.Perm.IsThreeCycle.mem_alternatingGroup
+/- warning: equiv.perm.fin_rotate_bit1_mem_alternating_group -> Equiv.Perm.finRotate_bit1_mem_alternatingGroup is a dubious translation:
+lean 3 declaration is
+ forall {n : Nat}, Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)))) (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n))))) (finRotate (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)) (alternatingGroup.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)) (Fin.fintype (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)) (fun (a : Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)) (b : Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd n)) => Fin.decidableEq (bit1.{0} Nat Nat.hasOne Nat.hasAdd n) a b))
+but is expected to have type
+ forall {n : Nat}, Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)))) (Equiv.Perm.{1} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n))))) (finRotate (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)) (alternatingGroup.{0} (Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)) (Fin.fintype (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)) (fun (a : Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)) (b : Fin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n)) => instDecidableEqFin (bit1.{0} Nat (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring) instAddNat n) a b))
+Case conversion may be inaccurate. Consider using '#align equiv.perm.fin_rotate_bit1_mem_alternating_group Equiv.Perm.finRotate_bit1_mem_alternatingGroupₓ'. -/
theorem finRotate_bit1_mem_alternatingGroup {n : ℕ} :
finRotate (bit1 n) ∈ alternatingGroup (Fin (bit1 n)) := by
rw [mem_alternating_group, bit1, sign_finRotate, pow_bit0', Int.units_mul_self, one_pow]
@@ -90,6 +122,12 @@ theorem finRotate_bit1_mem_alternatingGroup {n : ℕ} :
end Equiv.Perm
+/- warning: two_mul_card_alternating_group -> two_mul_card_alternatingGroup is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] [_inst_3 : Nontrivial.{u1} α], Eq.{1} Nat (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat Nat.hasMul) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fintype.card.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (alternatingGroup.fintype.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Fintype.card.{u1} (Equiv.Perm.{succ u1} α) (Equiv.fintype.{u1, u1} α α (fun (a : α) (b : α) => _inst_2 a b) (fun (a : α) (b : α) => _inst_2 a b) _inst_1 _inst_1))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] [_inst_3 : Nontrivial.{u1} α], Eq.{1} Nat (HMul.hMul.{0, 0, 0} Nat Nat Nat (instHMul.{0} Nat instMulNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) (Fintype.card.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (fta.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Fintype.card.{u1} (Equiv.Perm.{succ u1} α) (equivFintype.{u1, u1} α α (fun (a : α) (b : α) => _inst_2 a b) (fun (a : α) (b : α) => _inst_2 a b) _inst_1 _inst_1))
+Case conversion may be inaccurate. Consider using '#align two_mul_card_alternating_group two_mul_card_alternatingGroupₓ'. -/
theorem two_mul_card_alternatingGroup [Nontrivial α] :
2 * card (alternatingGroup α) = card (Perm α) :=
by
@@ -102,10 +140,18 @@ namespace alternatingGroup
open Equiv.Perm
+#print alternatingGroup.normal /-
instance normal : (alternatingGroup α).Normal :=
sign.normal_ker
#align alternating_group.normal alternatingGroup.normal
+-/
+/- warning: alternating_group.is_conj_of -> alternatingGroup.isConj_of is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {σ : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))} {τ : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))}, (IsConj.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeSubtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))) σ) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeSubtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))) τ)) -> (LE.le.{0} Nat Nat.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Finset.card.{u1} α (Equiv.Perm.support.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeSubtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))) σ))) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fintype.card.{u1} α _inst_1)) -> (IsConj.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))) σ τ)
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α] {σ : Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))} {τ : Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))}, (IsConj.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (Subtype.val.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Set.{u1} (Equiv.Perm.{succ u1} α)) (Set.instMembershipSet.{u1} (Equiv.Perm.{succ u1} α)) x (SetLike.coe.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) σ) (Subtype.val.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Set.{u1} (Equiv.Perm.{succ u1} α)) (Set.instMembershipSet.{u1} (Equiv.Perm.{succ u1} α)) x (SetLike.coe.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) τ)) -> (LE.le.{0} Nat instLENat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Finset.card.{u1} α (Equiv.Perm.support.{u1} α (fun (a : α) (b : α) => _inst_2 a b) _inst_1 (Subtype.val.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Set.{u1} (Equiv.Perm.{succ u1} α)) (Set.instMembershipSet.{u1} (Equiv.Perm.{succ u1} α)) x (SetLike.coe.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) σ))) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2))) (Fintype.card.{u1} α _inst_1)) -> (IsConj.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Submonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (Subgroup.toSubmonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) σ τ)
+Case conversion may be inaccurate. Consider using '#align alternating_group.is_conj_of alternatingGroup.isConj_ofₓ'. -/
theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ : Perm α))
(hσ : (σ : Perm α).support.card + 2 ≤ Fintype.card α) : IsConj σ τ :=
by
@@ -134,6 +180,12 @@ theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ
simp [mul_assoc]
#align alternating_group.is_conj_of alternatingGroup.isConj_of
+/- warning: alternating_group.is_three_cycle_is_conj -> alternatingGroup.isThreeCycle_isConj is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat Nat.hasLe (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fintype.card.{u1} α _inst_1)) -> (forall {σ : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))} {τ : coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))}, (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeSubtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))) σ)) -> (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Equiv.Perm.{succ u1} α) (coeSubtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))) τ)) -> (IsConj.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))) σ τ))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat instLENat (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) (Fintype.card.{u1} α _inst_1)) -> (forall {σ : Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))} {τ : Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))}, (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) (Subtype.val.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Set.{u1} (Equiv.Perm.{succ u1} α)) (Set.instMembershipSet.{u1} (Equiv.Perm.{succ u1} α)) x (SetLike.coe.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) σ)) -> (Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) (Subtype.val.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Set.{u1} (Equiv.Perm.{succ u1} α)) (Set.instMembershipSet.{u1} (Equiv.Perm.{succ u1} α)) x (SetLike.coe.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) τ)) -> (IsConj.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Submonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (DivInvMonoid.toMonoid.{u1} (Equiv.Perm.{succ u1} α) (Group.toDivInvMonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (Subgroup.toSubmonoid.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) σ τ))
+Case conversion may be inaccurate. Consider using '#align alternating_group.is_three_cycle_is_conj alternatingGroup.isThreeCycle_isConjₓ'. -/
theorem isThreeCycle_isConj (h5 : 5 ≤ Fintype.card α) {σ τ : alternatingGroup α}
(hσ : IsThreeCycle (σ : Perm α)) (hτ : IsThreeCycle (τ : Perm α)) : IsConj σ τ :=
alternatingGroup.isConj_of (isConj_iff_cycleType_eq.2 (hσ.trans hτ.symm))
@@ -146,6 +198,7 @@ namespace Equiv.Perm
open alternatingGroup
+#print Equiv.Perm.closure_three_cycles_eq_alternating /-
@[simp]
theorem closure_three_cycles_eq_alternating :
closure { σ : Perm α | IsThreeCycle σ } = alternatingGroup α :=
@@ -173,7 +226,14 @@ theorem closure_three_cycles_eq_alternating :
(hl b (List.mem_cons_of_mem a (l.mem_cons_self b))))
(ih _ (fun g hg => hl g (List.mem_cons_of_mem _ (List.mem_cons_of_mem _ hg))) hn)
#align equiv.perm.closure_three_cycles_eq_alternating Equiv.Perm.closure_three_cycles_eq_alternating
+-/
+/- warning: equiv.perm.is_three_cycle.alternating_normal_closure -> Equiv.Perm.IsThreeCycle.alternating_normalClosure is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat Nat.hasLe (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fintype.card.{u1} α _inst_1)) -> (forall {f : Equiv.Perm.{succ u1} α} (hf : Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f), Eq.{succ u1} (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.normalClosure.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Singleton.singleton.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Set.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Set.hasSingleton.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subtype.mk.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.Mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.hasMem.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) f (Equiv.Perm.IsThreeCycle.mem_alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f hf)))) (Top.top.{u1} (Subgroup.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.hasTop.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat instLENat (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) (Fintype.card.{u1} α _inst_1)) -> (forall {f : Equiv.Perm.{succ u1} α} (hf : Equiv.Perm.IsThreeCycle.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f), Eq.{succ u1} (Subgroup.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.normalClosure.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) (Singleton.singleton.{u1, u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Set.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))) (Set.instSingletonSet.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))) (Subtype.mk.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))) f (Equiv.Perm.IsThreeCycle.mem_alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b) f hf)))) (Top.top.{u1} (Subgroup.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.instTopSubgroup.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))) (Subgroup.toGroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))))
+Case conversion may be inaccurate. Consider using '#align equiv.perm.is_three_cycle.alternating_normal_closure Equiv.Perm.IsThreeCycle.alternating_normalClosureₓ'. -/
/-- A key lemma to prove $A_5$ is simple. Shows that any normal subgroup of an alternating group on
at least 5 elements is the entire alternating group if it contains a 3-cycle. -/
theorem IsThreeCycle.alternating_normalClosure (h5 : 5 ≤ Fintype.card α) {f : Perm α}
@@ -192,6 +252,7 @@ theorem IsThreeCycle.alternating_normalClosure (h5 : 5 ≤ Fintype.card α) {f :
exact ⟨⟨f, hf.mem_alternating_group⟩, Set.mem_singleton _, is_three_cycle_is_conj h5 hf h⟩)
#align equiv.perm.is_three_cycle.alternating_normal_closure Equiv.Perm.IsThreeCycle.alternating_normalClosure
+#print Equiv.Perm.isThreeCycle_sq_of_three_mem_cycleType_five /-
/-- Part of proving $A_5$ is simple. Shows that the square of any element of $A_5$ with a 3-cycle in
its cycle decomposition is a 3-cycle, so the normal closure of the original element must be
$A_5$. -/
@@ -211,6 +272,7 @@ theorem isThreeCycle_sq_of_three_mem_cycleType_five {g : Perm (Fin 5)} (h : 3
rw [← hd.card_support_mul, h3]
exact (c * g').support.card_le_univ
#align equiv.perm.is_three_cycle_sq_of_three_mem_cycle_type_five Equiv.Perm.isThreeCycle_sq_of_three_mem_cycleType_five
+-/
end Equiv.Perm
@@ -218,6 +280,12 @@ namespace alternatingGroup
open Equiv.Perm
+/- warning: alternating_group.nontrivial_of_three_le_card -> alternatingGroup.nontrivial_of_three_le_card is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat Nat.hasLe (OfNat.ofNat.{0} Nat 3 (OfNat.mk.{0} Nat 3 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fintype.card.{u1} α _inst_1)) -> (Nontrivial.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.setLike.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : Fintype.{u1} α] [_inst_2 : DecidableEq.{succ u1} α], (LE.le.{0} Nat instLENat (OfNat.ofNat.{0} Nat 3 (instOfNatNat 3)) (Fintype.card.{u1} α _inst_1)) -> (Nontrivial.{u1} (Subtype.{succ u1} (Equiv.Perm.{succ u1} α) (fun (x : Equiv.Perm.{succ u1} α) => Membership.mem.{u1, u1} (Equiv.Perm.{succ u1} α) (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α)) (Equiv.Perm.{succ u1} α) (Subgroup.instSetLikeSubgroup.{u1} (Equiv.Perm.{succ u1} α) (Equiv.Perm.permGroup.{u1} α))) x (alternatingGroup.{u1} α _inst_1 (fun (a : α) (b : α) => _inst_2 a b)))))
+Case conversion may be inaccurate. Consider using '#align alternating_group.nontrivial_of_three_le_card alternatingGroup.nontrivial_of_three_le_cardₓ'. -/
theorem nontrivial_of_three_le_card (h3 : 3 ≤ card α) : Nontrivial (alternatingGroup α) :=
by
haveI := Fintype.one_lt_card_iff_nontrivial.1 (lt_trans (by decide) h3)
@@ -233,6 +301,12 @@ instance {n : ℕ} : Nontrivial (alternatingGroup (Fin (n + 3))) :=
rw [card_fin]
exact le_add_left (le_refl 3))
+/- warning: alternating_group.normal_closure_fin_rotate_five -> alternatingGroup.normalClosure_finRotate_five is a dubious translation:
+lean 3 declaration is
+ Eq.{1} (Subgroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subgroup.normalClosure.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Singleton.singleton.{0, 0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Set.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Set.hasSingleton.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) => Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (finRotate (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Equiv.Perm.finRotate_bit1_mem_alternatingGroup (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Top.top.{0} (Subgroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subgroup.hasTop.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))))
+but is expected to have type
+ Eq.{1} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.normalClosure.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (Singleton.singleton.{0, 0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Set.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Set.instSingletonSet.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (finRotate (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Equiv.Perm.finRotate_bit1_mem_alternatingGroup (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))))) (Top.top.{0} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.instTopSubgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))))
+Case conversion may be inaccurate. Consider using '#align alternating_group.normal_closure_fin_rotate_five alternatingGroup.normalClosure_finRotate_fiveₓ'. -/
/-- The normal closure of the 5-cycle `fin_rotate 5` within $A_5$ is the whole group. This will be
used to show that the normal closure of any 5-cycle within $A_5$ is the whole group. -/
theorem normalClosure_finRotate_five :
@@ -258,6 +332,12 @@ theorem normalClosure_finRotate_five :
(inv_mem h))
#align alternating_group.normal_closure_fin_rotate_five alternatingGroup.normalClosure_finRotate_five
+/- warning: alternating_group.normal_closure_swap_mul_swap_five -> alternatingGroup.normalClosure_swap_mul_swap_five is a dubious translation:
+lean 3 declaration is
+ Eq.{1} (Subgroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subgroup.normalClosure.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Singleton.singleton.{0, 0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Set.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Set.hasSingleton.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) => Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Iff.mpr (Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Eq.{1} (Units.{0} Int Int.monoid) (coeFn.{1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid)))))) (Equiv.Perm.mem_alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (AsTrue.get (Eq.{1} (Units.{0} Int Int.monoid) (coeFn.{1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid)))))) (Units.decidableEq.{0} Int Int.monoid (fun (a : Int) (b : Int) => Int.decidableEq a b) (coeFn.{1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (fun (_x : MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) => (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) -> (Units.{0} Int Int.monoid)) (MonoidHom.hasCoeToFun.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Units.{0} Int Int.monoid) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))) (Units.mulOneClass.{0} Int Int.monoid)) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (OfNat.ofNat.{0} (Units.{0} Int Int.monoid) 1 (OfNat.mk.{0} (Units.{0} Int Int.monoid) 1 (One.one.{0} (Units.{0} Int Int.monoid) (MulOneClass.toHasOne.{0} (Units.{0} Int Int.monoid) (Units.mulOneClass.{0} Int Int.monoid)))))) trivial))))) (Top.top.{0} (Subgroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))) (Subgroup.hasTop.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))))
+but is expected to have type
+ Eq.{1} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.normalClosure.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (Singleton.singleton.{0, 0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Set.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Set.instSingletonSet.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))))) (Subtype.mk.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))))) (Iff.mpr (Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Equiv.Perm.mem_alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (of_decide_eq_true (Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Units.instDecidableEqUnits.{0} Int Int.instMonoidInt (fun (a : Int) (b : Int) => Int.instDecidableEqInt a b) (FunLike.coe.{1, 1, 1} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (_x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) _x) (MulHomClass.toFunLike.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))))) (MulOneClass.toMul.{0} (Units.{0} Int Int.instMonoidInt) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (MonoidHomClass.toMulHomClass.{0, 0, 0} (MonoidHom.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt) (MonoidHom.monoidHomClass.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Units.{0} Int Int.instMonoidInt) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))) (Units.instMulOneClassUnits.{0} Int Int.instMonoidInt)))) (Equiv.Perm.sign.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) 1 (One.toOfNat1.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (InvOneClass.toOne.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivInvOneMonoid.toInvOneClass.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionMonoid.toDivInvOneMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (DivisionCommMonoid.toDivisionMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (CommGroup.toDivisionCommMonoid.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Units.{0} Int Int.instMonoidInt) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))))) (Units.instCommGroupUnitsToMonoid.{0} Int Int.instCommMonoidInt))))))))) (Eq.refl.{1} Bool Bool.true)))))) (Top.top.{0} (Subgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.instTopSubgroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))))
+Case conversion may be inaccurate. Consider using '#align alternating_group.normal_closure_swap_mul_swap_five alternatingGroup.normalClosure_swap_mul_swap_fiveₓ'. -/
/-- The normal closure of $(04)(13)$ within $A_5$ is the whole group. This will be
used to show that the normal closure of any permutation of cycle type $(2,2)$ is the whole group.
-/
@@ -282,6 +362,12 @@ theorem normalClosure_swap_mul_swap_five :
exact mul_mem (subgroup.normal_closure_normal.conj_mem _ h g1) (inv_mem h)
#align alternating_group.normal_closure_swap_mul_swap_five alternatingGroup.normalClosure_swap_mul_swap_five
+/- warning: alternating_group.is_conj_swap_mul_swap_of_cycle_type_two -> alternatingGroup.isConj_swap_mul_swap_of_cycleType_two is a dubious translation:
+lean 3 declaration is
+ forall {g : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))}, (Membership.Mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (SetLike.hasMem.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) g (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) -> (Ne.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) g (OfNat.ofNat.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) 1 (OfNat.mk.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) 1 (One.one.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (MulOneClass.toHasOne.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Equiv.Perm.permGroup.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))))) -> (forall (n : Nat), (Membership.Mem.{0, 0} Nat (Multiset.{0} Nat) (Multiset.hasMem.{0} Nat) n (Equiv.Perm.cycleType.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) g)) -> (Eq.{1} Nat n (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) -> (IsConj.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (MulOneClass.toHasMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 0 (Zero.zero.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasZeroOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 4 (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (bit0.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 1 (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (OfNat.ofNat.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (OfNat.mk.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) 3 (bit1.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) (Fin.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (One.one.{0} (Fin (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) (Fin.hasOneOfNeZero (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))) (NeZero.succ (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) g)
+but is expected to have type
+ forall {g : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))}, (Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) g (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b))) -> (Ne.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) g (OfNat.ofNat.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) 1 (One.toOfNat1.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (InvOneClass.toOne.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvOneMonoid.toInvOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivisionMonoid.toDivInvOneMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivisionMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))))) -> (forall (n : Nat), (Membership.mem.{0, 0} Nat (Multiset.{0} Nat) (Multiset.instMembershipMultiset.{0} Nat) n (Equiv.Perm.cycleType.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) g)) -> (Eq.{1} Nat n (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)))) -> (IsConj.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) (HMul.hMul.{0, 0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (instHMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (MulOneClass.toMul.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Monoid.toMulOneClass.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (DivInvMonoid.toMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Group.toDivInvMonoid.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 4 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 4 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4)))))) (Equiv.swap.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 1 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 1 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) 3 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) 3 (NeZero.succ (OfNat.ofNat.{0} Nat 4 (instOfNatNat 4))))))) g)
+Case conversion may be inaccurate. Consider using '#align alternating_group.is_conj_swap_mul_swap_of_cycle_type_two alternatingGroup.isConj_swap_mul_swap_of_cycleType_twoₓ'. -/
/-- Shows that any non-identity element of $A_5$ whose cycle decomposition consists only of swaps
is conjugate to $(04)(13)$. This is used to show that the normal closure of such a permutation
in $A_5$ is $A_5$. -/
@@ -314,6 +400,12 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
simp [h_1]
#align alternating_group.is_conj_swap_mul_swap_of_cycle_type_two alternatingGroup.isConj_swap_mul_swap_of_cycleType_two
+/- warning: alternating_group.is_simple_group_five -> alternatingGroup.isSimpleGroup_five is a dubious translation:
+lean 3 declaration is
+ IsSimpleGroup.{0} (coeSort.{1, 2} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) Type (SetLike.hasCoeToSort.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Subgroup.setLike.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) (b : Fin (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))))) => Fin.decidableEq (OfNat.ofNat.{0} Nat 5 (OfNat.mk.{0} Nat 5 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))) a b)))
+but is expected to have type
+ IsSimpleGroup.{0} (Subtype.{1} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (fun (x : Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) => Membership.mem.{0, 0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (SetLike.instMembership.{0, 0} (Subgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))))) (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Subgroup.instSetLikeSubgroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))))) x (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))) (Subgroup.toGroup.{0} (Equiv.Perm.{1} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (Equiv.Perm.permGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)))) (alternatingGroup.{0} (Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (Fin.fintype (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (fun (a : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) (b : Fin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5))) => instDecidableEqFin (OfNat.ofNat.{0} Nat 5 (instOfNatNat 5)) a b)))
+Case conversion may be inaccurate. Consider using '#align alternating_group.is_simple_group_five alternatingGroup.isSimpleGroup_fiveₓ'. -/
/-- Shows that $A_5$ is simple by taking an arbitrary non-identity element and showing by casework
on its cycle type that its normal closure is all of $A_5$. -/
instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/da3fc4a33ff6bc75f077f691dc94c217b8d41559
@@ -107,7 +107,7 @@ instance normal : (alternatingGroup α).Normal :=
#align alternating_group.normal alternatingGroup.normal
theorem isConj_of {σ τ : alternatingGroup α} (hc : IsConj (σ : Perm α) (τ : Perm α))
- (hσ : (σ : Perm α).Support.card + 2 ≤ Fintype.card α) : IsConj σ τ :=
+ (hσ : (σ : Perm α).support.card + 2 ≤ Fintype.card α) : IsConj σ τ :=
by
obtain ⟨σ, hσ⟩ := σ
obtain ⟨τ, hτ⟩ := τ
@@ -209,7 +209,7 @@ theorem isThreeCycle_sq_of_three_mem_cycleType_five {g : Perm (Fin 5)} (h : 3
rw [le_antisymm (two_le_of_mem_cycle_type hn) (le_trans (le_card_support_of_mem_cycle_type hn) _)]
apply le_of_add_le_add_left
rw [← hd.card_support_mul, h3]
- exact (c * g').Support.card_le_univ
+ exact (c * g').support.card_le_univ
#align equiv.perm.is_three_cycle_sq_of_three_mem_cycle_type_five Equiv.Perm.isThreeCycle_sq_of_three_mem_cycleType_five
end Equiv.Perm
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -318,7 +318,7 @@ instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
by_cases h2 : ∀ n ∈ g.cycleType, n = 2
-- If the cycle decomposition of `g` consists entirely of swaps, then the cycle type is $(2,2)$.
-- This means that it is conjugate to $(04)(13)$, whose normal closure is $A_5$.
- · rw [Ne.def, Subtype.ext_iff] at g1
+ · rw [Ne, Subtype.ext_iff] at g1
exact
(isConj_swap_mul_swap_of_cycleType_two gA g1 h2).normalClosure_eq_top_of
normalClosure_swap_mul_swap_five
These will be caught by the linter in a future lean version.
@@ -291,8 +291,7 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
rw [isConj_iff_cycleType_eq, h2]
interval_cases h_1 : Multiset.card g.cycleType
· exact (h1 (card_cycleType_eq_zero.1 h_1)).elim
- · contrapose! ha
- simp [h_1]
+ · simp at ha
· have h04 : (0 : Fin 5) ≠ 4 := by decide
have h13 : (1 : Fin 5) ≠ 3 := by decide
rw [Disjoint.cycleType, (isCycle_swap h04).cycleType, (isCycle_swap h13).cycleType,
@@ -300,8 +299,7 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
· rfl
· rw [disjoint_iff_disjoint_support, support_swap h04, support_swap h13]
decide
- · contrapose! ha
- decide
+ · contradiction
#align alternating_group.is_conj_swap_mul_swap_of_cycle_type_two alternatingGroup.isConj_swap_mul_swap_of_cycleType_two
/-- Shows that $A_5$ is simple by taking an arbitrary non-identity element and showing by casework
@@ -347,9 +345,9 @@ instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
exact mul_mem h h
· -- The case `n = 4` leads to contradiction, as no element of $A_5$ includes a 4-cycle.
have con := mem_alternatingGroup.1 gA
- contrapose! con
- rw [sign_of_cycleType, cycleType_of_card_le_mem_cycleType_add_two (by decide) ng]
- decide
+ rw [sign_of_cycleType, cycleType_of_card_le_mem_cycleType_add_two (by decide) ng] at con
+ have : Odd 5 := by decide
+ simp [this] at con
· -- If `n = 5`, then `g` is itself a 5-cycle, conjugate to `finRotate 5`.
refine' (isConj_iff_cycleType_eq.2 _).normalClosure_eq_top_of normalClosure_finRotate_five
rw [cycleType_of_card_le_mem_cycleType_add_two (by decide) ng, cycleType_finRotate]⟩
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -246,7 +246,7 @@ theorem normalClosure_finRotate_five : normalClosure ({⟨finRotate 5,
normalClosure _ :=
SetLike.mem_coe.1 (subset_normalClosure (Set.mem_singleton _))
exact (mul_mem (Subgroup.normalClosure_normal.conj_mem _ h
- --Porting note: added `: _`
+ -- Porting note: added `: _`
⟨Fin.cycleRange 2, Fin.isThreeCycle_cycleRange_two.mem_alternatingGroup⟩) (inv_mem h) : _))
#align alternating_group.normal_closure_fin_rotate_five alternatingGroup.normalClosure_finRotate_five
The file Mathlib.GroupTheory.Perm.Cycle.Basic was too big and this PR splits it in several components:
Mathlib.GroupTheory.Perm.Cycle.Basic
contains everything related to a permutation being a cycle,Mathlib.GroupTheory.Perm.Cycle.Factors
is about the cycles of a permutation and the decomposition of a permutation into disjoint cyclesMathlib.GroupTheory.Perm.Closure
contains generation results for the permutation groupsMathlib.GroupTheory.Perm.Finite
contains general results specific to permutation of finite typesI moved some results to Mathlib.GroupTheory.Perm.Support
I also moved some results from Mathlib.GroupTheory.Perm.Sign
to Mathlib.GroupTheory.Perm.Finite
Some imports could be reduced, and the shake linter required a few adjustments in some other.
Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr>
@@ -40,6 +40,9 @@ alternating group permutation
-/
+-- An example on how to determine the order of an element of a finite group.
+example : orderOf (-1 : ℤˣ) = 2 :=
+ orderOf_eq_prime (Int.units_sq _) (by decide)
open Equiv Equiv.Perm Subgroup Fintype
@@ -51,7 +51,7 @@ def alternatingGroup : Subgroup (Perm α) :=
sign.ker
#align alternating_group alternatingGroup
--- Porting note: manually added instance
+-- Porting note (#10754): manually added instance
instance fta : Fintype (alternatingGroup α) :=
@Subtype.fintype _ _ sign.decidableMemKer _
In this pull request, I have systematically eliminated the leading whitespace preceding the colon (:
) within all unlabelled or unclassified porting notes. This adjustment facilitates a more efficient review process for the remaining notes by ensuring no entries are overlooked due to formatting inconsistencies.
@@ -243,7 +243,7 @@ theorem normalClosure_finRotate_five : normalClosure ({⟨finRotate 5,
normalClosure _ :=
SetLike.mem_coe.1 (subset_normalClosure (Set.mem_singleton _))
exact (mul_mem (Subgroup.normalClosure_normal.conj_mem _ h
- --Porting note : added `: _`
+ --Porting note: added `: _`
⟨Fin.cycleRange 2, Fin.isThreeCycle_cycleRange_two.mem_alternatingGroup⟩) (inv_mem h) : _))
#align alternating_group.normal_closure_fin_rotate_five alternatingGroup.normalClosure_finRotate_five
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -148,8 +148,8 @@ theorem closure_three_cycles_eq_alternating :
closure_eq_of_le _ (fun σ hσ => mem_alternatingGroup.2 hσ.sign) fun σ hσ => by
suffices hind :
∀ (n : ℕ) (l : List (Perm α)) (_ : ∀ g, g ∈ l → IsSwap g) (_ : l.length = 2 * n),
- l.prod ∈ closure { σ : Perm α | IsThreeCycle σ }
- · obtain ⟨l, rfl, hl⟩ := truncSwapFactors σ
+ l.prod ∈ closure { σ : Perm α | IsThreeCycle σ } by
+ obtain ⟨l, rfl, hl⟩ := truncSwapFactors σ
obtain ⟨n, hn⟩ := (prod_list_swap_mem_alternatingGroup_iff_even_length hl).1 hσ
rw [← two_mul] at hn
exact hind n l hl hn
@@ -195,8 +195,8 @@ theorem isThreeCycle_sq_of_three_mem_cycleType_five {g : Perm (Fin 5)} (h : 3
obtain ⟨c, g', rfl, hd, _, h3⟩ := mem_cycleType_iff.1 h
simp only [mul_assoc]
rw [hd.commute.eq, ← mul_assoc g']
- suffices hg' : orderOf g' ∣ 2
- · rw [← pow_two, orderOf_dvd_iff_pow_eq_one.1 hg', one_mul]
+ suffices hg' : orderOf g' ∣ 2 by
+ rw [← pow_two, orderOf_dvd_iff_pow_eq_one.1 hg', one_mul]
exact (card_support_eq_three_iff.1 h3).isThreeCycle_sq
rw [← lcm_cycleType, Multiset.lcm_dvd]
intro n hn
@@ -73,8 +73,7 @@ theorem mem_alternatingGroup {f : Perm α} : f ∈ alternatingGroup α ↔ sign
theorem prod_list_swap_mem_alternatingGroup_iff_even_length {l : List (Perm α)}
(hl : ∀ g ∈ l, IsSwap g) : l.prod ∈ alternatingGroup α ↔ Even l.length := by
- rw [mem_alternatingGroup, sign_prod_list_swap hl, ← Units.val_eq_one, Units.val_pow_eq_pow_val,
- Units.coe_neg_one, neg_one_pow_eq_one_iff_even]
+ rw [mem_alternatingGroup, sign_prod_list_swap hl, neg_one_pow_eq_one_iff_even]
decide
#align equiv.perm.prod_list_swap_mem_alternating_group_iff_even_length Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_length
@@ -284,8 +283,7 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
le_of_mul_le_mul_right (le_trans h (by simp only [card_fin]; ring_nf; decide)) (by simp)
rw [mem_alternatingGroup, sign_of_cycleType, h2] at ha
norm_num at ha
- rw [pow_add, pow_mul, Int.units_pow_two, one_mul, Units.ext_iff, Units.val_one,
- Units.val_pow_eq_pow_val, Units.coe_neg_one, neg_one_pow_eq_one_iff_even _] at ha
+ rw [pow_add, pow_mul, Int.units_pow_two, one_mul, neg_one_pow_eq_one_iff_even] at ha
swap; · decide
rw [isConj_iff_cycleType_eq, h2]
interval_cases h_1 : Multiset.card g.cycleType
This is the supremum of
along with some minor fixes from failures on nightly-testing as Mathlib master
is merged into it.
Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.
I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0
branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.
In particular this includes adjustments for the Lean PRs
We can get rid of all the
local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)
macros across Mathlib (and in any projects that want to write natural number powers of reals).
Changes the default behaviour of simp
to (config := {decide := false})
. This makes simp
(and consequentially norm_num
) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp
or norm_num
to decide
or rfl
, or adding (config := {decide := true})
.
This changed the behaviour of simp
so that simp [f]
will only unfold "fully applied" occurrences of f
. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true })
. We may in future add a syntax for this, e.g. simp [!f]
; please provide feedback! In the meantime, we have made the following changes:
(config := { unfoldPartialApp := true })
in some places, to recover the old behaviour@[eqns]
to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp
and Function.flip
.This change in Lean may require further changes down the line (e.g. adding the !f
syntax, and/or upstreaming the special treatment for Function.comp
and Function.flip
, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!
Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>
@@ -262,6 +262,7 @@ theorem normalClosure_swap_mul_swap_five :
⟨finRotate 5, finRotate_bit1_mem_alternatingGroup (n := 2)⟩ := by
rw [Subtype.ext_iff]
simp only [Fin.val_mk, Subgroup.coe_mul, Subgroup.coe_inv, Fin.val_mk]
+ decide
rw [eq_top_iff, ← normalClosure_finRotate_five]
refine' normalClosure_le_normal _
rw [Set.singleton_subset_iff, SetLike.mem_coe, ← h5]
@@ -280,7 +281,7 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
rw [← Multiset.eq_replicate_card] at h2
rw [← sum_cycleType, h2, Multiset.sum_replicate, smul_eq_mul] at h
have h : Multiset.card g.cycleType ≤ 3 :=
- le_of_mul_le_mul_right (le_trans h (by simp only [card_fin])) (by simp)
+ le_of_mul_le_mul_right (le_trans h (by simp only [card_fin]; ring_nf; decide)) (by simp)
rw [mem_alternatingGroup, sign_of_cycleType, h2] at ha
norm_num at ha
rw [pow_add, pow_mul, Int.units_pow_two, one_mul, Units.ext_iff, Units.val_one,
@@ -299,7 +300,7 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
· rw [disjoint_iff_disjoint_support, support_swap h04, support_swap h13]
decide
· contrapose! ha
- simp [h_1]
+ decide
#align alternating_group.is_conj_swap_mul_swap_of_cycle_type_two alternatingGroup.isConj_swap_mul_swap_of_cycleType_two
/-- Shows that $A_5$ is simple by taking an arbitrary non-identity element and showing by casework
@@ -280,7 +280,7 @@ theorem isConj_swap_mul_swap_of_cycleType_two {g : Perm (Fin 5)} (ha : g ∈ alt
rw [← Multiset.eq_replicate_card] at h2
rw [← sum_cycleType, h2, Multiset.sum_replicate, smul_eq_mul] at h
have h : Multiset.card g.cycleType ≤ 3 :=
- le_of_mul_le_mul_right (le_trans h (by simp only [card_fin]; ring_nf)) (by simp)
+ le_of_mul_le_mul_right (le_trans h (by simp only [card_fin])) (by simp)
rw [mem_alternatingGroup, sign_of_cycleType, h2] at ha
norm_num at ha
rw [pow_add, pow_mul, Int.units_pow_two, one_mul, Units.ext_iff, Units.val_one,
@@ -347,7 +347,6 @@ instance isSimpleGroup_five : IsSimpleGroup (alternatingGroup (Fin 5)) :=
have con := mem_alternatingGroup.1 gA
contrapose! con
rw [sign_of_cycleType, cycleType_of_card_le_mem_cycleType_add_two (by decide) ng]
- dsimp only
decide
· -- If `n = 5`, then `g` is itself a 5-cycle, conjugate to `finRotate 5`.
refine' (isConj_iff_cycleType_eq.2 _).normalClosure_eq_top_of normalClosure_finRotate_five
A linter that throws on seeing a colon at the start of a line, according to the style guideline that says these operators should go before linebreaks.
@@ -244,9 +244,8 @@ theorem normalClosure_finRotate_five : normalClosure ({⟨finRotate 5,
normalClosure _ :=
SetLike.mem_coe.1 (subset_normalClosure (Set.mem_singleton _))
exact (mul_mem (Subgroup.normalClosure_normal.conj_mem _ h
- ⟨Fin.cycleRange 2, Fin.isThreeCycle_cycleRange_two.mem_alternatingGroup⟩) (inv_mem h)
- --Porting note : added `: _`
- : _))
+ --Porting note : added `: _`
+ ⟨Fin.cycleRange 2, Fin.isThreeCycle_cycleRange_two.mem_alternatingGroup⟩) (inv_mem h) : _))
#align alternating_group.normal_closure_fin_rotate_five alternatingGroup.normalClosure_finRotate_five
/-- The normal closure of $(04)(13)$ within $A_5$ is the whole group. This will be
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -43,7 +43,7 @@ alternating group permutation
open Equiv Equiv.Perm Subgroup Fintype
-variable (α : Type _) [Fintype α] [DecidableEq α]
+variable (α : Type*) [Fintype α] [DecidableEq α]
/-- The alternating group on a finite type, realized as a subgroup of `Equiv.Perm`.
For $A_n$, use `alternatingGroup (Fin n)`. -/
@@ -2,17 +2,14 @@
Copyright (c) 2021 Aaron Anderson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson
-
-! This file was ported from Lean 3 source module group_theory.specific_groups.alternating
-! leanprover-community/mathlib commit 0f6670b8af2dff699de1c0b4b49039b31bc13c46
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.Group.ConjFinite
import Mathlib.GroupTheory.Perm.Fin
import Mathlib.GroupTheory.Subgroup.Simple
import Mathlib.Tactic.IntervalCases
+#align_import group_theory.specific_groups.alternating from "leanprover-community/mathlib"@"0f6670b8af2dff699de1c0b4b49039b31bc13c46"
+
/-!
# Alternating Groups
by
s! (#3825)
This PR puts, with one exception, every single remaining by
that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh
. The exception is when the by
begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.
Essentially this is s/\n *by$/ by/g
, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated by
s".
@@ -262,8 +262,8 @@ theorem normalClosure_swap_mul_swap_five :
⊤ := by
let g1 := (⟨swap 0 2 * swap 0 1, mem_alternatingGroup.2 (by decide)⟩ : alternatingGroup (Fin 5))
let g2 := (⟨swap 0 4 * swap 1 3, mem_alternatingGroup.2 (by decide)⟩ : alternatingGroup (Fin 5))
- have h5 : g1 * g2 * g1⁻¹ * g2⁻¹ = ⟨finRotate 5, finRotate_bit1_mem_alternatingGroup (n := 2)⟩ :=
- by
+ have h5 : g1 * g2 * g1⁻¹ * g2⁻¹ =
+ ⟨finRotate 5, finRotate_bit1_mem_alternatingGroup (n := 2)⟩ := by
rw [Subtype.ext_iff]
simp only [Fin.val_mk, Subgroup.coe_mul, Subgroup.coe_inv, Fin.val_mk]
rw [eq_top_iff, ← normalClosure_finRotate_five]
The unported dependencies are