diff options
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 |
