Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

# -*- coding: utf-8 -*- 

r""" 

H-trivial semigroups 

""" 

#***************************************************************************** 

# Copyright (C) 2016 Nicolas M. Thiéry <nthiery at users.sf.net> 

# 

# This program is free software: you can redistribute it and/or modify 

# it under the terms of the GNU General Public License as published by 

# the Free Software Foundation, either version 2 of the License, or 

# (at your option) any later version. 

# http://www.gnu.org/licenses/ 

#***************************************************************************** 

 

from sage.categories.category_with_axiom import CategoryWithAxiom 

from sage.categories.semigroups import Semigroups 

 

class HTrivialSemigroups(CategoryWithAxiom): 

def Finite_extra_super_categories(self): 

r""" 

Implement the fact that a finite `H`-trivial is aperiodic 

 

EXAMPLES:: 

 

sage: Semigroups().HTrivial().Finite_extra_super_categories() 

[Category of aperiodic semigroups] 

sage: Semigroups().HTrivial().Finite() is Semigroups().Aperiodic().Finite() 

True 

""" 

return [Semigroups().Aperiodic()] 

 

def Inverse_extra_super_categories(self): 

r""" 

Implement the fact that an `H`-trivial inverse semigroup is `J`-trivial. 

 

.. TODO:: 

 

Generalization for inverse semigroups. 

 

Recall that there are two invertibility axioms for a semigroup `S`: 

 

- One stating the existence, for all `x`, of a local inverse 

`y` satisfying `x=xyx` and `y=yxy`; 

- One stating the existence, for all `x`, of a global 

inverse `y` satisfying `xy=yx=1`, where `1` is the unit 

of `S` (which must of course exist). 

 

It is sufficient to have local inverses for `H`-triviality 

to imply `J`-triviality. However, at this stage, only the 

second axiom is implemented in Sage (see 

:meth:`Magmas.Unital.SubcategoryMethods.Inverse`). Therefore 

this fact is only implemented for semigroups with global 

inverses, that is groups. However the trivial group is the 

unique `H`-trivial group, so this is rather boring. 

 

EXAMPLES:: 

 

sage: Semigroups().HTrivial().Inverse_extra_super_categories() 

[Category of j trivial semigroups] 

sage: Monoids().HTrivial().Inverse() 

Category of h trivial groups 

""" 

return [self.JTrivial()]