Ask Your Question
3

combinatorial equivalence for Polyhedra / isomorphism for lattices

asked 2014-07-03 10:20:12 +0100

mf gravatar image

updated 2019-04-05 20:35:06 +0100

FrédéricC gravatar image

Is there an easy way to check whether two polyhedra are combinatorial equivalent, i.e. have have isomorphic face lattices.

this does not work:

Poly1=Polyhedron(vertices=[[0,1],[1,0],[1,1]], base_ring=QQ)
Poly2=Polyhedron(vertices=[[2,0],[2,2],[0,2]], base_ring=QQ)
Poly1.face_lattice()==Poly2.face_lattice()

In this case this would work:

str(Poly1.faces(1))==str(Poly2.faces(1))

but what would be a good way to check this in general?

edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted
3

answered 2014-07-03 10:47:43 +0100

vdelecroix gravatar image

Hi,

sage:  Poly1.face_lattice().is_isomorphic(Poly2.face_lattice())
True

You can use X.is_isomorphic(Y) on graphs as well.

Vincent

edit flag offensive delete link more

Comments

perfect, thanks! I don't know how i missed this..

mf gravatar imagemf ( 2014-07-03 11:04:16 +0100 )edit
1

answered 2017-10-09 15:59:14 +0100

jipilab gravatar image

Hi,

Since version 7.6 of Sagemath, there is exactly the required method for Polyhedron objects:

sage: Poly1=Polyhedron(vertices=[[0,1],[1,0],[1,1]], base_ring=QQ)
sage: Poly2=Polyhedron(vertices=[[2,0],[2,2],[0,2]], base_ring=QQ)
sage: Poly1.is_combinatorially_isomorphic(Poly2)
True

It does not requires the computation of the full face lattice (checks vertex/facet adjacency graph isomorphism), hence should be faster than asking for isomorphic face lattices. The algorithm option can still be set to face_lattice to get another certificate option.

edit flag offensive delete link more

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: 2014-07-03 10:20:12 +0100

Seen: 985 times

Last updated: Oct 09 '17