AsSubmodule( M, U )
returns a submodule of the parent of M that is isomorphic to the module U which can be a parent module or a submodule with a different parent.
Note that the same ring must act on M and U.
gap> s2:= Module( a, [ [ 1, 1, 1 ] * Z(2) ] );;
gap> s:= AsSubmodule( nat, s2 );
Submodule( nat, [ [ Z(2)^0, Z(2)^0, Z(2)^0 ] ] )
gap> s = s2;
true
GAP 3.4.4