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 |
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 |
The object isInjective is a method function.