summaryrefslogtreecommitdiff
path: root/Nominal/Instances
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2025-12-04 17:14:46 +0100
committerHannes Schulze <haschu0103@outlook.de>2025-12-04 17:14:46 +0100
commit8fdf459876b999dbe184196f9abd330a3c24d560 (patch)
tree3a834246faba68d9dcb59448e21c166816e0c8e0 /Nominal/Instances
parentb00c95bd3580a8a8bd779f57a034900140ce41fa (diff)
implement derivable equality
Diffstat (limited to 'Nominal/Instances')
-rw-r--r--Nominal/Instances/Basic.lean15
1 files changed, 15 insertions, 0 deletions
diff --git a/Nominal/Instances/Basic.lean b/Nominal/Instances/Basic.lean
index dcca75b..64b6425 100644
--- a/Nominal/Instances/Basic.lean
+++ b/Nominal/Instances/Basic.lean
@@ -70,6 +70,21 @@ def NominalSet.mkDiscrete (X : Type) : NominalSet.Discrete ๐”ธ X where
ยท intro ฯ€ hฯ€; simp only [PermSet.fix', Set.mem_setOf_eq]; rfl
ยท exact Set.finite_empty
+instance {X : Type} [NominalSet.Discrete ๐”ธ X] [Finite X] : OrbitFinite ๐”ธ X where
+ fin_orbits := Finite.of_equiv X
+ { toFun x := Quotient.mk _ x
+ invFun x := x.out
+ left_inv x := by
+ suffices โˆ€ (x y : X), MulAction.orbitRel (FPerm ๐”ธ) X x y โ†’ x = y by
+ apply this
+ rw [โ† Quotient.eq]
+ apply Quotient.out_eq
+ intro x y โŸจฯ€, hฯ€โŸฉ
+ simp only [NominalSet.Discrete.is_discrete] at hฯ€
+ exact hฯ€.symm
+ right_inv x := by simp
+ }
+
@[simp] lemma NominalSet.Discrete.supp {X : Type} [NominalSet.Discrete ๐”ธ X] {x : X} : supp ๐”ธ x = โˆ… := by
rw [โ† Set.subset_empty_iff]
apply Set.sInter_subset_of_mem