# Singular

### 5.1.114 preimage

`Syntax:`
`preimage (` map `)`
`preimage (` ring_name`,` map_name`,` ideal_name `)`
`preimage (` ring_name`,` ideal_expression`,` ideal_name `)`
`Type:`
ring
ideal
`Purpose:`
returns the source ring of a map (in the first case) or returns the preimage of an ideal under a given map.
The second argument has to be a map from the basering to the given ring (or an ideal defining such a map), and the ideal has to be an ideal in the given ring.
`Note:`
As `preimage` is handling ideals (not polynomials), the result of a preimage calculation of a principal ideal is (the closure of) the preimage of the ideal, not that of the polynomial.
`Example:`
 ``` ring r1=32003,(x,y,z,w),lp; ring r=32003,(x,y,z),dp; ideal i=x,y,z; ideal i1=x,y; ideal i0=0; map f=r1,i; nameof (preimage (f)); ==> r1 setring r1; ideal i1=preimage(r,f,i1); i1; ==> i1[1]=w ==> i1[2]=y ==> i1[3]=x // the kernel of f preimage(r,f,i0); ==> _[1]=w // or, use: kernel(r,f); ==> _[1]=w ```
See ideal; kernel; map; ring.