Weak Testing#

IsWeakEquivalent(I, J): AlgEtQIdl, AlgEtQIdl -> BoolElt#
IsWeaklyEquivalent(I, J): AlgEtQIdl, AlgEtQIdl -> BoolElt#

Checks if \(I\) and \(J\) are weakly equivalent, that is, if \(1 \in (I:J) (J:I)\), or equivalently, if \(I\) and \(J\) are locally equivalent at all prime of their common multiplicator ring. This function does not require that the ideals are defined over the same order.

IsWeakEquivalent(O1, O2): AlgEtQOrd, AlgEtQOrd -> BoolElt#
IsWeaklyEquivalent(O1, O2): AlgEtQOrd, AlgEtQOrd -> BoolElt#

Check if the two orders \(O1\) and \(O2\) are weakly equivalent, that is equal.

IsWeakEquivalent(O, J): AlgEtQOrd, AlgEtQIdl -> BoolElt#
IsWeaklyEquivalent(J, O): AlgEtQIdl, AlgEtQOrd -> BoolElt#

Checks if the ideal \(J\) is weakly equivalent to order \(O\), that is, if \(J\) is invertible in \(O\).

Example: Weak Testing (ex-6405b0)#
> _<x> := PolynomialRing(Integers());
> f := (x^4+16)*(x^4+81);
> A := EtaleAlgebra(f);
> E := EquationOrder(A);
> I := OneIdeal(E);
> J := I;
> IsWeakEquivalent(I,J);
true

Run in calculator

IsWeakEquivalent(J, O): AlgEtQIdl, AlgEtQOrd -> BoolElt#

Checks if the ideal \(J\) is weakly equivalent to order \(O\), that is, if \(J\) is invertible in \(O\).