First example, nothing unexpected.  Note that P is created with a
tuple and Q with a list.

sage: P2 = ProjectiveSpace(GF(2),2)
sage: P = P2.point((0,0,1))
sage: Q = P2.point([0,0,1])
sage: P
(0 : 0 : 1)
sage: Q
(0 : 0 : 1)
sage: P==Q
True
sage: P._coords
[0, 0, 1]
sage: Q._coords
[0, 0, 1]


Now the same but with "check=False":

sage: P = P2.point((0,0,1),check=False)
sage: Q = P2.point([0,0,1],check=False)
sage: P
(0 : 0 : 1)
sage: Q
(0 : 0 : 1)
sage: P==Q
False
sage: P._coords
(0, 0, 1)
sage: Q._coords
[0, 0, 1]

The point is that on creation of the point, valid tuple input is
converted to a list, unless check=False in which case tuples are left
as tuples.  This can result in wrong results.

I know that users should only use "check=False" if they know what they
are doing!  This caught me out while writing a patch for #8193 (which
I used to show a new student the ropes, but testing it led us to this
weirdness!).  I suggest that the point-creation function takes the
trouble to always store _coords in a consistent way, presumably as a
list as at present (thought surely a tuple would be better?)

John

-- 
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
URL: http://www.sagemath.org

Reply via email to