>To be clear, I don't think that a Module class should necessarily subclass
an AbelianGroup class. Using subclasses to represent shared relationships
between mathematical objects is tricky.

That was what I was thinking, but couldn't say it properly.The idea of
decomposing the Module into abelian groups seems to be a good idea. But its
not something that had seen on other CAS systems before, but i really like
it.

Regarding the group theory another important addition I would like to make
to the current AGCA module is StructureDescription() which would act like a
man page every time. like for example:
`StructureDescription(Group)` would print:
1 : trivial group
C(size) : cyclic group
S(degree) : Symmetric group
.... and so on all the group structures and a small description. This can
be extended to other structures like modules and any other.
And a similar addition to my group theory module, like some more
descriptive.

Currently I am following `An introduction to theory of groups`.

What do you think ?

kaushik


On Mon, Feb 2, 2015 at 4:21 AM, Aaron Meurer <[email protected]> wrote:

> To be clear, I don't think that a Module class should necessarily subclass
> an AbelianGroup class. Using subclasses to represent shared relationships
> between mathematical objects is tricky. I personally don't think of every
> module as being an Abelian group. I think of every module as containing an
> Abelian group as part of its structure. Mathematically we might say a
> module is a triple (R, M, *) where R is a unital ring, M is an Abelian
> group, and *: R x M -> M is an operation satisfying some identities.
>
> From a programming perspective, I would expect an AbelianGroup object to
> have a lot of methods on it that are very group theoretic, and it would be
> distracting at best to have these methods all be inherited directly into a
> Module object. I would rather expect to be able to do something like
> M.as_abelian_group().some_group_theory_method.
>
> Aaron Meurer
>
>
> On Sun, Feb 1, 2015 at 3:32 PM, vamsi kaushik <[email protected]
> > wrote:
>
>> Hi Aaron
>>
>> >I don't remember if I mentioned this earlier, but for Abelian groups,
>> we should try to reuse as much of the stuff from the AGCA module as
>> possible. It already implements a lot of what you are suggesting for
>> modules, and since Abelian groups are just Z-modules
>>
>> I completely agree.
>>
>> > Perhaps we should structure the classes along the definition of a
>> module that a module is a ring and an Abelian group, IMHO, Abelian
>> groups are better thought of in terms of module theory than group theory,
>> but it would be nice to have a group theory interface on top of Z-modules.
>>
>> I am not quite sure about this. I might be completely wrong, but just my
>> two cents: Module theory is more about ring action like group actions
>> rather than the group itself, like vector spaces for fields. So by
>> definition even though ring action over an abelian group is a module ( If
>> that is what you meant by "Ring and abelian group"), I think we should
>> better not use this as a subclass structure because they are fundamentally
>> different. And moreover I feel Module theory should be left aside to study
>> ring actions extensively, while being able to have their representations in
>> group theory as well. Like you said Z-modules can inherit a lot from
>> AbelianGroups while still being a part of module theory. Again I have
>> little knowledge of ring theory so clarify me if I am wrong. what do you
>> think ?
>>
>> > so that the Z-module representation is just an extension of the
>> Abelian group representation (rather than the other way around).
>> Yes.
>>
>> > Take a look at the AGCA stuff and see what you think.
>> It looks a lot like what I had in mind. Though I din't read every line of
>> it, I am sure it would be a lot helpful for me and will focus more when I
>> start implementing.
>>
>> I have few doubts,
>>
>> What do you think so far ?
>> Are there any areas in group theory where sympy would like to focus ?
>>
>> Thanks,
>> kaushik
>>
>> On Sun, Feb 1, 2015 at 6:01 AM, Aaron Meurer <[email protected]> wrote:
>>
>>> I don't remember if I mentioned this earlier, but for Abelian groups, we
>>> should try to reuse as much of the stuff from the AGCA module as possible.
>>> It already implements a lot of what you are suggesting for modules, and
>>> since Abelian groups are just Z-modules. IMHO, Abelian groups are better
>>> thought of in terms of module theory than group theory, but it would be
>>> nice to have a group theory interface on top of Z-modules.
>>>
>>> Perhaps we should structure the classes along the definition of a module
>>> that a module is a ring and an Abelian group, so that the Z-module
>>> representation is just an extension of the Abelian group representation
>>> (rather than the other way around). Take a look at the AGCA stuff and see
>>> what you think.
>>>
>>> Aaron Meurer
>>>
>>> On Sat, Jan 31, 2015 at 4:19 PM, Joachim Durchholz <[email protected]>
>>> wrote:
>>>
>>>> Am 31.01.2015 um 00:01 schrieb vamsi kaushik:
>>>>
>>>>> Hi Aaron,
>>>>>
>>>>> Thanks for the interest. I had actually created a rough draft of my
>>>>> proposal. But I am very doubtful it has the minute implementation
>>>>> details.
>>>>> However I had outlined my idea very briefly in the wiki here
>>>>> <https://github.com/kaushik94/Proposal/wiki>.
>>>>>
>>>>
>>>> That looks like a lot of thought and code reading went into it, which
>>>> is great.
>>>>
>>>> What's the reasoning behind not subclassing from magma/semi-group?
>>>>
>>>> Regards,
>>>> Jo
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "sympy" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/sympy.
>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>> msgid/sympy/54CD54F9.5060201%40durchholz.org.
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "sympy" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/sympy/xH18C-g-ySQ/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/sympy.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sympy/CAKgW%3D6KfH6Bw%3D2yfS6R1iBjHeXC10On_Uk4gr6sNBqyiWDM6Bw%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/sympy/CAKgW%3D6KfH6Bw%3D2yfS6R1iBjHeXC10On_Uk4gr6sNBqyiWDM6Bw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/sympy.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/sympy/CAK61vZooxm6N%2BmNaUCeRKoDkziCYw%3D3At_FGH6MCwd2spjze%3DA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/sympy/CAK61vZooxm6N%2BmNaUCeRKoDkziCYw%3D3At_FGH6MCwd2spjze%3DA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "sympy" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sympy/xH18C-g-ySQ/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/CAKgW%3D6KZowdcKBPa-SouHArANu9c2tnQTQkmze04dbLm0uWinw%40mail.gmail.com
> <https://groups.google.com/d/msgid/sympy/CAKgW%3D6KZowdcKBPa-SouHArANu9c2tnQTQkmze04dbLm0uWinw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAK61vZp92nT1TeE0SpSO3EBvEsJqphZ_CfwR%2Bfsmn%2B3JAVBUVw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to