Ask Your Question
1

intersection of two free submodules

asked 2020-02-18 19:30:48 +0100

arpit gravatar image

I have two modules found as follows

 F=GF(2);R.<x,y,z> = PolynomialRing(F)
 f1 = 1+z;g1=1+y;h1=0;
 I1 = Ideal([f1,g1,h1])
 M1 = I1.syzygy_module(); M1

[ 0 0 1]

[y + 1 z + 1 0]

 F=GF(2);R.<x,y,z> = PolynomialRing(F)
 f2 = 0;g2=1+y;h2=1+x;
 I2 = Ideal([f2,g2,h2])
 M2 = I2.syzygy_module(); M2

[ 1 0 0]

[ 0 x + 1 y + 1]

Is it possible to find the intersection of two such submodules $M_1$ and $M_2$ in sage? Another possibility would be to find the syzygy of the module generated by vectors (f1,g1,h1) and (f2,g2,h2).

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2020-02-18 22:50:58 +0100

rburing gravatar image

SageMath uses Singular for this, and Singular can compute intersections of modules over polynomial rings.

I don't think this functionality has been exposed to SageMath, but we can easily do that ourselves:

def intersection(M1,M2):
    return singular.intersect(M1.transpose(),M2.transpose()).sage().transpose()

Then we can do:

sage: M3 = intersection(M1,M2); M3
[x*y + x + y + 1 x*z + x + z + 1 y*z + y + z + 1]
sage: M3[0]
(x*y + x + y + 1, x*z + x + z + 1, y*z + y + z + 1)
sage: [f.factor() for f in M3[0]]
[(y + 1) * (x + 1), (z + 1) * (x + 1), (z + 1) * (y + 1)]

Indeed, this single generator lies in the intersection:

sage: sum(a*b for (a,b) in zip(M3[0], I1.gens()))
0
sage: sum(a*b for (a,b) in zip(M3[0], I2.gens()))
0
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2020-02-18 19:30:48 +0100

Seen: 454 times

Last updated: Feb 18 '20