On Mon, Aug 24, 2009 at 10:43 PM, Robert
Bradshaw<rober...@math.washington.edu> wrote:
>
> On Aug 23, 2009, at 12:42 PM, William Stein wrote:
>
>> On Sun, Aug 23, 2009 at 12:27 PM, Sebastian Pancratz
>> <s...@pancratz.org> wrote:
>>
>> I think as a first step I'll only implement the additional argument
>> for the two methods "is_field" and "is_integral_domain".
>
> +1 to this idea.
>
>> For the other suggestion, namely to allow the user to assert that a
>> ring is in fact a field, would the following be the "right" way to
>> implement this?  1. Add a new attribute to the ring class, say
>> IS_FIELD, initialised to None, 2. Implement "assert_field(check)" to
>> set IS_FIELD = check, 3. Change "is_field" such that (ignoring the
>> issue about raising an exception or returning False) if IS_FIELD is
>> None it should behave as now and otherwise it should return the value
>> of IS_FIELD.
>>
>> Don't make it upper case.  Make the attribute _is_field.  Otherwise
>> the above sounds great to me.
>
> I'm not sure about this--it means everyone implementing an is_field
> method will have to know about this "trick" and the number of
> properties to know about grows as the number of is_* methods.

You have a really good point.

>  What I'd rather see is something like
>
> sage: R = Zmod(6)
> sage: K = categories.Fields(R, check=False) # any ring R
> sage: K
>  Ring of integers modulo 6 as a field.
> sage: K.is_field()
>   True
>
> where all other methods are inherited via dynamically.

That would be pretty cool.  I'm not sure if I like

sage: K = categories.Fields(R, check=False)

since it could be hard for me to remember.   That said, it does fit
the "Sage/Magma" design philosophy pretty nicely, and is a natural way
to use coercions and categories.

Cool idea.

William

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to