summaryrefslogtreecommitdiff
path: root/Nominal/Permutations.lean
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2025-10-21 21:45:34 +0200
committerHannes Schulze <haschu0103@outlook.de>2025-10-21 21:45:34 +0200
commite2bde40a31e0ab0fea7e412bd2f9b03edcc026dd (patch)
tree101ec26c604224a7581bb4c04690659775107f20 /Nominal/Permutations.lean
parent8514856d26803b8b36558fc226e51e8057c5d5e2 (diff)
restructure
Diffstat (limited to 'Nominal/Permutations.lean')
-rw-r--r--Nominal/Permutations.lean40
1 files changed, 32 insertions, 8 deletions
diff --git a/Nominal/Permutations.lean b/Nominal/Permutations.lean
index 5f62ec0..6819c67 100644
--- a/Nominal/Permutations.lean
+++ b/Nominal/Permutations.lean
@@ -103,15 +103,14 @@ namespace Equiv.Perm
/-- The support of a transposition (x y). -/
lemma supp_swap {x y : X} : (Equiv.swap x y).supp = if x ≠ y then {x, y} else ∅ := by
- if h : (x ≠ y) then
- ext z
+ by_cases h : x = y
+ · simp [h, supp]
+ · simp [h]; ext z
by_cases hx : z = x
- · aesop
+ · simp [hx, Ne.symm h]
· by_cases hy : z = y
- · simp [hy]
+ · simp [hy, h]
· simp [Equiv.swap_apply_of_ne_of_ne, hx, hy]
- else
- aesop
end Equiv.Perm
@@ -120,8 +119,7 @@ namespace FPerm
def swap (x y : X) : FPerm X := ⟨Equiv.swap x y, by
apply Set.Finite.subset
· apply ({x, y} : Finset X).finite_toSet
- · simp [Equiv.Perm.supp_swap]
- aesop⟩
+ · by_cases h : x = y <;> all_goals simp [Equiv.Perm.supp_swap, h]⟩
notation "⸨" a "," b "⸩" => FPerm.swap a b
@@ -130,3 +128,29 @@ end FPerm
example : FPerm ℕ := ⸨1, 2⸩ * ⸨3, 4⸩ * ⸨2, 3⸩
end Transposition
+
+/-!
+## (FPerm 𝔸)-Sets
+
+Sets equipped with a permutation operation.
+-/
+section PermSet
+
+variable (𝔸 : Type) [Infinite 𝔸] [Countable 𝔸] [DecidableEq 𝔸]
+
+/-- A set X equipped with a group action •: (FPerm 𝔸) × X → X. -/
+class PermSet (X : Type) extends MulAction (FPerm 𝔸) X
+
+/-- The set of atoms itself forms a (FPerm 𝔸)-Set. -/
+instance : PermSet 𝔸 𝔸 where
+ smul π a := π a
+ one_smul := by intro; rfl
+ mul_smul := by intro _ _ _; rfl
+
+/-- The set of finite permutations forms a (FPerm 𝔸)-Set. -/
+instance : PermSet 𝔸 (FPerm 𝔸) where
+ smul π τ := π * τ
+ one_smul := by intro; rfl
+ mul_smul := by intro _ _ _; rfl
+
+end PermSet