diff options
| author | Hannes Schulze <contact@haschu.me> | 2026-04-15 15:17:13 +0200 |
|---|---|---|
| committer | Hannes Schulze <contact@haschu.me> | 2026-04-15 15:17:13 +0200 |
| commit | 37f7c86a7591da1233cdf1d293bf851f43c65ba1 (patch) | |
| tree | 4fba638337f18264f6638211d9b6c83f6704e825 /Algebra/Semantics.lean | |
| parent | a5ff8efe5b5e314e0aa759318e5fb194e066f612 (diff) | |
move wip
Diffstat (limited to 'Algebra/Semantics.lean')
| -rw-r--r-- | Algebra/Semantics.lean | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/Algebra/Semantics.lean b/Algebra/Semantics.lean deleted file mode 100644 index 13b54a0..0000000 --- a/Algebra/Semantics.lean +++ /dev/null @@ -1,79 +0,0 @@ -import Mathlib -import Algebra.Terms -import Algebra.Derivations - -open CategoryTheory - -namespace NominalAlgebra - -section AlgebraDefinition - -variable (πΈ : Type) [Infinite πΈ] [Countable πΈ] [DecidableEq πΈ] -variable (sig : Signature) - -structure Algebra where - carrier : β β Nom πΈ - pure (f : sig.pure) {m : β} : - (sig.pureArgs f β carrier m) ββ[πΈ] carrier (m + sig.pureDepth f) - free (f : sig.free) {m : β} : - (πΈ Γ (sig.freeArgs f β carrier m)) ββ[πΈ] carrier (m + sig.freeDepth f) - bound (f : sig.bound) {m : β} : - NameAbstraction πΈ (sig.boundArgs f β carrier m) ββ[πΈ] carrier (m + sig.boundDepth f) - -instance : CoeFun (Algebra πΈ sig) (fun _ => β β Nom πΈ) where - coe A := A.carrier - -@[ext] -structure Algebra.Hom (A B : Algebra πΈ sig) where - toFun : (n : β) β (A n ββ[πΈ] B n) - preserve_pure : β (f : sig.pure) {m : β} (args : sig.pureArgs f β A m), - toFun (m + sig.pureDepth f) (A.pure f args) = B.pure f (toFun m β args) - preserve_free : β (a : πΈ) (f : sig.free) {m : β} (args : sig.freeArgs f β A m), - toFun (m + sig.freeDepth f) (A.free f β¨a, argsβ©) = B.free f β¨a, toFun m β argsβ© - preserve_bound : β (a : πΈ) (f : sig.bound) {m : β} (args : sig.boundArgs f β A m), - toFun (m + sig.boundDepth f) (A.bound f (βͺaβ« args)) = B.bound f (βͺaβ« toFun m β args) - -instance {A B : Algebra πΈ sig} : CoeFun (Algebra.Hom πΈ sig A B) (fun _ => (n : β) β (A n ββ[πΈ] B n)) where - coe h := h.toFun - -end AlgebraDefinition - -section Algebra - -variable {πΈ : Type} [Infinite πΈ] [Countable πΈ] [DecidableEq πΈ] -variable {sig : Signature} - -namespace Algebra - -def Hom.id (A : Algebra πΈ sig) : Hom πΈ sig A A where - toFun _ := EquivariantMap.id πΈ - preserve_pure _ _ _ := rfl - preserve_free _ _ _ _ := rfl - preserve_bound _ _ _ _ := rfl - -def Hom.comp {A B C : Algebra πΈ sig} (h : Hom πΈ sig B C) (g : Hom πΈ sig A B) : Hom πΈ sig A C where - toFun n := EquivariantMap.comp πΈ (h n) (g n) - preserve_pure f m args := by - rw [EquivariantMap.comp_app, g.preserve_pure, h.preserve_pure] - rfl - preserve_free a f m args := by - rw [EquivariantMap.comp_app, g.preserve_free, h.preserve_free] - rfl - preserve_bound a f m args := by - rw [EquivariantMap.comp_app, g.preserve_bound, h.preserve_bound] - rfl - -instance : Category (Algebra πΈ sig) where - Hom := Hom πΈ sig - id := Hom.id - comp h g := Hom.comp g h - -def forgetfulFunctor : Algebra πΈ sig β₯€ Nom πΈ where - obj X := X 0 - map f := f.toFun 0 - -end Algebra - -end Algebra - -end NominalAlgebra |
