Hi, I did not expect parts of the help text; see Class docstring:
Is there a reason for it? Roland Type: LazyImportString form: The cartesian_product functorial constructionFile: /opt/sagemath-8.9/local/lib/python2.7/site-packages/sage/misc/lazy_import.pyxDocstring: A singleton class for the Cartesian product functor. EXAMPLES: sage: cartesian_product The cartesian_product functorial construction "cartesian_product" takes a finite collection of sets, and constructs the Cartesian product of those sets: sage: A = FiniteEnumeratedSet(['a','b','c']) sage: B = FiniteEnumeratedSet([1,2]) sage: C = cartesian_product([A, B]); C The Cartesian product of ({'a', 'b', 'c'}, {1, 2}) sage: C.an_element() ('a', 1) sage: C.list() # todo: not implemented [['a', 1], ['a', 2], ['b', 1], ['b', 2], ['c', 1], ['c', 2]] If those sets are endowed with more structure, say they are monoids (hence in the category Monoids()), then the result is automatically endowed with its natural monoid structure: sage: M = Monoids().example() sage: M An example of a monoid: the free monoid generated by ('a', 'b', 'c', 'd') sage: M.rename('M') sage: C = cartesian_product([M, ZZ, QQ]) sage: C The Cartesian product of (M, Integer Ring, Rational Field) sage: C.an_element() ('abcd', 1, 1/2) sage: C.an_element()^2 ('abcdabcd', 1, 1/4) sage: C.category() Category of Cartesian products of monoids sage: Monoids().CartesianProducts() Category of Cartesian products of monoids The Cartesian product functor is covariant: if "A" is a subcategory of "B", then "A.CartesianProducts()" is a subcategory of "B.CartesianProducts()" (see also "CovariantFunctorialConstruction"): sage: C.categories() [Category of Cartesian products of monoids, Category of monoids, Category of Cartesian products of semigroups, Category of semigroups, Category of Cartesian products of unital magmas, Category of Cartesian products of magmas, Category of unital magmas, Category of magmas, Category of Cartesian products of sets, Category of sets, ...] [Category of Cartesian products of monoids, Category of monoids, Category of Cartesian products of semigroups, Category of semigroups, Category of Cartesian products of magmas, Category of unital magmas, Category of magmas, Category of Cartesian products of sets, Category of sets, Category of sets with partial maps, Category of objects] Hence, the role of "Monoids().CartesianProducts()" is solely to provide mathematical information and algorithms which are relevant to Cartesian product of monoids. For example, it specifies that the result is again a monoid, and that its multiplicative unit is the Cartesian product of the units of the underlying sets: sage: C.one() ('', 1, 1) Those are implemented in the nested class "Monoids.CartesianProducts" of "Monoids(QQ)". This nested class is itself a subclass of "CartesianProductsCategory".Class docstring: EXAMPLES: sage: from sage.misc.lazy_import import LazyImport sage: my_integer = LazyImport('sage.rings.all', 'Integer') sage: my_integer(4) 4 sage: my_integer('101', base=2) 5 sage: my_integer(3/2) Traceback (most recent call last): ... TypeError: no conversion of this rational to integerInit docstring: EXAMPLES: sage: from sage.misc.lazy_import import LazyImport sage: my_isprime = LazyImport('sage.all', 'is_prime') sage: my_isprime(5) True sage: my_isprime(55) FalseCall docstring: Calling self calls the wrapped object. EXAMPLES: sage: from sage.misc.lazy_import import LazyImport sage: my_isprime = LazyImport('sage.all', 'is_prime') sage: my_isprime(12) False sage: my_isprime(13) True -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/9889d373-5d41-41e4-8e9d-dc92eecc4cd4%40googlegroups.com.