Fix up the structure of Actions and SymmetricGroups (#67)

This commit is contained in:
Patrick Stevens
2019-11-08 13:50:24 +00:00
committed by GitHub
parent cac9d034c2
commit d30d14772e
11 changed files with 363 additions and 288 deletions

25
Groups/Actions/Orbit.agda Normal file
View File

@@ -0,0 +1,25 @@
{-# OPTIONS --safe --warning=error --without-K #-}
open import LogicalFormulae
open import Setoids.Setoids
open import Functions
open import Agda.Primitive using (Level; lzero; lsuc; _⊔_)
open import Numbers.Naturals.Naturals
open import Sets.FinSet
open import Groups.Definition
open import Groups.Lemmas
open import Groups.Groups
open import Groups.Actions.Definition
open import Groups.Groups2
open import Sets.EquivalenceRelations
module Groups.Actions.Orbit where
data Orbit {a b c d : _} {A : Set a} {B : Set b} {S : Setoid {a} {c} A} {T : Setoid {b} {d} B} {_+_ : A A A} {G : Group S _+_} (action : GroupAction G T) (x : B) : Set (a b c d) where
orbitElt : (g : A) Orbit action x
orbitSetoid : {a b c d : _} {A : Set a} {B : Set b} {S : Setoid {a} {c} A} {T : Setoid {b} {d} B} {_+_ : A A A} {G : Group S _+_} (action : GroupAction G T) (x : B) Setoid (Orbit action x)
Setoid.__ (orbitSetoid {T = T} action x) (orbitElt a) (orbitElt b) = Setoid.__ T (GroupAction.action action a x) (GroupAction.action action b x)
Equivalence.reflexive (Setoid.eq (orbitSetoid {T = T} action x)) {orbitElt g} = Equivalence.reflexive (Setoid.eq T)
Equivalence.symmetric (Setoid.eq (orbitSetoid {T = T} action x)) {orbitElt g} {orbitElt h} = Equivalence.symmetric (Setoid.eq T)
Equivalence.transitive (Setoid.eq (orbitSetoid {T = T} action x)) {orbitElt g} {orbitElt h} {orbitElt i} = Equivalence.transitive (Setoid.eq T)