Opened 7 years ago

Last modified 4 years ago

#13347 new task

Check doctest examples using QuotientRings, which do not fulfill the assumptions made on the ideal

Reported by: tfeulner Owned by: mvngu
Priority: major Milestone: sage-6.4
Component: doctest coverage Keywords:
Cc: mstreng Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by saraedum)

The following files use quotient rings in their doctest examples, which contradict the assumption on the defining ideal:

ASSUMPTION:

I has a method I.reduce(x) returning the normal form of elements x\in R. In other words, it is required that I.reduce(x)==I.reduce(y) \iff x-y \in I, and x-I.reduce(x) in I, for all x,y\in R.

  • sage/categories/pushout.py :
    • QuotientFunctor?.cmp
                  sage: P.<x> = QQ[]
                  sage: F = P.quo([(x^2+1)^2*(x^2-3),(x^2+1)^2*(x^5+3)]).construction()[0]
                  sage: F == loads(dumps(F))
                  True
                  sage: P2.<x,y> = QQ[]
                  sage: F == P2.quo([(x^2+1)^2*(x^2-3),(x^2+1)^2*(x^5+3)]).construction()[0]
                  False
                  sage: P3.<x> = ZZ[]
                  sage: F == P3.quo([(x^2+1)^2*(x^2-3),(x^2+1)^2*(x^5+3)]).construction()[0]
                  True
      
  • sage/categories/rings.py :
    • Rings.quotient
                      sage: F.<x,y,z> = FreeAlgebra(QQ, 3)
                      sage: I = F*[x*y+y*z,x^2+x*y-y*x-y^2]*F
                      sage: Q = Rings().parent_class.quotient(F,I); Q
      
    • Rings.quo
                      sage: MS = MatrixSpace(QQ,2)
                      sage: MS.full_category_initialisation()
                      sage: I = MS*MS.gens()*MS   
                      sage: MS.quo(I,names = ['a','b','c','d'])
      
    • Rings.quotient_ring
                      sage: MS = MatrixSpace(QQ,2)
                      sage: I = MS*MS.gens()*MS
                      sage: MS.quotient_ring(I,names = ['a','b','c','d'])
      
  • sage/structure/category_object.pyx :
    • CategoryObject?.temporarily_change_names
                  sage: MS = MatrixSpace(GF(5),2,2)
                  sage: I = MS*[MS.0*MS.1,MS.2+MS.3]*MS
                  sage: Q.<a,b,c,d> = MS.quo(I)
      
  • sage/rings/quotient_ring_element.py :
    • QuotientRingElement?
              sage: R.<x> = PolynomialRing(ZZ)
              sage: S.<xbar> = R.quo((4 + 3*x + x^2, 1 + x^2)); S
      
    • QuotientRingElement?.init
                  sage: R.<x> = PolynomialRing(ZZ)
                  sage: S.<xbar> = R.quo((4 + 3*x + x^2, 1 + x^2)); S
      
    • QuotientRingElement?._repr_
                  sage: S = SteenrodAlgebra(2)
                  sage: I = S*[S.0+S.1]*S
                  sage: Q = S.quo(I)
      
  • sage/rings/morphism.pyx :
    • RingMap_lift
              sage: MS = MatrixSpace(GF(5),2,2)
              sage: I = MS*[MS.0*MS.1,MS.2+MS.3]*MS
              sage: Q = MS.quo(I)
      
  • sage/rings/ring.pyx:
    • Ring.ideal_monoid
                  sage: F.<x,y,z> = FreeAlgebra(ZZ, 3)
                  sage: I = F*[x*y+y*z,x^2+x*y-y*x-y^2]*F
                  sage: Q = sage.rings.ring.Ring.quotient(F,I)
      
    • Ring.quotient
                  sage: R.<x> = PolynomialRing(ZZ)
                  sage: I = R.ideal([4 + 3*x + x^2, 1 + x^2])
                  sage: S = R.quotient(I, 'a')
      
    • Ring.quotient_ring
                  sage: R.<x> = PolynomialRing(ZZ)
                  sage: I = R.ideal([4 + 3*x + x^2, 1 + x^2])
                  sage: S = R.quotient_ring(I, 'a')
                  sage: S.gens()
      

These examples have to be modified, one possibility is that they use quotient rings which fulfill the assumption or the reduce function of the corresponding ideal class must be provided.

See also ticket:13345 and https://groups.google.com/d/topic/sage-devel/s5y604ZPiQ8/discussion.

Change History (7)

comment:1 Changed 7 years ago by mstreng

  • Description modified (diff)

Wow, that's a long list of faulty quotient rings in the documentation! Can you add the examples themselves, as line numbers tend to change a lot as Sage evolves?

comment:2 Changed 7 years ago by tfeulner

  • Description modified (diff)

comment:3 Changed 6 years ago by jdemeyer

  • Milestone changed from sage-5.11 to sage-5.12

comment:4 Changed 6 years ago by vbraun_spam

  • Milestone changed from sage-6.1 to sage-6.2

comment:5 Changed 6 years ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:6 Changed 5 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:7 Changed 4 years ago by saraedum

  • Description modified (diff)
Note: See TracTickets for help on using tickets.