ok, so that is what the logic is.

Not begin familiar with the different polynomial ring classes: is there a 
reason not to implement the monomial_divides function in that class? I 
think the current function just checks the exponents and it's lack is 
preventing the groebner basis from running.

On Monday, February 29, 2016 at 2:25:45 PM UTC-6, David Roe wrote:
>
>
>
> On Mon, Feb 29, 2016 at 9:19 AM, Ben Hutz <bn4...@gmail.com <javascript:>> 
> wrote:
>
>> I was exploring some quotient ring operations and came across the 
>> following:
>>
>> {{{
>> R.<y>=QQ[]
>> K.<w>=NumberField(y^3 + 2*y - 2401)
>> k.<v>=K.quo(K.prime_factors(7)[1])
>> R.<x,y>=PolynomialRing(k)
>> R.monomial_divides(y,x^3*y)
>> Error
>> }}}
>>
>> {{{
>> R.<y>=QQ[]
>> K.<w>=NumberField(y^3 + 2*y - 2401)
>> k.<v>=K.residue_field(K.prime_factors(7)[1])
>> R.<x,y>=PolynomialRing(k)
>> R.monomial_divides(y,x^3*y)
>> True
>> }}}
>>
>> The second works, the first does not. I came across this since 
>> .monomial_divides is used is a groebner basis computation. So played around 
>> a little more and the following seems weirder
>>
>> {{{
>> A.<x,y,z> = PolynomialRing(Zmod(42))
>> A.monomial_divides(y,x^2*y)
>> True
>> }}}
>>
>> {{{
>> A.<x,y,z> = PolynomialRing(Zmod(2521515232))  #but one less digit works
>> A.monomial_divides(y,x^2*y)
>> Error
>> }}
>>
>> The first works, but the 2nd does not, even though neither is prime. It 
>> seems to have to do with what type of polynomial ring they are initialized 
>> as, but I had a hard time tracking down where that code lived and how it 
>> decided. Is there someone familiar with polynomial rings in Sage who could 
>> shed some light on whether this is expected behavior?
>>
>
> The difference is that we use singular over Z/n for small enough n.  You 
> can detect this in the types of the polynomial rings:
>
> sage: A.<x,y,z> = PolynomialRing(Zmod(42))
> sage: type(A)
> <type 
> 'sage.rings.polynomial.multi_polynomial_libsingular.MPolynomialRing_libsingular'>
> sage: A.<x,y,z> = PolynomialRing(Zmod(2521515232))
> sage: type(A)
> <class 
> 'sage.rings.polynomial.multi_polynomial_ring.MPolynomialRing_polydict_with_category'>
>
> The monomial_divides method just isn't implemented 
> for MPolynomialRing_polydict.
> David
>
>>
>> Thanks,
>>   Ben
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "sage-devel" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to sage-devel+...@googlegroups.com <javascript:>.
>> To post to this group, send email to sage-...@googlegroups.com 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/sage-devel.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to