agda-gset/Algebra/G-Set.agda
2024-05-06 16:24:49 +02:00

58 lines
2 KiB
Agda
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

open import Algebra.Group
open import Level
open import Data.Product
open import Relation.Binary.PropositionalEquality as using (_≡_)
module Algebra.G-Set { : Level} where
open Group using () renaming (Carrier to _)
record G-Set (G : Group ) : Set (suc ) where
open Group G using (ε; _∙_)
field
X : Set
_⊳_ : G X X
field
ε⊳ : {x : X} ε x x
∘⊳ : {g h : G } {x : X} (g h) x (g (h x))
-- orb : X → Set
-- orb x = Σ[ y ∈ X ] Σ[ g ∈ G ] g ⊳ x ≡ y
-- Orb : Set
-- Orb = Σ[ x ∈ X ] orb x
record orb (x : X) : Set where
constructor orb[_,_,_]
field
y : X
g : G
.eq : g x y
orb-intro : {x : X} {y z : X} {g h : G } {eq₁ : g x y} {eq₂ : h x z} (p : y z) (q : g h)
≡.subst₂ (λ y g g x y) p q eq₁ eq₂
orb[ y , g , eq₁ ] orb[ z , h , eq₂ ]
orb-intro ≡.refl ≡.refl ≡.refl = ≡.refl
record Orb : Set where
constructor Orb[_,_]
field
x : X
o : orb x
Orb-intro : {x y : X} {o₁ : orb x} {o₂ : orb y} (p : x y)
≡.subst (λ x orb x) p o₁ o₂
Orb[ x , o₁ ] Orb[ y , o₂ ]
Orb-intro ≡.refl ≡.refl = ≡.refl
open G-Set using () renaming (X to _)
IsEquivariant : {G : Group } (X Y : G-Set G) (f : X Y ) Set
IsEquivariant {G} X Y f = {g : G } {x : X } f (g ⊳ˣ x) g ⊳ʸ (f x)
where
open G-Set X using () renaming (_⊳_ to _⊳ˣ_)
open G-Set Y using () renaming (_⊳_ to _⊳ʸ_)
record G-Set-Morphism (G : Group ) (X Y : G-Set G) : Set (suc ) where
field
u : X Y -- u for underlying
equivariance : IsEquivariant X Y u