Skip to content

symbolic ring, coercion, restriction: compatible? #30232

@mjungmath

Description

@mjungmath

At the current stage, we get the following output:

sage: M = Manifold(2, 'M', structure='topological') # the 2-dimensional sphere S^2
sage: U = M.open_subset('U') # complement of the North pole
sage: c_xy.<x,y> = U.chart() # stereographic coordinates from the North pole
sage: V = M.open_subset('V') # complement of the South pole
sage: c_uv.<u,v> = V.chart() # stereographic coordinates from the South pole
sage: M.declare_union(U,V)   # S^2 is the union of U and V
sage: xy_to_uv = c_xy.transition_map(c_uv, (x/(x^2+y^2), y/(x^2+y^2)),
....:                                intersection_name='W',
....:                                restrictions1= x^2+y^2!=0,
....:                                restrictions2= u^2+v^2!=0)
sage: uv_to_xy = xy_to_uv.inverse()
sage: f = M.scalar_field_algebra()(x+u)
sage: f.display()
M --> R
sage: f._express
{}

This output is not consistent with the coercion model, in particular not with the coercion SR -> ScalarFieldAlgebra. First of all, each element in SR should give rise to a well-defined element in ScalarFieldAlgebra. This is not fulfilled in the first example. More precisely:

sage: g = A(x)
sage: g.display()
M --> R
on U: (x, y) |--> x
on W: (u, v) |--> u/(u^2 + v^2)
sage: h = V.scalar_field_algebra()(x)
sage: h.display()
V --> R
on W: (u, v) |--> u/(u^2 + v^2)
on W: (x, y) |--> x

The scalar fields resulting from the coercion SR -> ScalarFieldAlgebra are not defined on the whole manifold, as they should be for a coercion. In fact, the results are not even well-defined since they are not uniquely determined by the input.

Things get more out of control if no transition map is stated (for example, the transitivity axiom for coercions is violated). However, we probably can assume that this would not reflect the intended usage.

CC: @egourgoulhon @mkoeppe @tscrim

Component: manifolds

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions