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: Testing Weak Equivalence (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 (opens in a new tab)

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\).