group theory. Reply

S.D.Mechveliani mechvel@math.botik.ru
Wed, 25 Oct 2000 11:20:32 +0400


Hi, all,


To   Eric Allen Wohlstadter's (wohlstad@cs.ucdavis.edu)

: Are there any Haskell libraries or programs related to group theory? I am
: taking a class and it seems like Haskell would be a good programming
: language for exploring/reasoning about group theory. What I had in mind
: was perhaps you could have a function which takes a list(set) and a
: function with two arguments(binary operator) and checks to see whether or
: not it is a group. I think it might be a fun exercies to write myself but
: I'd like to see if it's already been done or what you guys think about it.


Marc van Dongen <dongen@cs.ucc.ie>  writes

> I think Sergey Mechveliani's docon (algebraic DOmain CONstructor)
> has facilities for that. Have a look at:
>
> http://www.cs.bell-labs.com/who/wadler/realworld/docon.html


Sorry, 
DoCon  (<http://www.botik.ru/pub/local/Mechveliani/docon/2.01/>)

really supports the Commutative Rings, 
but provides almost nothing for the Group theory.

For example, for the domain    (Integer,Integer) 

it would set automatically  (IsGroup,Yes)  for the
Additive semigroup  and     (IsGroup,No)   for the Multiplicative
semigroup.
For the additive case, it would also set the group generator list
[(1,0),(0,1)].
In both cases, it would also set  cardinality = Infinity.
Similar attributes are formed for the constructors of  Permutation, 
Vector, Matrix, Polyninomial, Fraction, ResidueRing.
And that is all.
It does not provide so far any real algorithmic support for the Group 
theory, except some operations on permutations. 

But one may develop the program by adding the needed algorithms and 
introducing new attributes.


:  What I had in mind
: was perhaps you could have a function which takes a list(set) and a
: function with two arguments(binary operator) and checks to see whether or
: not it is a group. I think it might be a fun exercies to write myself but
: I'd like to see if it's already been done or what you guys think about it.

I never programmed this. It looks like some exercise in algorithms. 
There are also books on the combinatorial group theory, maybe, they
say something about efficient procedures for this.


Regards,

------------------
Sergey Mechveliani
mechvel@botik.ru