Examples of parents endowed with multiple realizations¶

class sage.categories.examples.with_realizations.SubsetAlgebra(R, S)

An example of parent endowed with several realizations

We consider an algebra $$A(S)$$ whose bases are indexed by the subsets $$s$$ of a given set $$S$$. We consider three natural basis of this algebra: F, In, and Out. In the first basis, the product is given by the union of the indexing sets. That is, for any $$s, t\subset S$$

$F_s F_t = F_{s\cup t}$

The In basis and Out basis are defined respectively by:

$In_s = \sum_{t\subset s} F_t \qquad\text{and}\qquad F_s = \sum_{t\supset s} Out_t$

Each such basis gives a realization of $$A$$, where the elements are represented by their expansion in this basis.

This parent, and its code, demonstrate how to implement this algebra and its three realizations, with coercions and mixed arithmetic between them.

EXAMPLES:

sage: A = Sets().WithRealizations().example(); A
The subset algebra of {1, 2, 3} over Rational Field
sage: A.base_ring()
Rational Field

The three bases of A:

sage: F   = A.F()  ; F
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
sage: In  = A.In() ; In
The subset algebra of {1, 2, 3} over Rational Field in the In basis
sage: Out = A.Out(); Out
The subset algebra of {1, 2, 3} over Rational Field in the Out basis

One can quickly define all the bases using the following shortcut:

sage: A.inject_shorthands()
Defining F as shorthand for The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
Defining In as shorthand for The subset algebra of {1, 2, 3} over Rational Field in the In basis
Defining Out as shorthand for The subset algebra of {1, 2, 3} over Rational Field in the Out basis

Accessing the basis elements is done with basis() method:

sage: F.basis().list()
[F[{}], F[{1}], F[{2}], F[{3}], F[{1, 2}], F[{1, 3}], F[{2, 3}], F[{1, 2, 3}]]

To access a particular basis element, you can use the from_set() method:

sage: F.from_set(2,3)
F[{2, 3}]
sage: In.from_set(1,3)
In[{1, 3}]

or as a convenient shorthand, one can use the following notation:

sage: F[2,3]
F[{2, 3}]
sage: In[1,3]
In[{1, 3}]

Some conversions:

sage: F(In[2,3])
F[{}] + F[{2}] + F[{3}] + F[{2, 3}]
sage: In(F[2,3])
In[{}] - In[{2}] - In[{3}] + In[{2, 3}]

sage: Out(F)
Out[{3}] + Out[{1, 3}] + Out[{2, 3}] + Out[{1, 2, 3}]
sage: F(Out)
F[{3}] - F[{1, 3}] - F[{2, 3}] + F[{1, 2, 3}]

sage: Out(In[2,3])
Out[{}] + Out[{1}] + 2*Out[{2}] + 2*Out[{3}] + 2*Out[{1, 2}] + 2*Out[{1, 3}] + 4*Out[{2, 3}] + 4*Out[{1, 2, 3}]

We can now mix expressions:

sage: (1 + Out) * In[2,3]
Out[{}] + 2*Out[{1}] + 2*Out[{2}] + 2*Out[{3}] + 2*Out[{1, 2}] + 2*Out[{1, 3}] + 4*Out[{2, 3}] + 4*Out[{1, 2, 3}]
class Bases(parent_with_realization)

The category of the realizations of the subset algebra

class ParentMethods
from_set(*args)

Construct the monomial indexed by the set containing the elements passed as arguments.

EXAMPLES:

sage: In = Sets().WithRealizations().example().In(); In
The subset algebra of {1, 2, 3} over Rational Field in the In basis
sage: In.from_set(2,3)
In[{2, 3}]

As a shorthand, one can construct elements using the following notation:

sage: In[2,3]
In[{2, 3}]
one()

Returns the unit of this algebra.

This default implementation takes the unit in the fundamental basis, and coerces it in self.

EXAMPLES:

sage: A = Sets().WithRealizations().example(); A
The subset algebra of {1, 2, 3} over Rational Field
sage: In = A.In(); Out = A.Out()
sage: In.one()
In[{}]
sage: Out.one()
Out[{}] + Out[{1}] + Out[{2}] + Out[{3}] + Out[{1, 2}] + Out[{1, 3}] + Out[{2, 3}] + Out[{1, 2, 3}]
super_categories()

EXAMPLES:

sage: A = Sets().WithRealizations().example(); A
The subset algebra of {1, 2, 3} over Rational Field
sage: C = A.Bases(); C
Category of bases of The subset algebra of {1, 2, 3} over Rational Field
sage: C.super_categories()
[Category of realizations of The subset algebra of {1, 2, 3} over Rational Field,
Join of Category of algebras with basis over Rational Field and
Category of commutative algebras over Rational Field and
Category of realizations of unital magmas]
F

alias of SubsetAlgebra.Fundamental

class Fundamental(A)

The Subset algebra, in the fundamental basis

INPUT:

EXAMPLES:

sage: A = Sets().WithRealizations().example()
sage: A.F()
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
sage: A.Fundamental()
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
one()

Return the multiplicative unit element.

EXAMPLES:

sage: A = AlgebrasWithBasis(QQ).example()
sage: A.one_basis()
word:
sage: A.one()
B[word: ]
one_basis()

Returns the index of the basis element which is equal to ‘1’.

EXAMPLES:

sage: F = Sets().WithRealizations().example().F(); F
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
sage: F.one_basis()
{}
sage: F.one()
F[{}]
product_on_basis(left, right)

Product of basis elements, as per AlgebrasWithBasis.ParentMethods.product_on_basis().

INPUT:

• left, right – sets indexing basis elements

EXAMPLES:

sage: F = Sets().WithRealizations().example().F(); F
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
sage: S = F.basis().keys(); S
Subsets of {1, 2, 3}
sage: F.product_on_basis(S([]), S([]))
F[{}]
sage: F.product_on_basis(S({1}), S({3}))
F[{1, 3}]
sage: F.product_on_basis(S({1,2}), S({2,3}))
F[{1, 2, 3}]
class In(A)

The Subset Algebra, in the In basis

INPUT:

EXAMPLES:

sage: A = Sets().WithRealizations().example()
sage: A.In()
The subset algebra of {1, 2, 3} over Rational Field in the In basis
class Out(A)

The Subset Algebra, in the $$Out$$ basis

INPUT:

EXAMPLES:

sage: A = Sets().WithRealizations().example()
sage: A.Out()
The subset algebra of {1, 2, 3} over Rational Field in the Out basis
a_realization()

Returns the default realization of self

EXAMPLES:

sage: A = Sets().WithRealizations().example(); A
The subset algebra of {1, 2, 3} over Rational Field
sage: A.a_realization()
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
base_set()

EXAMPLES:

sage: A = Sets().WithRealizations().example(); A
The subset algebra of {1, 2, 3} over Rational Field
sage: A.base_set()
{1, 2, 3}
indices()

The objects that index the basis elements of this algebra.

EXAMPLES:

sage: A = Sets().WithRealizations().example(); A
The subset algebra of {1, 2, 3} over Rational Field
sage: A.indices()
Subsets of {1, 2, 3}
indices_key(x)

A key function on a set which gives a linear extension of the inclusion order.

INPUT:

• x – set

EXAMPLES:

sage: A = Sets().WithRealizations().example(); A
The subset algebra of {1, 2, 3} over Rational Field
sage: sorted(A.indices(), key=A.indices_key)
[{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}]
supsets(set)

Returns all the subsets of $$S$$ containing set

INPUT:

• set – a subset of the base set $$S$$ of self

EXAMPLES:

sage: A = Sets().WithRealizations().example(); A
The subset algebra of {1, 2, 3} over Rational Field
sage: A.supsets(Set((2,)))
[{1, 2, 3}, {2, 3}, {1, 2}, {2}]