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 ∈(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 AlgEtQ_WeakTesting (H42E13)

> _<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
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.
V2.29, 28 November 2025