File: isInjective-doc.m2

package info (click to toggle)
macaulay2 1.24.11%2Bds-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 171,648 kB
  • sloc: cpp: 107,850; ansic: 16,307; javascript: 4,188; makefile: 3,947; lisp: 682; yacc: 604; sh: 476; xml: 177; perl: 114; lex: 65; python: 33
file content (38 lines) | stat: -rw-r--r-- 1,059 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
--- status: DRAFT
--- author(s): MES
--- notes: 

document { 
     Key => {isInjective,
	  (isInjective, Matrix),
	  (isInjective, RingMap)},
     Headline => "whether a map is injective",
     Usage => "isInjective f",
     Inputs => {
	  "f" => Nothing => {ofClass Matrix, ", or ", ofClass RingMap}
	  },
     Outputs => {
	  Boolean => "whether the kernel is zero"
	  },
     "This function computes the kernel, and checks whether it is zero.",
     EXAMPLE lines ///
     	  R = QQ[a..d];
	  F = matrix{{a,b},{c,d}}
	  isInjective F
	  G = substitute(F, R/(det F))
	  isInjective G
	  ///,
     PARA{},
     "Similarly for ring maps:",
     EXAMPLE lines ///
          S = QQ[r,s,t];
     	  phi = map(S,R,{r^3, r^2*s, r*s*t, s^3})
	  isInjective phi
	  S' = coimage phi
	  phi' = phi * map(R,S')
     	  isInjective phi'
          ///,
     Caveat => "One could imagine a faster routine for this.  If you write one,
     please send it to us!",
     SeeAlso => {kernel, isSurjective, (coimage,RingMap), det, "substitution and maps between rings"}
     }