diff options
| author | Hannes Schulze <haschu0103@outlook.de> | 2025-10-22 23:34:14 +0200 |
|---|---|---|
| committer | Hannes Schulze <haschu0103@outlook.de> | 2025-10-22 23:34:14 +0200 |
| commit | 281326b9b7eb6561526f02ff37eab9c39aa83b58 (patch) | |
| tree | e97e1bd1c1ca95d7775a988af3a65a90e50fa94e /Nominal | |
| parent | b1a5137ed3f2d7810a1670d2e3888e8a87d89b02 (diff) | |
always require infinite, countable, equality-decidable atoms
Diffstat (limited to 'Nominal')
| -rw-r--r-- | Nominal/Instances.lean | 8 | ||||
| -rw-r--r-- | Nominal/Permutations.lean | 6 | ||||
| -rw-r--r-- | Nominal/Support.lean | 10 |
3 files changed, 12 insertions, 12 deletions
diff --git a/Nominal/Instances.lean b/Nominal/Instances.lean index 057a0de..dcf079f 100644 --- a/Nominal/Instances.lean +++ b/Nominal/Instances.lean @@ -8,7 +8,7 @@ import Nominal.Support This file contains common instances of (FPerm πΈ)-sets and nominal sets. -/ -variable (πΈ : Type) +variable (πΈ : Type) [Infinite πΈ] [Countable πΈ] [DecidableEq πΈ] /-! ## Atoms @@ -25,7 +25,7 @@ instance : NominalSet πΈ πΈ where intro a; use {a} exact β¨NominalSet.supp_atom' πΈ, Set.finite_singleton aβ© -lemma NominalSet.supp_atom [Infinite πΈ] [DecidableEq πΈ] {a : πΈ} : supp πΈ a = {a} := by +lemma NominalSet.supp_atom {a : πΈ} : supp πΈ a = {a} := by ext b; constructor Β· apply support_subset_supp πΈ Β· exact NominalSet.supp_atom' πΈ @@ -90,7 +90,7 @@ section Products instance {X Y : Type} [PermSet πΈ X] [PermSet πΈ Y] : PermSet πΈ (X Γ Y) where -variable {X Y : Type} [NominalSet πΈ X] [NominalSet πΈ Y] [Infinite πΈ] +variable {X Y : Type} [NominalSet πΈ X] [NominalSet πΈ Y] private lemma NominalSet.supp_product' {x : X} {y : Y} : PermSet.HasSupport πΈ (x, y) (supp πΈ x βͺ supp πΈ y) := by intro Ο hΟ @@ -135,7 +135,7 @@ section Coproducts instance {X Y : Type} [PermSet πΈ X] [PermSet πΈ Y] : PermSet πΈ (X β Y) where -variable {X Y : Type} [NominalSet πΈ X] [NominalSet πΈ Y] [Infinite πΈ] +variable {X Y : Type} [NominalSet πΈ X] [NominalSet πΈ Y] private lemma NominalSet.supp_coproductβ' {x : X} : PermSet.HasSupport πΈ (.inl x : X β Y) (supp πΈ x) := by intro Ο hΟ diff --git a/Nominal/Permutations.lean b/Nominal/Permutations.lean index dd9b9d2..c8fdd86 100644 --- a/Nominal/Permutations.lean +++ b/Nominal/Permutations.lean @@ -136,10 +136,10 @@ 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 +class PermSet (πΈ : Type) [Infinite πΈ] [Countable πΈ] [DecidableEq πΈ] (X : Type) extends MulAction (FPerm πΈ) X + +variable (πΈ : Type) [Infinite πΈ] [Countable πΈ] [DecidableEq πΈ] /-- The set of atoms itself forms a (FPerm πΈ)-Set. -/ instance : PermSet πΈ πΈ where diff --git a/Nominal/Support.lean b/Nominal/Support.lean index efed617..78e8b3e 100644 --- a/Nominal/Support.lean +++ b/Nominal/Support.lean @@ -8,7 +8,7 @@ import Nominal.Helpers.Finset This file provides basic definitions for support of (FPerm πΈ)-sets and nominal sets. -/ -variable (πΈ : Type) +variable (πΈ : Type) [Infinite πΈ] [Countable πΈ] [DecidableEq πΈ] /-! ## Support Definitions @@ -54,7 +54,7 @@ lemma support_superset {x : X} {S T : Set πΈ} : HasSupport πΈ x S β S β exact hΟ a (hsub ha) /-- For two finite supports, the intersection is also a support. -/ -lemma support_inter [Infinite πΈ] {x : X} {S T : Set πΈ} : HasSupport πΈ x S β S.Finite β HasSupport πΈ x T β T.Finite β HasSupport πΈ x (S β© T) := by +lemma support_inter {x : X} {S T : Set πΈ} : HasSupport πΈ x S β S.Finite β HasSupport πΈ x T β T.Finite β HasSupport πΈ x (S β© T) := by intro h_S_support h_S_finite h_T_support h_T_finite Ο h_Ο_fix let Ο' := Ο.val let h_Ο_fin := Ο.prop @@ -151,7 +151,7 @@ lemma support_inter [Infinite πΈ] {x : X} {S T : Set πΈ} : HasSupport πΈ x _ = x := by rw [h_T_support h_Ο_fixT] /-- For a finite number of finite supports, the intersection is also a support. -/ -lemma support_sInter [Infinite πΈ] {x : X} {C : Set (Set πΈ)}: C.Finite β C.Nonempty β (β S β C, HasSupport πΈ x S β§ S.Finite) β HasSupport πΈ x (ββ C) := by +lemma support_sInter {x : X} {C : Set (Set πΈ)}: C.Finite β C.Nonempty β (β S β C, HasSupport πΈ x S β§ S.Finite) β HasSupport πΈ x (ββ C) := by suffices (C : Finset (Set πΈ)) : C.Nonempty β (β S β C, HasSupport πΈ x S β§ S.Finite) β HasSupport πΈ x (ββ C.toSet) β§ (ββ C.toSet).Finite Β· intro hfin rw [show C = hfin.toFinset.toSet by simp] @@ -207,7 +207,7 @@ lemma supp_finite {x : X} : (supp πΈ x).Finite := by exact Set.mem_sep hsuppS hfinS /-- We can restrict the supp definition to subsets of a single finite support. -/ -private lemma supp_equiv_finite [Infinite πΈ] {x : X} {S : Set πΈ} : PermSet.HasSupport πΈ x S β S.Finite β supp πΈ x = ββ { T : Set πΈ | T β S β§ PermSet.HasSupport πΈ x T β§ T.Finite } := by +private lemma supp_equiv_finite {x : X} {S : Set πΈ} : PermSet.HasSupport πΈ x S β S.Finite β supp πΈ x = ββ { T : Set πΈ | T β S β§ PermSet.HasSupport πΈ x T β§ T.Finite } := by intro hsuppS hfinS unfold supp; ext a constructor @@ -223,7 +223,7 @@ private lemma supp_equiv_finite [Infinite πΈ] {x : X} {S : Set πΈ} : PermSet Β· exact Set.Finite.inter_of_left hfinS T /-- The least finite support is itself a support. -/ -lemma supp_is_support [Infinite πΈ] {x : X} : PermSet.HasSupport πΈ x (supp πΈ x) := by +lemma supp_is_support {x : X} : PermSet.HasSupport πΈ x (supp πΈ x) := by obtain β¨S, β¨hsuppS, hfinSβ©β© := nom.fin_supp x rw [supp_equiv_finite πΈ hsuppS hfinS] apply PermSet.support_sInter |
