+ The strictly convex component should always be strictly convex, and
+ the subspace component should always be a subspace::
+
+ sage: set_random_seed()
+ sage: K = random_cone(max_ambient_dim=8)
+ sage: (P,S) = motzkin_decomposition(K)
+ sage: P.is_strictly_convex()
+ True
+ sage: S.lineality() == S.dim()
+ True
+
+ The generators of the strictly convex component are obtained from
+ the orthogonal projections of the original generators onto the
+ orthogonal complement of the subspace component::
+
+ sage: set_random_seed()
+ sage: K = random_cone(max_ambient_dim=8)
+ sage: (P,S) = motzkin_decomposition(K)
+ sage: S_perp = S.linear_subspace().complement()
+ sage: A = S_perp.matrix().transpose()
+ sage: proj = A * (A.transpose()*A).inverse() * A.transpose()
+ sage: expected = Cone([ proj*g for g in K ], K.lattice())
+ sage: P.is_equivalent(expected)
+ True