Opened 5 months ago

Last modified 4 weeks ago

#34461 new enhancement


Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-9.9
Component: categories Keywords:
Cc: tscrim Merged in:
Authors: Matthias Koeppe Reviewers:
Report Upstream: N/A Work issues:
Branch: u/mkoeppe/facadeinclusionmorphism (Commits, GitHub, GitLab) Commit: 5db7f09b61764f63d00f388edc45d271ef852f20
Dependencies: Stopgaps:

Status badges

Description (last modified by mkoeppe)

To discuss the notion of "set inclusion" in the presence of coercion, we need to be able to discover inclusion morphisms (= injective coercion morphisms).

One mechanism to model subsets is through facade sets. But the relation of facade parents to the parent that they are a facade to is not known to the coercion system.

By registering a FacadeInclusionMorphism as a coercion, we can make this relation discoverable.

sage: from sage.categories.pushout import pushout
sage: from sage.categories.morphism import FacadeInclusionMorphism
sage: S = Sets().Facade().example(); S
An example of facade set: the monoid of positive integers
sage: iota = FacadeInclusionMorphism(Hom(S, ZZ))
sage: iota.register_as_coercion()
sage: pushout(S, ZZ)
Integer Ring

Change History (5)

comment:1 Changed 5 months ago by mkoeppe

Branch: u/mkoeppe/facadeinclusionmorphism

comment:2 Changed 5 months ago by mkoeppe

Authors: Matthias Koeppe
Cc: tscrim added
Commit: 5db7f09b61764f63d00f388edc45d271ef852f20
Description: modified (diff)

New commits:

5db7f09src/sage/categories/morphism.pyx (FacadeInclusionMorphism): New

comment:3 Changed 5 months ago by mkoeppe

Description: modified (diff)

comment:4 Changed 5 months ago by mkoeppe

Milestone: sage-9.7sage-9.8

comment:5 Changed 4 weeks ago by mkoeppe

Milestone: sage-9.8sage-9.9
Note: See TracTickets for help on using tickets.