Macaulay2 » Documentation
Packages » Macaulay2Doc :: isInjective
next | previous | forward | backward | up | index | toc

isInjective -- whether a map is injective

Synopsis

Description

This function computes the kernel, and checks whether it is zero.
i1 : R = QQ[a..d];
i2 : F = matrix{{a,b},{c,d}}

o2 = | a b |
     | c d |

             2      2
o2 : Matrix R  <-- R
i3 : isInjective F

o3 = true
i4 : G = substitute(F, R/(det F))

o4 = | a b |
     | c d |

                  R      2           R      2
o4 : Matrix (-----------)  <-- (-----------)
             - b*c + a*d        - b*c + a*d
i5 : isInjective G

o5 = false

Similarly for ring maps:
i6 : S = QQ[r,s,t];
i7 : phi = map(S,R,{r^3, r^2*s, r*s*t, s^3})

                  3   2           3
o7 = map (S, R, {r , r s, r*s*t, s })

o7 : RingMap S <-- R
i8 : isInjective phi

o8 = false
i9 : S' = coimage phi

o9 = S'

o9 : QuotientRing
i10 : phi' = phi * map(R,S')

                    3   2           3
o10 = map (S, S', {r , r s, r*s*t, s })

o10 : RingMap S <-- S'
i11 : isInjective phi'

o11 = true

Caveat

One could imagine a faster routine for this. If you write one, please send it to us!

See also

Ways to use isInjective :

For the programmer

The object isInjective is a method function.