diff options
| author | Hannes Schulze <haschu0103@outlook.de> | 2025-10-28 23:41:02 +0100 |
|---|---|---|
| committer | Hannes Schulze <haschu0103@outlook.de> | 2025-10-28 23:41:02 +0100 |
| commit | 8f1d3f45f11aae5d611a66c424b6427f379a8251 (patch) | |
| tree | 7e998b61023b8b36b555f9ada09a9588b352f150 /Nominal/Equivariance.lean | |
| parent | 1bc59fecb46835983850e2ee982073614868eaca (diff) | |
name abstraction functor
Diffstat (limited to 'Nominal/Equivariance.lean')
| -rw-r--r-- | Nominal/Equivariance.lean | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Nominal/Equivariance.lean b/Nominal/Equivariance.lean index 0fe9f91..3166e71 100644 --- a/Nominal/Equivariance.lean +++ b/Nominal/Equivariance.lean @@ -163,6 +163,16 @@ lemma supp_eq_if_inj {x : X} {f : X β Y} : Equivariant πΈ f β Function.Inj intro hequi hinj simp [NominalSet.supp, preserve_support_inj πΈ hequi hinj] +/-- If f is equivariant and a # x, then a # f x. -/ +lemma preserve_fresh {a : πΈ} {x : X} {f : X β Y} : Equivariant πΈ f β a # x β a # f x := by + intro hequi hx ha + exact hx ((supp_subset πΈ hequi) ha) + +/-- If f is equivariant and injective, then a # x iff a # f x. -/ +lemma preserve_fresh_inj {a : πΈ} {x : X} {f : X β Y} : Equivariant πΈ f β Function.Injective f β (a # x β a # f x) := by + intro hequi hinj + rw [NominalSet.IsFresh, NominalSet.IsFresh, supp_eq_if_inj πΈ hequi hinj] + end Equivariant /-- If there is an equivariant surjection from a nominal set into an (FPerm πΈ)-Set, then that set is nominal. -/ @@ -306,6 +316,12 @@ def id : X ββ[πΈ] X := β¨_root_.id, id_equivariant πΈβ© def comp (f : Y ββ[πΈ] Z) (g : X ββ[πΈ] Y) : X ββ[πΈ] Z := β¨f β g, comp_equivariant πΈ f.equivariant g.equivariantβ© @[simp] +lemma id_app (x : X) : id πΈ x = x := rfl + +@[simp] +lemma comp_app (f : Y ββ[πΈ] Z) (g : X ββ[πΈ] Y) (x : X) : comp πΈ f g x = f (g x) := rfl + +@[simp] lemma toFun_eq_coe {f : X ββ[πΈ] Y} : f.toFun = (f : X β Y) := rfl |
