]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
mjo/cone/faces.py: add another reducibility test master
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 31 Oct 2024 22:00:07 +0000 (18:00 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 31 Oct 2024 22:00:07 +0000 (18:00 -0400)
mjo/cone/faces.py

index 0d9986d23c546af4af8e4a843faca9884b20c649..5669a0ef886497b63085ffdeaf8ca73fa6130936 100644 (file)
@@ -206,6 +206,21 @@ def dual_face(K,F):
         sage: all(check_prop(K,F) for F in K.face_lattice())
         True
 
         sage: all(check_prop(K,F) for F in K.face_lattice())
         True
 
+    This is a sufficient condition for the ``K``-reducibility of ``L``
+    with respect to ``K`` (in the sense of Elsner and Gowda) to imply
+    the ``K.dual()``-reducibility of ``L.transpose()``. It should hold
+    for polyhedral cones because ``K - F`` is closed for each face
+    ``F`` of ``K`` -- this is Proposition 6 in one of my open
+    questions::
+
+        sage: def check_prop(K,F):
+        ....:     L1 = F.span()
+        ....:     L2 = dual_face(K,F).orthogonal_sublattice()
+        ....:     return L1.vector_space() == L2.vector_space()
+        sage: K = random_cone()
+        sage: all(check_prop(K,F) for F in K.face_lattice())
+        True
+
     """
     if not F.is_face_of(K):
         raise ValueError("%s is not a face of %s" % (F,K))
     """
     if not F.is_face_of(K):
         raise ValueError("%s is not a face of %s" % (F,K))