1 | initial version |

Does the following correspond to what you want?

First we define the 2-form $\sigma$ on the 3-manifold $M$ covered by coordinates $(x,y,z)$:

```
sage: M = Manifold(3, 'M')
sage: X.<x,y,z> = M.chart()
sage: a = var('a', domain='real')
sage: sigma = M.diff_form(2)
sage: sigma[1,2] = x/a
sage: sigma[0,2] = -y/a
sage: sigma.display()
-y/a dx/\dz + x/a dy/\dz
```

Then we define the 2-manifold $N$ covered by coordinates $(\theta,z)$ and the map $g: N\to M$:

```
sage: N = Manifold(2, 'N')
sage: XN.<th,z> = N.chart(r'th:\theta:(0,2*pi) z')
sage: g = N.diff_map(M, [a*cos(th), a*sin(th), z])
sage: g.display()
N --> M
(th, z) |--> (x, y, z) = (a*cos(th), a*sin(th), z)
```

The pullback of $\sigma$ by $g$ is then

```
sage: s = g.pullback(sigma)
sage: s
2-form on the 2-dimensional differentiable manifold N
sage: s.display()
a dth/\dz
```

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.