Opened 5 months ago

Last modified 3 months ago

#31878 new enhancement

Replace OpenInterval, RealLine instances by instances of a subclass of DifferentiableManifold+RealSet

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-9.5
Component: manifolds Keywords:
Cc: egourgoulhon, tscrim, gh-mjungmath Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: #31881 Stopgaps:

Status badges

Description (last modified by mkoeppe)

(from discussion in https://trac.sagemath.org/ticket/30832#comment:14)

We represent open intervals and the real line, when they are to be considered as manifold objects, as an instance of a subclass of DifferentiableManifold and RealSet.

Likewise, arbitrary finite unions of intervals become instances of a subclass of ManifoldSubset and RealSet.

Compared to ManifoldSubset, the methods union and intersection are replaced by a more specific implementation.

OpenInterval and RealLine will no longer be classes, only constructors.

More general implementation using #31688 (pullbacks of subsets under continuous maps). In this case we would not need to subclass RealSet, but rather we would use a pullback.

This will also solve https://trac.sagemath.org/ticket/30830#comment:18:

OpenInterval should silently return a RealLine instance if lower == minus_infinity and upper == infinity.

Some API changes to consider:

  • constructor RealSets.point clashes with Manifold.point, could replace by RealSets.singleton.
  • deprecate OpenInterval.upper_bound, OpenInterval.lower_bound
  • #31927: RealSet: Replace is_included_in, is_disjoint_from by is_subset, is_disjoint
  • RealSet.are_pairwise_disjoint, contains
  • ManifoldSubset.complement has optional arg superset
  • RealSet.open vs OpenInterval.open_interval
  • RealSet.cardinality, n_components
  • ManifoldSubset.has_defined_points

Change History (11)

comment:1 Changed 5 months ago by mkoeppe

  • Description modified (diff)
  • Summary changed from OpenInterval(-oo, oo) vs RealLine() to Replace OpenInterval, RealLine instances by an instance of a subclass of DifferentiableManifold+RealSet

comment:2 Changed 5 months ago by mkoeppe

  • Summary changed from Replace OpenInterval, RealLine instances by an instance of a subclass of DifferentiableManifold+RealSet to Replace OpenInterval, RealLine instances by instances of a subclass of DifferentiableManifold+RealSet

comment:3 Changed 5 months ago by mkoeppe

  • Description modified (diff)

comment:4 Changed 5 months ago by mkoeppe

  • Dependencies set to #30832, #31880, #31877

comment:5 Changed 5 months ago by mkoeppe

  • Description modified (diff)

comment:6 Changed 5 months ago by mkoeppe

  • Description modified (diff)

comment:7 Changed 4 months ago by mkoeppe

  • Description modified (diff)

comment:8 Changed 4 months ago by mkoeppe

  • Dependencies changed from #30832, #31880, #31877 to #30832, #31880, #31877, #31688

comment:9 Changed 4 months ago by mkoeppe

  • Description modified (diff)

comment:10 Changed 3 months ago by mkoeppe

  • Dependencies changed from #30832, #31880, #31877, #31688 to #31881

comment:11 Changed 3 months ago by mkoeppe

  • Milestone changed from sage-9.4 to sage-9.5
Note: See TracTickets for help on using tickets.