sagemath / sage

Main repository of SageMath. Now open for Issues and Pull Requests.
https://www.sagemath.org
Other
1.19k stars 411 forks source link

Meta-ticket: Families, posets, complexes of manifold subsets #31740

Open mkoeppe opened 3 years ago

mkoeppe commented 3 years ago

New subsets:

RealSet (see also Meta-ticket #20877):

Families and posets of manifold subsets:

Geometric datastructure tools:

Topological tools:

Set_base and ConvexSet_base:

Application to polyhedra and optimization:

CC: @mjungmath @egourgoulhon @tscrim @yuan-zhou

Component: manifolds

Issue created by migration from https://trac.sagemath.org/ticket/31740

mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -3,6 +3,7 @@
 - #31674 Make open subsets of immersed/embedded submanifolds immersed/embedded submanifolds
 - #31677 Open subsets of arbitrary subsets of manifolds
 - #31653 Images of continuous maps and embedded submanifolds as manifold subsets
+- #31644 Topological closure of manifold subsets, embedded submanifolds
 - #31688 Pullbacks of manifold subsets under continuous maps
 - #31724 `ManifoldFiniteSubset`
 - #31685 `ContinuousMap.image`: if map is an isomorphism and `domain_subset` is open, create a submanifold
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -19,9 +19,13 @@
 - #31682 manifolds: Add `_test_...` methods that check invariants of subset relations
 - #30263 `declare_union` yields wrong results

-Application to polyhedra:
+Topological tools:
+
+- #31741 `ManifoldSubset.separating_open_supersets`
+
+Application to polyhedra and optimization:

 - #31659 `Polyhedron.affine_hull_manifold`
 - #31660 `Polyhedron.relative_interior_manifold`
 - #31728 `manifolds.Sphere`: Make relation to simplicial spheres more concrete
-
+- #31742 `MixedIntegerLinearProgram.ambient_manifold`, `feasible_subset`, `objective_scalar_field`, `optimal_subset`
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -7,6 +7,7 @@
 - #31688 Pullbacks of manifold subsets under continuous maps
 - #31724 `ManifoldFiniteSubset`
 - #31685 `ContinuousMap.image`: if map is an isomorphism and `domain_subset` is open, create a submanifold
+- #31743 Charts, transitions, subsets with restrictions defined using `NNC_Polyhedron`

 Families and posets of manifold subsets:
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -23,6 +23,7 @@
 Topological tools:

 - #31741 `ManifoldSubset.separating_open_supersets`
+- #31744 `ManifoldSubset`: Propagate emptiness/nonemptiness using LP

 Application to polyhedra and optimization:
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -4,6 +4,7 @@
 - #31677 Open subsets of arbitrary subsets of manifolds
 - #31653 Images of continuous maps and embedded submanifolds as manifold subsets
 - #31644 Topological closure of manifold subsets, embedded submanifolds
+- #31745 Images of differentiable maps
 - #31688 Pullbacks of manifold subsets under continuous maps
 - #31724 `ManifoldFiniteSubset`
 - #31685 `ContinuousMap.image`: if map is an isomorphism and `domain_subset` is open, create a submanifold
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -32,3 +32,5 @@
 - #31660 `Polyhedron.relative_interior_manifold`
 - #31728 `manifolds.Sphere`: Make relation to simplicial spheres more concrete
 - #31742 `MixedIntegerLinearProgram.ambient_manifold`, `feasible_subset`, `objective_scalar_field`, `optimal_subset`
+- #31376 Complex of differentiable manifolds associated with active sets of nonlinear optimization problems
+
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -33,4 +33,4 @@
 - #31728 `manifolds.Sphere`: Make relation to simplicial spheres more concrete
 - #31742 `MixedIntegerLinearProgram.ambient_manifold`, `feasible_subset`, `objective_scalar_field`, `optimal_subset`
 - #31376 Complex of differentiable manifolds associated with active sets of nonlinear optimization problems
-
+- #31751 Reformulations of optimization problems as continuous maps on manifolds
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -3,7 +3,8 @@
 - #31674 Make open subsets of immersed/embedded submanifolds immersed/embedded submanifolds
 - #31677 Open subsets of arbitrary subsets of manifolds
 - #31653 Images of continuous maps and embedded submanifolds as manifold subsets
-- #31644 Topological closure of manifold subsets, embedded submanifolds
+- #31644 Topological closure of manifold subsets
+- #31757 Topological interior of manifold subsets
 - #31745 Images of differentiable maps
 - #31688 Pullbacks of manifold subsets under continuous maps
 - #31724 `ManifoldFiniteSubset`
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -18,6 +18,8 @@
 - #31732 `ManifoldSubset`: New methods `declare_empty`, `declare_nonempty`, `is_empty`, `has_defined_points`, `open_cover_family`
 - #31727 `ManifoldSubset`: Add methods `subset_family`, `superset_family`, `open_superset_family`; deprecate method `list_of_subsets`
 - #31736 `ManifoldSubset`: New methods `declare_equal`, `equal_subsets`, `equal_subset_family`
+- #31763 `ManifoldSubset`: New methods `declare_subset`, `declare_superset`
+- #31764 `ManifoldSubset`: `union`, `intersection`, `declare_{union,intersection}` with arbitrary number of arguments
 - #31738 `ManifoldSubset.intersection`: Compute more supersets
 - #31682 manifolds: Add `_test_...` methods that check invariants of subset relations
 - #30263 `declare_union` yields wrong results
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -3,6 +3,7 @@
 - #31674 Make open subsets of immersed/embedded submanifolds immersed/embedded submanifolds
 - #31677 Open subsets of arbitrary subsets of manifolds
 - #31653 Images of continuous maps and embedded submanifolds as manifold subsets
+- #31765 `DegenerateManifold`: update subsets code
 - #31644 Topological closure of manifold subsets
 - #31757 Topological interior of manifold subsets
 - #31745 Images of differentiable maps
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -21,6 +21,7 @@
 - #31736 `ManifoldSubset`: New methods `declare_equal`, `equal_subsets`, `equal_subset_family`
 - #31763 `ManifoldSubset`: New methods `declare_subset`, `declare_superset`
 - #31764 `ManifoldSubset`: `union`, `intersection`, `declare_{union,intersection}` with arbitrary number of arguments
+- #31766 `ManifoldSubset`: Replace use of `_top_subsets` by a generator
 - #31738 `ManifoldSubset.intersection`: Compute more supersets
 - #31682 manifolds: Add `_test_...` methods that check invariants of subset relations
 - #30263 `declare_union` yields wrong results
mjungmath commented 3 years ago
comment:13

For me, it gets harder and harder to keep track of the actual changes taking place in a particular ticket since there are a lot of cross-dependencies and no positively reviewed tickets have been merged lately, meaning the changes swiftly accumulate.

It might be helpful to state the ticket number in the commits which would make it easier to track the differences down, at least for me.

Or perhaps there is a nice git feature I am not aware of?

mkoeppe commented 3 years ago
comment:14

git log --first-parent goes a long way

mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -4,7 +4,7 @@
 - #31677 Open subsets of arbitrary subsets of manifolds
 - #31653 Images of continuous maps and embedded submanifolds as manifold subsets
 - #31765 `DegenerateManifold`: update subsets code
-- #31644 Topological closure of manifold subsets
+- #31644 Topological closure of manifold subsets, methods `ManifoldSubset.closure`, `is_closed`, `declare_closed`
 - #31757 Topological interior of manifold subsets
 - #31745 Images of differentiable maps
 - #31688 Pullbacks of manifold subsets under continuous maps
@@ -21,6 +21,7 @@
 - #31736 `ManifoldSubset`: New methods `declare_equal`, `equal_subsets`, `equal_subset_family`
 - #31763 `ManifoldSubset`: New methods `declare_subset`, `declare_superset`
 - #31764 `ManifoldSubset`: `union`, `intersection`, `declare_{union,intersection}` with arbitrary number of arguments
+- #31798 `ManifoldSubset.difference`, `complement`
 - #31766 `ManifoldSubset`: Replace use of `_top_subsets` by a generator
 - #31738 `ManifoldSubset.intersection`: Compute more supersets
 - #31682 manifolds: Add `_test_...` methods that check invariants of subset relations
mjungmath commented 3 years ago
comment:16

I think it would be nice to have something like powerset and topology that dynamically keep track of whether a (open) subset is contained in it.

This might also be a good opportunity to shift all this open_covers and subsets business to those classes and decouple it more from the manifold code. We can consider doing a similar thing for atlases, too. I can imagine that these changes could make pickling of manifolds easier.

This comes handy especially for sheaves, since it would allow to see them as (lazy) families indexed by topology.

Opinions?

mjungmath commented 3 years ago
comment:17

In principle, this could also lead to the more general notion of topological spaces. Manifolds are then nothing but topological spaces equipped with an atlas (roughly).

But to get there eventually, we need a lot of refactoring, i.e. something for the further future.

mjungmath commented 3 years ago
comment:18

This is also good for subset topologies in case of e.g. embedded manifolds.

mkoeppe commented 3 years ago
comment:19

See also #31785 "Category of open subsets of a topological space".

mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -5,6 +5,7 @@
 - #31653 Images of continuous maps and embedded submanifolds as manifold subsets
 - #31765 `DegenerateManifold`: update subsets code
 - #31644 Topological closure of manifold subsets, methods `ManifoldSubset.closure`, `is_closed`, `declare_closed`
+- #30832 Connect `RealSet` to `sage.manifolds`
 - #31757 Topological interior of manifold subsets
 - #31745 Images of differentiable maps
 - #31688 Pullbacks of manifold subsets under continuous maps
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -5,13 +5,19 @@
 - #31653 Images of continuous maps and embedded submanifolds as manifold subsets
 - #31765 `DegenerateManifold`: update subsets code
 - #31644 Topological closure of manifold subsets, methods `ManifoldSubset.closure`, `is_closed`, `declare_closed`
-- #30832 Connect `RealSet` to `sage.manifolds`
 - #31757 Topological interior of manifold subsets
 - #31745 Images of differentiable maps
 - #31688 Pullbacks of manifold subsets under continuous maps
 - #31724 `ManifoldFiniteSubset`
 - #31685 `ContinuousMap.image`: if map is an isomorphism and `domain_subset` is open, create a submanifold
 - #31743 Charts, transitions, subsets with restrictions defined using `NNC_Polyhedron`
+
+`RealSet` (see also Meta-ticket #20877):
+
+- #30832 Connect `RealSet` to `sage.manifolds`
+- #31878 Replace `OpenInterval`, `RealLine` instances by instances of a subclass of `DifferentiableManifold`+`RealSet`
+- #21243 `RealSet`: add `closure` and `interior` methods
+- #31881 `RealSet`: Extend constructors so that they can build manifold objects

 Families and posets of manifold subsets:
egourgoulhon commented 3 years ago

Description changed:

--- 
+++ 
@@ -1,8 +1,8 @@
 New subsets:

-- #31674 Make open subsets of immersed/embedded submanifolds immersed/embedded submanifolds
-- #31677 Open subsets of arbitrary subsets of manifolds
-- #31653 Images of continuous maps and embedded submanifolds as manifold subsets
+- #31674 Make open subsets of immersed/embedded submanifolds immersed/embedded submanifolds *(merged in Sage 9.4.beta1)*
+- #31677 Open subsets of arbitrary subsets of manifolds *(merged in Sage 9.4.beta1)*
+- #31653 Images of continuous maps and embedded submanifolds as manifold subsets *(merged in Sage 9.4.beta1)*
 - #31765 `DegenerateManifold`: update subsets code
 - #31644 Topological closure of manifold subsets, methods `ManifoldSubset.closure`, `is_closed`, `declare_closed`
 - #31757 Topological interior of manifold subsets
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -39,6 +39,14 @@
 - #31741 `ManifoldSubset.separating_open_supersets`
 - #31744 `ManifoldSubset`: Propagate emptiness/nonemptiness using LP

+`Set_base` and `ConvexSet_base`:
+
+- #31916 `{Polyhedron, ConvexRationalPolyhedralCone}.{interior, relative_interior}`
+- #31919 ABC for convex sets
+- #31959 `PolyhedronFace`: Make it a subclass of `ConvexSet_closed`
+- #31990 `ConvexSet_base`: Add methods `an_element`, `some_elements`
+- #32013 Initialize a `Set` from a `ConvexSet_base instance
+
 Application to polyhedra and optimization:

 - #31659 `Polyhedron.affine_hull_manifold`
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -45,7 +45,7 @@
 - #31919 ABC for convex sets
 - #31959 `PolyhedronFace`: Make it a subclass of `ConvexSet_closed`
 - #31990 `ConvexSet_base`: Add methods `an_element`, `some_elements`
-- #32013 Initialize a `Set` from a `ConvexSet_base instance
+- #32013 Initialize a `Set` from a `ConvexSet_base` instance

 Application to polyhedra and optimization:
egourgoulhon commented 3 years ago

Description changed:

--- 
+++ 
@@ -21,14 +21,14 @@

 Families and posets of manifold subsets:

-- #31680 Poset of manifold subsets
-- #31718 `ManifoldSubset`: Change some methods to generators
-- #31732 `ManifoldSubset`: New methods `declare_empty`, `declare_nonempty`, `is_empty`, `has_defined_points`, `open_cover_family`
-- #31727 `ManifoldSubset`: Add methods `subset_family`, `superset_family`, `open_superset_family`; deprecate method `list_of_subsets`
-- #31736 `ManifoldSubset`: New methods `declare_equal`, `equal_subsets`, `equal_subset_family`
-- #31763 `ManifoldSubset`: New methods `declare_subset`, `declare_superset`
-- #31764 `ManifoldSubset`: `union`, `intersection`, `declare_{union,intersection}` with arbitrary number of arguments
-- #31798 `ManifoldSubset.difference`, `complement`
+- #31680 Poset of manifold subsets *(merged in Sage 9.4.beta3)*
+- #31718 `ManifoldSubset`: Change some methods to generators *(merged in Sage 9.4.beta3)*
+- #31732 `ManifoldSubset`: New methods `declare_empty`, `declare_nonempty`, `is_empty`, `has_defined_points`, `open_cover_family` *(merged in Sage 9.4.beta3)*
+- #31727 `ManifoldSubset`: Add methods `subset_family`, `superset_family`, `open_superset_family`; deprecate method `list_of_subsets` *(merged in Sage 9.4.beta3)*
+- #31736 `ManifoldSubset`: New methods `declare_equal`, `equal_subsets`, `equal_subset_family` *(merged in Sage 9.4.beta3)*
+- #31763 `ManifoldSubset`: New methods `declare_subset`, `declare_superset` *(merged in Sage 9.4.beta3)*
+- #31764 `ManifoldSubset`: `union`, `intersection`, `declare_{union,intersection}` with arbitrary number of arguments *(merged in Sage 9.4.beta3)*
+- #31798 `ManifoldSubset.difference`, `complement` *(merged in Sage 9.4.beta3)*
 - #31766 `ManifoldSubset`: Replace use of `_top_subsets` by a generator
 - #31738 `ManifoldSubset.intersection`: Compute more supersets
 - #31682 manifolds: Add `_test_...` methods that check invariants of subset relations
@@ -49,7 +49,7 @@

 Application to polyhedra and optimization:

-- #31659 `Polyhedron.affine_hull_manifold`
+- #31659 `Polyhedron.affine_hull_manifold` *(merged in Sage 9.4.beta3)*
 - #31660 `Polyhedron.relative_interior_manifold`
 - #31728 `manifolds.Sphere`: Make relation to simplicial spheres more concrete
 - #31742 `MixedIntegerLinearProgram.ambient_manifold`, `feasible_subset`, `objective_scalar_field`, `optimal_subset`
egourgoulhon commented 3 years ago

Description changed:

--- 
+++ 
@@ -14,9 +14,9 @@

 `RealSet` (see also Meta-ticket #20877):

-- #30832 Connect `RealSet` to `sage.manifolds`
+- #30832 Connect `RealSet` to `sage.manifolds` *(merged in Sage 9.4.beta4)*
 - #31878 Replace `OpenInterval`, `RealLine` instances by instances of a subclass of `DifferentiableManifold`+`RealSet`
-- #21243 `RealSet`: add `closure` and `interior` methods
+- #21243 `RealSet`: add `closure` and `interior` methods *(merged in Sage 9.4.beta4)*
 - #31881 `RealSet`: Extend constructors so that they can build manifold objects

 Families and posets of manifold subsets:
@@ -41,9 +41,9 @@

 `Set_base` and `ConvexSet_base`:

-- #31916 `{Polyhedron, ConvexRationalPolyhedralCone}.{interior, relative_interior}`
-- #31919 ABC for convex sets
-- #31959 `PolyhedronFace`: Make it a subclass of `ConvexSet_closed`
+- #31916 `{Polyhedron, ConvexRationalPolyhedralCone}.{interior, relative_interior}` *(merged in Sage 9.4.beta4)*
+- #31919 ABC for convex sets *(merged in Sage 9.4.beta4)*
+- #31959 `PolyhedronFace`: Make it a subclass of `ConvexSet_closed` *(merged in Sage 9.4.beta4)*
 - #31990 `ConvexSet_base`: Add methods `an_element`, `some_elements`
 - #32013 Initialize a `Set` from a `ConvexSet_base` instance
egourgoulhon commented 3 years ago

Description changed:

--- 
+++ 
@@ -4,7 +4,7 @@
 - #31677 Open subsets of arbitrary subsets of manifolds *(merged in Sage 9.4.beta1)*
 - #31653 Images of continuous maps and embedded submanifolds as manifold subsets *(merged in Sage 9.4.beta1)*
 - #31765 `DegenerateManifold`: update subsets code
-- #31644 Topological closure of manifold subsets, methods `ManifoldSubset.closure`, `is_closed`, `declare_closed`
+- #31644 Topological closure of manifold subsets, methods `ManifoldSubset.closure`, `is_closed`, `declare_closed` *(merged in Sage 9.4.beta4)*
 - #31757 Topological interior of manifold subsets
 - #31745 Images of differentiable maps
 - #31688 Pullbacks of manifold subsets under continuous maps
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -46,6 +46,7 @@
 - #31959 `PolyhedronFace`: Make it a subclass of `ConvexSet_closed` *(merged in Sage 9.4.beta4)*
 - #31990 `ConvexSet_base`: Add methods `an_element`, `some_elements`
 - #32013 Initialize a `Set` from a `ConvexSet_base` instance
+- #32089 `ConditionSet`

 Application to polyhedra and optimization:
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -34,6 +34,9 @@
 - #31682 manifolds: Add `_test_...` methods that check invariants of subset relations
 - #30263 `declare_union` yields wrong results

+Geometric datastructure tools:
+- #32170 Containers for families of geometric objects
+
 Topological tools:

 - #31741 `ManifoldSubset.separating_open_supersets`
egourgoulhon commented 2 years ago

Description changed:

--- 
+++ 
@@ -7,7 +7,7 @@
 - #31644 Topological closure of manifold subsets, methods `ManifoldSubset.closure`, `is_closed`, `declare_closed` *(merged in Sage 9.4.beta4)*
 - #31757 Topological interior of manifold subsets
 - #31745 Images of differentiable maps
-- #31688 Pullbacks of manifold subsets under continuous maps
+- #31688 Pullbacks (preimages) of manifold subsets under continuous maps *(merged in Sage 9.4.beta5)*
 - #31724 `ManifoldFiniteSubset`
 - #31685 `ContinuousMap.image`: if map is an isomorphism and `domain_subset` is open, create a submanifold
 - #31743 Charts, transitions, subsets with restrictions defined using `NNC_Polyhedron`
@@ -47,7 +47,7 @@
 - #31916 `{Polyhedron, ConvexRationalPolyhedralCone}.{interior, relative_interior}` *(merged in Sage 9.4.beta4)*
 - #31919 ABC for convex sets *(merged in Sage 9.4.beta4)*
 - #31959 `PolyhedronFace`: Make it a subclass of `ConvexSet_closed` *(merged in Sage 9.4.beta4)*
-- #31990 `ConvexSet_base`: Add methods `an_element`, `some_elements`
+- #31990 `ConvexSet_base`: Add methods `an_element`, `some_elements` *(merged in Sage 9.4.beta5)*
 - #32013 Initialize a `Set` from a `ConvexSet_base` instance
 - #32089 `ConditionSet`
egourgoulhon commented 2 years ago

Description changed:

--- 
+++ 
@@ -17,7 +17,7 @@
 - #30832 Connect `RealSet` to `sage.manifolds` *(merged in Sage 9.4.beta4)*
 - #31878 Replace `OpenInterval`, `RealLine` instances by instances of a subclass of `DifferentiableManifold`+`RealSet`
 - #21243 `RealSet`: add `closure` and `interior` methods *(merged in Sage 9.4.beta4)*
-- #31881 `RealSet`: Extend constructors so that they can build manifold objects
+- #31881 `RealSet`: Extend constructors so that they can build manifold objects *(merged in Sage 9.4.rc0)*

 Families and posets of manifold subsets:

@@ -48,8 +48,8 @@
 - #31919 ABC for convex sets *(merged in Sage 9.4.beta4)*
 - #31959 `PolyhedronFace`: Make it a subclass of `ConvexSet_closed` *(merged in Sage 9.4.beta4)*
 - #31990 `ConvexSet_base`: Add methods `an_element`, `some_elements` *(merged in Sage 9.4.beta5)*
-- #32013 Initialize a `Set` from a `ConvexSet_base` instance
-- #32089 `ConditionSet`
+- #32013 Initialize a `Set` from a `ConvexSet_base` instance *(merged in Sage 9.4.beta6)*
+- #32089 `ConditionSet` *(merged in Sage 9.4.beta6)*

 Application to polyhedra and optimization: