Hi Aaron,

I have submitted the first iteration of my proposal here 
<https://github.com/sympy/sympy/wiki/GSoC-2015-:-Finitely-presented-groups-in-Sympy>.
 
Please take a look and leave a comment.

Thanks,
kaushik

On Tuesday, February 3, 2015 at 3:58:16 AM UTC+5:30, vamsi kaushik 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.
>
> 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/f94772b0-b74a-4e7d-a9b3-62241e111ecb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to