sage: all([face_generated_by(K, [r]) == Cone([r]) for r in K])
True
+ For any point ``x`` in ``K`` and any face ``F`` of ``K``, we have
+ that ``x`` is in the relative interior of ``F`` if and only if
+ ``F`` is the face generated by ``x`` [Tam]_::
+
+ sage: set_random_seed()
+ sage: K = random_cone(max_ambient_dim=8, max_rays=10)
+ sage: x = K.random_element()
+ sage: S = [x]
+ sage: F = K.face_lattice().random_element()
+ sage: expected = F.relative_interior_contains(x)
+ sage: actual = (F == face_generated_by(K, S))
+ sage: actual == expected
+ True
+
"""
face_lattice = K.face_lattice()
candidates = [F for F in face_lattice if all([F.contains(x) for x in S])]