Both arguments must lie in the same ambient space. Then isFace computes all faces of Y with the dimension of X and checks if one of them is X.
i1 : P = hypercube 3
o1 = {ambient dimension => 3 }
dimension of lineality space => 0
dimension of polyhedron => 3
number of facets => 6
number of rays => 0
number of vertices => 8
o1 : Polyhedron
i2 : Q = convexHull matrix{{1,1,1},{1,1,-1},{1,-1,1}}
o2 = {ambient dimension => 3 }
dimension of lineality space => 0
dimension of polyhedron => 2
number of facets => 3
number of rays => 0
number of vertices => 3
o2 : Polyhedron
i3 : isFace(Q,P)
o3 = false
Thus, Q is not a face of P, but we can extend it to a face.
i5 : Q = convexHull{Q,v}
o5 = {ambient dimension => 3 }
dimension of lineality space => 0
dimension of polyhedron => 2
number of facets => 4
number of rays => 0
number of vertices => 4
o5 : Polyhedron