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

# isInjective -- whether a map is injective

- Usage:
    `isInjective f`
- Inputs:
  - f, a matrix, or a ring map
- Outputs:
  - a Boolean value, whether the kernel is zero

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

- kernel -- kernel of a map
- isSurjective -- whether a map is surjective
- coimage(RingMap) -- coimage of a map
- determinant -- determinant of a matrix
- substitution and maps between rings

## Ways to use isInjective:

- `isInjective(Matrix)`
- `isInjective(RingMap)`

## For the programmer

The object isInjective is a method function.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/Macaulay2Doc/functions/isInjective-doc.m2:39:0.