Ensure that the determinant is multiplicative on an associative
subalgebra as in Faraut and Korányi's Proposition II.2.2::
- sage: J = random_eja().random_element().subalgebra_generated_by()
+ sage: x0 = random_eja().random_element()
+ sage: J = x0.subalgebra_generated_by(orthonormalize=False)
sage: x,y = J.random_elements(2)
sage: (x*y).det() == x.det()*y.det()
True
This subalgebra, being composed of only powers, is associative::
sage: x0 = random_eja().random_element()
- sage: A = x0.subalgebra_generated_by()
+ sage: A = x0.subalgebra_generated_by(orthonormalize=False)
sage: x,y,z = A.random_elements(3)
sage: (x*y)*z == x*(y*z)
True
the superalgebra::
sage: x = random_eja().random_element()
- sage: A = x.subalgebra_generated_by()
+ sage: A = x.subalgebra_generated_by(orthonormalize=False)
sage: A(x^2) == A(x)*A(x)
True
where there are non-nilpotent elements, or that we get the dumb
solution in the trivial algebra::
- sage: J = random_eja()
+ sage: J = random_eja(field=QQ, orthonormalize=False)
sage: x = J.random_element()
sage: while x.is_nilpotent() and not J.is_trivial():
....: x = J.random_element()
sage: x.trace_inner_product(y) == y.trace_inner_product(x)
True
sage: # bilinear
- sage: a = J.base_ring().random_element();
+ sage: a = J.base_ring().random_element()
sage: actual = (a*(x+z)).trace_inner_product(y)
sage: expected = ( a*x.trace_inner_product(y) +
....: a*z.trace_inner_product(y) )