Subrings of the Symbolic Ring¶
Subrings of the symbolic ring can be created via the
subring()
method of
SR
. This will call SymbolicSubring
of this module.
The following kinds of subrings are supported:
A symbolic subring of expressions, whose variables are contained in a given set of symbolic variables (see
SymbolicSubringAcceptingVars
). E.g.sage: SR.subring(accepting_variables=('a', 'b')) Symbolic Subring accepting the variables a, b
A symbolic subring of expressions, whose variables are disjoint to a given set of symbolic variables (see
SymbolicSubringRejectingVars
). E.g.sage: SR.subring(rejecting_variables=('r', 's')) Symbolic Subring rejecting the variables r, s
The subring of symbolic constants (see
SymbolicConstantsSubring
). E.g.sage: SR.subring(no_variables=True) Symbolic Constants Subring
AUTHORS:
Daniel Krenn (2015)
Classes and Methods¶
- class sage.symbolic.subring.GenericSymbolicSubring(vars)¶
Bases:
sage.symbolic.ring.SymbolicRing
An abstract base class for a symbolic subring.
INPUT:
vars
– a tuple of symbolic variables.
- has_valid_variable(variable)¶
Return whether the given
variable
is valid in this subring.INPUT:
variable
– a symbolic variable.
OUTPUT:
A boolean.
EXAMPLES:
sage: from sage.symbolic.subring import GenericSymbolicSubring sage: GenericSymbolicSubring(vars=tuple()).has_valid_variable(x) Traceback (most recent call last): ... NotImplementedError: Not implemented in this abstract base class
- class sage.symbolic.subring.GenericSymbolicSubringFunctor(vars)¶
Bases:
sage.categories.pushout.ConstructionFunctor
A base class for the functors constructing symbolic subrings.
INPUT:
vars
– a tuple, set, or other iterable of symbolic variables.
EXAMPLES:
sage: from sage.symbolic.subring import SymbolicSubring sage: SymbolicSubring(no_variables=True).construction()[0] # indirect doctest Subring<accepting no variable>
- merge(other)¶
Merge this functor with
other
if possible.INPUT:
other
– a functor.
OUTPUT:
A functor or
None
.EXAMPLES:
sage: from sage.symbolic.subring import SymbolicSubring sage: F = SymbolicSubring(accepting_variables=('a',)).construction()[0] sage: F.merge(F) is F True
- class sage.symbolic.subring.SymbolicConstantsSubring(vars)¶
Bases:
sage.symbolic.subring.SymbolicSubringAcceptingVars
The symbolic subring consisting of symbolic constants.
- has_valid_variable(variable)¶
Return whether the given
variable
is valid in this subring.INPUT:
variable
– a symbolic variable.
OUTPUT:
A boolean.
EXAMPLES:
sage: from sage.symbolic.subring import SymbolicSubring sage: S = SymbolicSubring(no_variables=True) sage: S.has_valid_variable('a') False sage: S.has_valid_variable('r') False sage: S.has_valid_variable('x') False
- class sage.symbolic.subring.SymbolicSubringAcceptingVars(vars)¶
Bases:
sage.symbolic.subring.GenericSymbolicSubring
The symbolic subring consisting of symbolic expressions in the given variables.
- construction()¶
Return the functorial construction of this symbolic subring.
OUTPUT:
A tuple whose first entry is a construction functor and its second is the symbolic ring.
EXAMPLES:
sage: from sage.symbolic.subring import SymbolicSubring sage: SymbolicSubring(accepting_variables=('a',)).construction() (Subring<accepting a>, Symbolic Ring)
- has_valid_variable(variable)¶
Return whether the given
variable
is valid in this subring.INPUT:
variable
– a symbolic variable.
OUTPUT:
A boolean.
EXAMPLES:
sage: from sage.symbolic.subring import SymbolicSubring sage: S = SymbolicSubring(accepting_variables=('a',)) sage: S.has_valid_variable('a') True sage: S.has_valid_variable('r') False sage: S.has_valid_variable('x') False
- class sage.symbolic.subring.SymbolicSubringAcceptingVarsFunctor(vars)¶
Bases:
sage.symbolic.subring.GenericSymbolicSubringFunctor
- merge(other)¶
Merge this functor with
other
if possible.INPUT:
other
– a functor.
OUTPUT:
A functor or
None
.EXAMPLES:
sage: from sage.symbolic.subring import SymbolicSubring sage: F = SymbolicSubring(accepting_variables=('a',)).construction()[0] sage: G = SymbolicSubring(rejecting_variables=('r',)).construction()[0] sage: F.merge(F) is F True sage: F.merge(G) is G True
- class sage.symbolic.subring.SymbolicSubringFactory¶
Bases:
sage.structure.factory.UniqueFactory
A factory creating a symbolic subring.
INPUT:
Specify one of the following keywords to create a subring.
accepting_variables
(default:None
) – a tuple or other iterable of variables. If specified, then a symbolic subring of expressions in only these variables is created.rejecting_variables
(default:None
) – a tuple or other iterable of variables. If specified, then a symbolic subring of expressions in variables distinct to these variables is created.no_variables
(default:False
) – a boolean. If set, then a symbolic subring of constant expressions (i.e., expressions without a variable) is created.
EXAMPLES:
sage: from sage.symbolic.subring import SymbolicSubring sage: V = var('a, b, c, r, s, t, x, y, z')
sage: A = SymbolicSubring(accepting_variables=(a, b, c)); A Symbolic Subring accepting the variables a, b, c sage: tuple((v, v in A) for v in V) ((a, True), (b, True), (c, True), (r, False), (s, False), (t, False), (x, False), (y, False), (z, False))
sage: R = SymbolicSubring(rejecting_variables=(r, s, t)); R Symbolic Subring rejecting the variables r, s, t sage: tuple((v, v in R) for v in V) ((a, True), (b, True), (c, True), (r, False), (s, False), (t, False), (x, True), (y, True), (z, True))
sage: C = SymbolicSubring(no_variables=True); C Symbolic Constants Subring sage: tuple((v, v in C) for v in V) ((a, False), (b, False), (c, False), (r, False), (s, False), (t, False), (x, False), (y, False), (z, False))
- create_key_and_extra_args(accepting_variables=None, rejecting_variables=None, no_variables=False, **kwds)¶
Given the arguments and keyword, create a key that uniquely determines this object.
See
SymbolicSubringFactory
for details.
- create_object(version, key, **kwds)¶
Create an object from the given arguments.
See
SymbolicSubringFactory
for details.
- class sage.symbolic.subring.SymbolicSubringRejectingVars(vars)¶
Bases:
sage.symbolic.subring.GenericSymbolicSubring
The symbolic subring consisting of symbolic expressions whose variables are none of the given variables.
- construction()¶
Return the functorial construction of this symbolic subring.
OUTPUT:
A tuple whose first entry is a construction functor and its second is the symbolic ring.
EXAMPLES:
sage: from sage.symbolic.subring import SymbolicSubring sage: SymbolicSubring(rejecting_variables=('r',)).construction() (Subring<rejecting r>, Symbolic Ring)
- has_valid_variable(variable)¶
Return whether the given
variable
is valid in this subring.INPUT:
variable
– a symbolic variable.
OUTPUT:
A boolean.
EXAMPLES:
sage: from sage.symbolic.subring import SymbolicSubring sage: S = SymbolicSubring(rejecting_variables=('r',)) sage: S.has_valid_variable('a') True sage: S.has_valid_variable('r') False sage: S.has_valid_variable('x') True
- class sage.symbolic.subring.SymbolicSubringRejectingVarsFunctor(vars)¶
Bases:
sage.symbolic.subring.GenericSymbolicSubringFunctor
- merge(other)¶
Merge this functor with
other
if possible.INPUT:
other
– a functor.
OUTPUT:
A functor or
None
.EXAMPLES:
sage: from sage.symbolic.subring import SymbolicSubring sage: F = SymbolicSubring(accepting_variables=('a',)).construction()[0] sage: G = SymbolicSubring(rejecting_variables=('r',)).construction()[0] sage: G.merge(G) is G True sage: G.merge(F) is G True