# 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)`

```magma
> _<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$.
