+ sage: set_random_seed()
+ sage: K = random_cone(max_ambient_dim = 8)
+ sage: K_S = _restrict_to_space(K, K.span())
+ sage: K_SP = _restrict_to_space(K_S.dual(), K_S.dual().span()).dual()
+ sage: K_SP.is_proper()
+ True
+ sage: K_SP = _restrict_to_space(K_S, K_S.dual().span())
+ sage: K_SP.is_proper()
+ True
+
+ Test the proposition in our paper concerning the duals and
+ restrictions. Generate a random cone, then create a subcone of
+ it. The operation of dual-taking should then commute with
+ _restrict_to_space::
+
+ sage: set_random_seed()
+ sage: J = random_cone(max_ambient_dim = 8)
+ sage: K = Cone(random_sublist(J.rays(), 0.5), lattice=J.lattice())
+ sage: K_W_star = _restrict_to_space(K, J.span()).dual()
+ sage: K_star_W = _restrict_to_space(K.dual(), J.span())
+ sage: _basically_the_same(K_W_star, K_star_W)
+ True