diff options
| author | Hannes Schulze <haschu0103@outlook.de> | 2025-12-04 17:14:46 +0100 |
|---|---|---|
| committer | Hannes Schulze <haschu0103@outlook.de> | 2025-12-04 17:14:46 +0100 |
| commit | 8fdf459876b999dbe184196f9abd330a3c24d560 (patch) | |
| tree | 3a834246faba68d9dcb59448e21c166816e0c8e0 /Nominal/Permutations.lean | |
| parent | b00c95bd3580a8a8bd779f57a034900140ce41fa (diff) | |
implement derivable equality
Diffstat (limited to 'Nominal/Permutations.lean')
| -rw-r--r-- | Nominal/Permutations.lean | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Nominal/Permutations.lean b/Nominal/Permutations.lean index 79a5042..0a4974a 100644 --- a/Nominal/Permutations.lean +++ b/Nominal/Permutations.lean @@ -187,12 +187,29 @@ class PermSet (๐ธ : Type) [Infinite ๐ธ] [Countable ๐ธ] [DecidableEq ๐ธ] variable (๐ธ : Type) [Infinite ๐ธ] [Countable ๐ธ] [DecidableEq ๐ธ] +/-- An (FPerm ๐ธ)-set is orbit-finite if there are only finitely many different orbits. -/ +class OrbitFinite (X : Type) [PermSet ๐ธ X] where + fin_orbits : Finite (Quotient (MulAction.orbitRel (FPerm ๐ธ) X)) + /-- The set of atoms itself forms an (FPerm ๐ธ)-Set. -/ instance : PermSet ๐ธ ๐ธ where smul ฯ a := ฯ a one_smul := by intro; rfl mul_smul := by intro _ _ _; rfl +instance : OrbitFinite ๐ธ ๐ธ where + fin_orbits := Finite.of_equiv Unit + { toFun _ := Quotient.mk _ (inferInstanceAs (Nonempty ๐ธ)).some + invFun _ := () + right_inv := by + let chosen := (inferInstanceAs (Nonempty ๐ธ)).some + apply Quotient.ind; intro a + rw [Quotient.eq] + show chosen โ MulAction.orbit (FPerm ๐ธ) a + use โธจchosen, aโธฉ + exact FPerm.swap_apply_right chosen a + } + /-- The set of finite permutations forms an (FPerm ๐ธ)-Set. -/ instance : PermSet ๐ธ (FPerm ๐ธ) where smul ฯ ฯ := ฯ * ฯ |
