Ask Your Question
1

Can the base ring of a polyhedron be restricted?

asked 2016-08-17 20:03:20 -0500

done_with_fish gravatar image

updated 2016-08-17 21:42:33 -0500

I have a polyhedron P with rational vertices

sage: A = matrix([[1,0,0],[1,0,2],[1,1,1],[1,3/2,0]])
sage: A
[  1   0   0]
[  1   0   2]
[  1   1   1]
[  1 3/2   0]
sage: P = Polyhedron(A)
sage: P
A 2-dimensional polyhedron in QQ^3 defined as the convex hull  of 4 vertices

If we scale P by a factor of two, then we get a lattice polytope.

sage: (2*P).is_lattice_polytope()
True

However, the base ring of P is still QQ

sage: (2*P).parent()
Polyhedra in QQ^3

Since 2*P is a lattice polytope it seems like it should be possible to restrict the base ring of 2*P to ZZ. Is this possible?

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
1

answered 2016-08-18 07:09:07 -0500

tmonteil gravatar image

updated 2016-08-18 07:12:44 -0500

I could not find any change_ring method or similar, but you can to the following by changing the ring of the vertices (note the transpose since the vertices are given as columns not rows):

sage: R  = Polyhedron((2*P).vertices_matrix().transpose().change_ring(ZZ))
sage: R
A 2-dimensional polyhedron in ZZ^3 defined as the convex hull of 4 vertices
sage: 2*P
A 2-dimensional polyhedron in QQ^3 defined as the convex hull of 4 vertices
sage: R == 2*P
True
edit flag offensive delete link more

Comments

Thanks for the tip. It seems like sage should automatically change the ring to ZZ whenever P is a lattice polytope.

done_with_fish gravatar imagedone_with_fish ( 2016-08-18 14:31:30 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2016-08-17 20:03:20 -0500

Seen: 36 times

Last updated: Aug 18 '16