Modules over finite flat algebras¶
Finite locally free modules over finite flat algebras.
- class dual_pairs.finite_flat_algebra_module.FiniteFlatAlgebraModule(*args: Any, **kwargs: Any)¶
A locally free module of rank 1 over a finite flat algebra.
Currently, only free modules are supported.
EXAMPLES:
sage: from dual_pairs import FiniteFlatAlgebra sage: from dual_pairs.finite_flat_algebra_module import FiniteFlatAlgebraModule sage: R.<x> = QQ[] sage: A = FiniteFlatAlgebra(QQ, x^4 - 16) sage: M = FiniteFlatAlgebraModule(A) sage: M.zero() 0 sage: M.coerce_map_from(QQ) sage: M.coerce_map_from(A)
- Element¶
alias of
FiniteFlatAlgebraModuleElement
- change_ring(R)¶
Return a copy of
self
base-changed to R.Todo
If A is the finite flat algebra over which
self
is a module, should R be an algebra over A or over the base ring of A?EXAMPLES:
sage: from dual_pairs import FiniteFlatAlgebra sage: from dual_pairs.finite_flat_algebra_module import FiniteFlatAlgebraModule sage: R.<x> = QQ[] sage: A = FiniteFlatAlgebra(QQ, x^2 + 1) sage: M = FiniteFlatAlgebraModule(A) sage: M.change_ring(QuadraticField(-1, 'i')) Traceback (most recent call last): ... TypeError: base ring must be a finite flat algebra
- dual()¶
Return the dual of
self
over its base ring.EXAMPLES:
sage: from dual_pairs import FiniteFlatAlgebra sage: from dual_pairs.finite_flat_algebra_module import FiniteFlatAlgebraModule sage: R.<x> = QQ[] sage: A = FiniteFlatAlgebra(QQ, x^2 + 1) sage: M = FiniteFlatAlgebraModule(A) sage: M.dual() Free module of rank 1 over Monogenic algebra of degree 2 over Rational Field with defining polynomial x^2 + 1
- random_element()¶
Return a random element of
self
.EXAMPLES:
sage: from dual_pairs import FiniteFlatAlgebra sage: from dual_pairs.finite_flat_algebra_module import FiniteFlatAlgebraModule sage: R.<x> = QQ[] sage: A = FiniteFlatAlgebra(QQ, x^2 - 1) sage: M = FiniteFlatAlgebraModule(A) sage: M.random_element() # random -1/95*a - 1/2
- class dual_pairs.finite_flat_algebra_module.FiniteFlatAlgebraModuleElement(*args: Any, **kwargs: Any)¶
An element of a free module of rank 1 over a finite flat algebra.
Currently, these are just represented as algebra elements.
EXAMPLES:
sage: from dual_pairs import FiniteFlatAlgebra sage: from dual_pairs.finite_flat_algebra_module import FiniteFlatAlgebraModule sage: R.<x> = QQ[] sage: A = FiniteFlatAlgebra(QQ, x^4 - 16) sage: M = FiniteFlatAlgebraModule(A) sage: m = M(1) sage: m 1 sage: m + m 2 sage: 2*m - A(x)*m -a + 2 sage: -m -1 sage: A(x) * m a
- module_element()¶
Return
self
as a module element over the base ring of the finite flat algebra that is the base ring ofself
.EXAMPLES:
sage: from dual_pairs import FiniteFlatAlgebra sage: from dual_pairs.finite_flat_algebra_module import FiniteFlatAlgebraModule sage: R.<x> = QQ[] sage: A = FiniteFlatAlgebra(QQ, x^4 - 16) sage: M = FiniteFlatAlgebraModule(A) sage: M(x).module_element() (0, 1, 0, 0)