i1 : code(isIsomorphic, Module, Module)
o1 = -- code for method: isIsomorphic(Module,Module)
../linuxbrew/.linuxbrew/share/Macaulay2/Isomorphism.m2:132:46-194:53: --source code:
isIsomorphic(Module, Module) := Sequence => o -> (N,M)->(
--returns a pair (false, null) or (true, f), or where f is an isomorphism
--f: M to N.
...
i2 : needsPackage "TateOnProducts"
-- warning: symbol "isIsomorphic" in Isomorphism.Dictionary is shadowed by a symbol in TateOnProducts.Dictionary
-- use the synonym Isomorphism$isIsomorphic
o2 = TateOnProducts
o2 : Package
i3 : code(isIsomorphic, Module, Module)
o3 = -- code for method: isIsomorphic(Module,Module)
../linuxbrew/.linuxbrew/share/Macaulay2/TateOnProducts.m2:2395:37-2405:64: --source code:
isIsomorphic(Module,Module) := (A,B) -> (
--tests random degree 0 maps A->B, B->A and returns true
--if both are surjective.
There is one in TateOnProducts and one in Isomorphism, with different output types!