Contact
sagemanifolds
GitHub Repository: sagemanifolds/IntroToManifolds
Views: 80
Kernel: SageMath 9.6

## 20. Integration of differential forms on singular $k$-cubes

This notebook is part of the Introduction to manifolds in SageMath by Andrzej Chrzeszczyk (Jan Kochanowski University of Kielce, Poland).

version()

'SageMath version 9.6, Release Date: 2022-05-15'

Remark. This notebook is an attempt to present a more friendly version of Chapter 4 of:

Michael Spivak. Calculus on manifolds, Addison Wesley, NY 1965,

with elementary examples in SageMath.

Remark. Readers interested in application of free software to illustrate the classical Stokes theorem should consult for example https://docs.sympy.org/latest/modules/vector/vector_integration.html

Warning. In the present notebook we extensively use the information on differential forms from notebook 14 and notebook 16.

### Explicit description of some pullbacks

Let us start from some more explicit description of pullback of $k$-forms on $k$-dimensional open sets.

Consider the smooth map $\phi:U\to V$ between open subsets in $R^k$. Let $x^1,\ldots,x^k$ be the coordinates on $V$ and $t^1,\ldots,t^k$ - the coordinates on $U$. For $k$-form $\omega(x)=f(x)dx^1\wedge\ldots\wedge dx^k,\$ $f\in C^\infty(V)$ we have

$$$(\phi^*\omega)(t)=f(\phi(t))\frac{\partial(\phi^1,\ldots,\phi^k)}{\partial(t^{1},\ldots,t^{k})}dt^1\wedge\ldots\wedge dt^k, \tag{20.1}$$$

where $\phi=(\phi^1,\ldots,\phi^k)$ and $\ \frac{\partial(\phi^1,\ldots,\phi^k)}{\partial(t^{1},\ldots,t^{k})}=\det\big[\frac{\partial\phi^i}{\partial t^j}\big]$.

In fact

$\phi^*(\omega)=f(\phi(t))\big(\frac{\partial\phi^1}{\partial t^{i_1}}dt^{i_1}\big) \wedge\ldots\wedge\big(\frac{\partial\phi^k}{\partial t^{i_k}}dt^{i_k}\big)\\ =f(\phi(t))\frac{\partial\phi^1}{\partial t^{i_1}}\ldots\frac{\partial\phi^k}{\partial t^{i_k}}dt^{i_1}\wedge \ldots\wedge dt^{i_k}\\ =f(\phi(t))\big(\sum_{\sigma\in S_k} (\text{sign}\,\sigma) \frac{\partial\phi^1}{\partial t^{\sigma(1)}}\ldots\frac{\partial\phi^k}{\partial t^{\sigma(k)}}\big)dt^{1}\wedge \ldots\wedge dt^{k}\\ =f(\phi(t))\det\big[\frac{\partial\phi^i}{\partial t^j}\big]dt^{1}\wedge \ldots\wedge dt^{k},$

(we have used the relations $i_1=\sigma(1),\ldots,i_k=\sigma(k),\$ $\ dt^{i_1}\wedge\ldots\wedge dt^{i_k}=(\text{sign}\,\sigma)dt^1\wedge\ldots\wedge dt^k$ and the definition of determinant).

### Singular $k$-cubes

Let $[0,1]^k=\underbrace{[0,1]\times\ldots\times[0,1]}_{k\mbox{-times}}$ and $U$ be an open subset of $R^k$ such that $[0,1]^k\subset U.$

Let $\phi : U \to V$ be a $C^\infty$ map of $U$ into an open set $V$ in $R^m$ ($k$ and $m$ may be different). We will write this map simply as $$$\phi:[0,1]^k\to V, \tag{20.2}$$$

(this map is a restriction of a $C^\infty$ map $U\to V$).

The map $\phi:[0,1]^k\to V$ will be called a singular $k$-cube in $V$. The word singular indicates that the map need not be one-to-one, though we will require that $\phi$ be in $C^\infty$. For $k=1,2$ the singular $k$-cubes are just parametrized curves and surfaces, respectively.

### Standard $k$-cubes

By the standard $k$-cube we will mean the map $I:[0,1]^k\to R^k$ defined by

$$$I(t)=t,\quad t\in[0,1]^k, \tag{20.3}$$$

so $I$ is an example of singular $k$-cube with $\phi\big|_{[0.1]^k}=id_{[0,1]^k}.$

For standard $k$-cube $I$ we can define singular $(k-1)$-cubes $I^0_i$ and $I^1_i$ (the i-th pieces of the boundary of $I$) as the maps

$$$\begin{matrix} I^0_i:[0,1]^{k-1}\ni t\to x(t)\in R^k, \text{ where}\\ x^1(t)=t^1,\\ ...........,\\ x^{i-1}(t)=t^{i-1},\\ x^i(t)=x^i=0,\\ x^{i+1}(t)=t^i,\\ ...........,\\ x^k(t)=t^{k-1},\\ t=(t^1,\ldots,t^{k-1})\in [0,1]^{k-1}, \end{matrix} \tag{20.4}$$$

and

$$$\begin{matrix} I^1_i:[0,1]^{k-1}\ni t\to x(t)\in R^k, \text{ where}\\ x^1(t)=t^1,\\ ...........,\\ x^{i-1}(t)=t^{i-1},\\ x^i(t)=x^i=1,\\ x^{i+1}(t)=t^i,\\ ...........,\\ x^k(t)=t^{k-1},\\ t=(t^1,\ldots,t^{k-1})\in [0,1]^{k-1}. \end{matrix} \tag{20.5}$$$

The singular $(k-1)$-cubes $I^0_i$ and $I^1_i$ are called $(0,i)$ and $(1,i)$ faces of $I$ respectively.

### Boundary of the singular $k$-cube

In the definition of the boundary of a singular $k$-cube we will use some auxiliary notions.

For arbitrary family of objects $W=\{w_i\}_{i\in J}$ we can construct a vector space of formal linear combinations of elements $w_i\in W$ as the family of functions $f:W\to R$, such that $f(w_i) = 0$ for all but finitely many $w_i$. Vector space operations on such functions are defined as usual: if $f,g$ are formal linear combinations of elements of $W$, then

$(f+g)(w_i)=f(w_i)+g(w_i)\quad\mbox{and }\ \ (qf)(w_i)=q(f(w_i)),\quad \mbox{for } w_i\in W, q\in R.$

The formal linear combination $f$ are usually written as

$f=\sum a_iw_i,\quad \mbox{ where } \ \ a_i=f(w_i).$

If we take as $W$ the family of all singular $k$-cubes in $V$ we can define the space of $k$-chains in $V$ as the space of formal linear combinations of singular $k$-cubes in $V$. Thus the space of $k$-chains consists of (finite) linear combinations

 \sum a_i\phi_i,\quad \mbox{where } \phi_i\ \ \mbox{are singular}\ \ \text{$kParseError: KaTeX parse error: Expected 'EOF', got '}' at position 11: -cubes and}̲\ \ a_i\in R.$

Using the introduced notion we can define the boundary $\partial I$ of the standard $k$-cube $I$ as the $(k-1)$-chain

$$$\partial I=\sum_{i=1}^k (-1)^{i-1}(I^1_i-I^0_i). \tag{20.6}$$$

In the case of singular $k$-cube $\phi:[0,1]^k\to V$ we define the $(0,i)$ and $(1,i)$ faces as

$$$\phi^0_i=\phi\circ I^0_i,\qquad \phi^1_i=\phi\circ I^1_i, \tag{20.7}$$$

respectively and the boundary $\partial \phi$ of $\phi$ as the $(k-1)$-chain

$$$\partial\phi =\sum_{i=1}^k (-1)^{i-1}(\phi^1_i-\phi^0_i). \tag{20.8}$$$

### Integrals of $k$-forms on singular $k$-cubes and chains

Let $\omega$ be a smooth $k$-form on an open set $U\subset R^k$ containing $[0,1]^k$. Assume that $\omega$ is of the form

$$$\omega=fdx^1\wedge\ldots\wedge dx^k, \tag{20.9}$$$

where $f$ is a smooth function on $U$.

We define first the integral of $\omega$ over $[0,1]^k$

$$$\int_{[0,1]^k}\omega =\int_{[0,1]^k}fdx^1\wedge\ldots\wedge dx^k=\int_{[0,1]^k}f(x)dx^1\ldots dx^k=\int_{[0,1]^k} f, \tag{20.10}$$$

where the right hand side denotes the Riemann integral over the rectangle $[0,1]^k$.

Using this relation we can define the integral of the smooth $k$-form $\omega$ on $V$ over singular $k$-cube $\phi:[0,1]^k\to V$:

$$$\int_\phi\omega =\int_{[0,1]^k}\phi^\star\omega. \tag{20.11}$$$

With the help of (20.1) we can rewrite this formula:

$$$\int_{\phi}\omega=\int_{[0,1]^k}f(\phi(t)) \frac{\partial(\phi^1,\ldots,\phi^k)}{\partial(t^{1},\ldots,t^{k})}dt^1\wedge\ldots\wedge dt^k, \tag{20.12}$$$

where $\phi=(\phi^1,\ldots,\phi^k)$.

In the special case of standard $k$-cube $I$ given by $x^1=t^1,\ldots,x^k=t^k$, $t\in [0,1]^k$ we obtain

$$$\begin{matrix} \int_I fdx^1\wedge\ldots\wedge dx^k= \int_{[0,1]^k}I^*(fdx^1\wedge\ldots\wedge dx^k)\\ =\int_{[0,1]^k}f(I(t)) \frac{\partial(x^1,\ldots,x^k)}{\partial(t^{1},\ldots,t^{k})}dt^1\wedge\ldots\wedge dt^k\\ =\int_{[0,1]^k}f(t)dt^1\ldots dt^k. \end{matrix} \tag{20.13}$$$

Finally we define the integral of $k$-form of $\omega$ over $k$-chain $c=\sum a_i\phi_i$:

$$$\int_c\omega=\sum a_i\int_{\phi_i}\omega. \tag{20.14}$$$

The last formula applied to $(k-1)$-chain $\ \ \partial I=\sum_{i=1}^k (-1)^{i-1}(I^1_i-I^0_i)\ \$ and $(k-1)$-form $\omega$ gives

$$$\int_{\partial I}\omega=\sum_{i=1}^k (-1)^{i-1}(\int_{I^1_i}\omega -\int_{I^0_i}\omega), \tag{20.15}$$$

and in the case of $(k-1)$-chain $\ \ \partial \phi=\sum_{i=1}^k (-1)^{i-1}(\phi^1_i-\phi^0_i)\ \$:

$$$\int_{\partial \phi}\omega=\sum_{i=1}^k (-1)^{i-1}(\int_{\phi^1_i}\omega -\int_{\phi^0_i}\omega). \tag{20.16}$$$

The definition (20.15) of the integral of $\omega$ on $\partial I$ looks artificially, but we can give it a quite natural interpretation if we define the orientation of $I^0_i$ and $I^1_i$.

We recall that the transition from one frame $e_1,..., e_k$ in $R^k$ to a second frame $e_1',..., e_k'$ can be defined by the square matrix obtained from $e_j'=A^i_je_i$. The determinant of this matrix is always nonzero, and the set of all frames divides into two equivalence classes, each class containing all possible frames such that for any two of them the determinant of transition matrix is positive. Such equivalence classes are called orientation classes of frames in $R^n$. To define an orientation means to fix one of these orientation classes. Thus, the oriented space $R^k$ is the space $R^k$ together with a fixed orientation class of frames.

Let $n_i$ be the unit outward (with respect to $[0,1]^k$) normal vector to $I^1_i$ or $I^0_i$ defined in (20.4),(20,5). Assume that the space $R^𝑘$ has been oriented by $e_1,\ldots,e_k$. We can define the orientation of $I^1_0$ and $I^0_i$ prescribed by the unit outward normal vector to $I^1_i$ or $I^0_i$ in the following way.

Compare the frame $𝑛_i,𝑒_1,...,\widehat{e_i}\ldots,𝑒_k$ ($e_i$ omitted) with the frame $e_1,..,,𝑒_k$, that orients the space $R^𝑘$.

If these are in the same orientation class, then $I^0_i$ (or $I^1_i$) has the orientation prescribed by the unit outward normal vector to $I^0_i$ (or $I^1_i$).

If these two frames are in different orientation classes, then we take the orientation of $I^0_i$ ( or $I^1_i$) opposite to that defined by $𝑛_i,𝑒_1,...,\widehat{e_i}\ldots,𝑒_k$ as the one prescribed by the outward unit normal vector.

Defining $\ \int_{\partial I}\omega\ \$ we take the sum of all $\ \int_{ I^0_i}\omega\ \$ and $\ \int_{I^1_i}\omega,\ \$ but if $\ I^0_i\$ or $\ I^1_i\$ have the orientation opposite to that prescribed by the outward unit normal vector we take the corresponding integrals with minus sign.

Example 20.1

Consider the case $k=2$.

l1=polygon2d([(1.0,0.5),(1.5,0.5),(1.5,1.0),(1.0,1.0)],
fill=False,color='black',xmin=0,xmax=2.5,
ymin=0,ymax=1.5)
e1=arrow((1.35,1),(1.1,1),color='black')
t1=text('$-e_1$',(1.1,1.1),fontsize=20, color='black')
n1=arrow((1.35,1),(1.35,1.2),color='black')
tn1=text('$n$',(1.35,1.25),fontsize=20, color='black')
I21=text('$I^1_2$',(1.2,1.3),fontsize=24, color='black')

e2=arrow((1.1,0.5),(1.35,0.5),color='black')
t2=text('$e_1$',(1.25,0.6),fontsize=20, color='black')
n2=arrow((1.1,0.5),(1.1,0.3),color='black')
tn2=text('$n$',(1.1,0.25),fontsize=20, color='black')
I20=text('$I^0_2$',(1.3,0.2),fontsize=24, color='black')

e3=arrow((1,0.85),(1.0,0.65),color='black')
t3=text('$-e_2$',(0.85,0.65),fontsize=20, color='black')
n3=arrow((1.0,0.85),(0.8,0.85),color='black')
nt3=text('$n$',(0.75,0.9),fontsize=20, color='black')
I11=text('$I^1_1$',(1.9,0.75),fontsize=24, color='black')

e4=arrow((1.5,0.65),(1.5,0.85),color='black')
t4=text('$e_2$',(1.6,0.85),fontsize=20, color='black')
n4=arrow((1.5,0.65),(1.7,0.65),color='black')
nt4=text('$n$',(1.75,0.65),fontsize=20, color='black')
I01=text('$I^0_1$',(0.6,0.75),fontsize=24, color='black')

(l1+e1+t1+n1+tn1+e2+n2+tn2+t2+e3+t3+n3+nt3+
e4+t4+n4+nt4+I21+I20+I11+I01).show(axes=False)


If $k=2$, then the integral over the boundary of $\ I\$ defined in (20.15) takes the form

$$$\begin{matrix} \int_{\partial I}\omega =\sum_{i=1}^2(-1)^{i-1}\big[\int_{I^1_i}\omega-\int_{I^0_i}\omega\big] \\ =\int_{I^1_1}\omega-\int_{I^0_1}\omega -\int_{I^1_2}\omega+\int_{I^0_2}\omega. \end{matrix} \tag{*}$$$

The orientation of the boundary of $I$ prescribed by the unit normal outward vector implies that:

on $I^0_2$ the frame $n,e_1$ is in the same orientation class as $e_1,e_2$ in $R^2$,

on $I^1_1$ the frame $n,e_2$ is in the same orientation class as $e_1,e_2$ in $R^2$,

on $I^1_2$ the frame $n,-e_1$ is in the same orientation class as $e_1,e_2$ in $R^2$,

on $I^0_1$ the frame $n,-e_2$ is in the same orientation class as $e_1,e_2$ in $R^2$.

This is in accordance with the fact that in (*) the integrals over $I^1_2$ and $I^0_1$ are taken with the minus sign.

As we can see, in the case $k=2$ the formula (20.15) agrees with the orientation of boundary of $I$ prescribed by the unit outward normal vector and corresponds to going around the square counterclockwise.

Example 20.2

Consider the case $k=3$.

x1=arrow((0.5,0.2),(1.8,0.2),color='black')
x2=arrow((0.5,0.2),(1.6,1.05),color='lightgrey')
x3=arrow((0.5,0.2),(0.5,1.4),color='black')
t1=text('$x_1$',(2.1,0.2),fontsize=20, color='black')
t2=text('$x_2$',(1.5,1.4),fontsize=20, color='black')
t3=text('$x_3$',(0.4,1.7),fontsize=20, color='black')
#(x1+x2+x3).show(axes=False)

l1=polygon2d([(0.5,0.2),(0.5,0.8),(1.0,0.8),(1,0.2)],
fill=False,color='black')
l2=polygon2d([(0.5,0.8),(0.8,1.),(1.3,1.),(1.0,0.8)],
fill=False,color='black')
l3=polygon2d([(1.0,0.2),(1.0,0.8),(1.3,1),(1.3,0.5)],
fill=False,color='black')

p11=x1+t1+x2+t2+x3+t3+l1+l2+l3

e2=arrow((0,0),(-0.6,-0.6),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t2=text('$-e_2$',(-0.75,-0.75),fontsize=20, color='black')
e3=arrow((0,0),(0,1.2),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t3=text('$e_3$',(0,1.4),fontsize=20, color='black')
n=arrow((0,0),(-0.7,0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
tn=text('$n$',(-0.8,0.),fontsize=20, color='black')
left=text("$I^0_1$",(1.8,0),fontsize=28, color='black')
p10=e2+t2+e3+t3+n+tn+left

e2=arrow((0,0),(0.6,0.6),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t2=text('$e_2$',(0.75,0.75),fontsize=20, color='black')
e3=arrow((0,0),(0,1.2),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t3=text('$e_3$',(0,1.4),fontsize=20, color='black')
n=arrow((0,0),(0.7,0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
tn=text('$n$',(0.8,0.),fontsize=20, color='black')
right=text("$I^1_1$",(-1.9,0),fontsize=28, color='black')
p12=e2+t2+e3+t3+n+tn+right

e1=arrow((0,0),(0.7,0.0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t1=text('$e_1$',(0.8,0.0),fontsize=20, color='black')
e2=arrow((0,0),(0.7,0.7),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t2=text('$e_2$',(0.8,0.8),fontsize=20, color='black')
n=arrow((0,0),(0,1),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
tn=text('$n$',(0.,1.1),fontsize=20, color='black')
ttop=text("$I^1_3$",(0,-1.9),fontsize=28, color='black')
p01=e1+t1+e2+t2+n+tn+ttop

e1=arrow((0,0),(0.7,0.0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t1=text('$e_1$',(0.8,0.0),fontsize=20, color='black')
e2=arrow((0,0),(-0.7,-0.7),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t2=text('$-e_2$',(-0.8,-0.8),fontsize=20, color='black')
n=arrow((0,0),(0,-1),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
tn=text('$n$',(0.,-1.1),fontsize=20, color='black')
bottom=text("$I^0_3$",(0,1.8),fontsize=28, color='black')
p21=e1+t1+e2+t2+n+tn+bottom

e1=arrow((0,0),(-0.7,0.0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t1=text('$-e_1$',(-1,0.0),fontsize=20, color='black')
e3=arrow((0,0),(0,1.2),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t3=text('$e_3$',(0,1.4),fontsize=20, color='black')
n=arrow((0,0),(0.7,0.7),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
tn=text('$n$',(0.8,0.8),fontsize=20, color='black')
back=text("$I^1_2$",(-1.8,-1.8),fontsize=28, color='black')
p02=e1+t1+e3+t3+n+tn+back

e1=arrow((0,0),(0.7,0.0),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t1=text('$e_1$',(0.8,0.0),fontsize=20, color='black')
e3=arrow((0,0),(0,1.2),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
t3=text('$e_3$',(0,1.4),fontsize=20, color='black')
n=arrow((0,0),(-0.7,-0.7),color='grey',xmin=-2,ymin=-2,xmax=2,ymax=2)
tn=text('$n$',(-0.8,-0.8),fontsize=20, color='black')
front=text("$I^0_2$",(1.8,1.8),fontsize=28, color='black')
p20=e1+t1+e3+t3+n+tn+front

graphics_array([[text("",(1,1)),p01,p02],
[p10,p11,p12],
[p20,p21,text("",(1,1))]]).show(axes=False,
figsize=(8,6))


If $k=3$, then the integral over the boundary of $\ I\$ defined in (20.15) takes the form

$$$\begin{matrix} \int_{\partial I}\omega =\sum_{i=1}^3(-1)^{i-1}\big[\int_{I^1_i}\omega-\int_{I^0_i}\omega\big] \\ =\int_{I^1_1}\omega-\int_{I^0_1}\omega -\int_{I^1_2}\omega+\int_{I^0_2}\omega +\int_{I^1_3}\omega-\int_{I^0_3}\omega. \end{matrix} \tag{**}$$$

The orientation of the boundary of $I$ prescribed by the unit outward normal vector implies that:

on $I^1_1$ the frame $n,e_2,e3$ is in the same orientation class as $e_1,e_2,e_3$ in $R^3$,

on $I^0_1$ the frame $n,-e_2,e_3$ is in the same orientation class as $e_1,e_2,e_3$ in $R^3$,

on $I^1_2$ the frame $n,-e_1,e_3$ is in the same orientation class as $e_1,e_2,e_3$ in $R^3$,

on $I^0_2$ the frame $n,e_1,e_3$ is in the same orientation class as $e_1,e_2,e_3$ in $R^3$,

on $I^1_3$ the frame $n,e_1,e_2$ is in the same orientation class as $e_1,e_2,e_3$ in $R^3$,

on $I^0_3$ the frame $n,e_1,-e_2$ is in the same orientation class as $e_1,e_2,e_3$ in $R^3$.

This is in accordance with the fact that in (**) the integrals over $I^0_1,I^1_2,I^0_3$ are taken with the minus sign.

As we can see, in the case $k=3$ the formula (20.15) agrees with the orientation of boundary of $I$ prescribed by the unit outward normal vector.

### Integrals of $(k-1)$-forms over $I^0_i$ and $I^1_i$

General smooth $(k-1)$-form on an open subset $U\subset R^k$ containing $[0,1]^k$ is of the form

$$$\omega=\sum_{j=1}^k\omega_j(x^1,\ldots,x^k)dx^1\wedge\ldots \widehat{dx^j} \wedge\ldots dx^k, \tag{20.17}$$$

($dx^j$ is omitted).

Consider the single summand $\ \omega_j dx^1\wedge\ldots \wedge \widehat{dx^j}\wedge\ldots\wedge dx^k$.

Since the map $I^0_i$ is given by (20.4) and $x^i=0$ is constant, for $i\neq j$ we have

$\int_{I^0_i}\omega_j dx^1\wedge\ldots \wedge \widehat{dx^j}\wedge\ldots\wedge dx^k\\ =\int_{[0,1]^{k-1}}(I^0_i)^*(\omega_j dx^1\wedge\ldots \wedge \widehat{dx^j}\wedge\ldots\wedge dx^k)\\ =\int_{[0,1]^{k-1}}\omega_j(I^0_i(t)) \frac{\partial(x^1,\ldots 0\ldots\widehat{x^j}\ldots,x^k)}{\partial(t^{1},\ldots,t^{k-1})} dt^{1}\wedge\ldots\wedge dt^{k-1}=0$

and analogously for $I^1_i$ , so if $i\neq j$

$$$\begin{matrix} \int_{I^0_i}\omega_j dx^1\wedge\ldots \wedge \widehat{dx^j}\wedge\ldots\wedge dx^k=0,\\ \int_{I^1_i}\omega_j dx^1\wedge\ldots \wedge \widehat{dx^j}\wedge\ldots\wedge dx^k=0. \end{matrix} \tag{20.18}$$$

If $i=j$ we have

$\int_{I^0_i}\omega_i dx^1\wedge\ldots \wedge \widehat{dx^i}\wedge\ldots\wedge dx^k\\ =\int_{[0,1]^{k-1}}(I^0_i)^*(\omega_i dx^1\wedge\ldots \wedge \widehat{dx^i}\wedge\ldots\wedge dx^k)\\ =\int_{[0,1]^{k-1}}\omega_i(I^0_i(t)) \frac{\partial(x^1,\ldots\widehat{x^i}\ldots,x^k)}{\partial(t^{1},\ldots,t^{k-1})} dt^{1}\wedge\ldots\wedge dt^{k-1}\\ =\int_{[0,1]^{k-1}}\omega_i(I^0_i(t)) dt^{1}\ldots dt^{k-1}\\ =\int_{[0,1]^{k-1}}\omega_i\big|_{x^i=0} dx^{1}\ldots\widehat{dx^i}\ldots dx^{k}\\ =\int_{[0,1]^{k}}\omega_i\big|_{x^i=0} dx^{1}\ldots\ldots dx^{k}.$

The last equality follows from the fact, that if a function $g$ is constant with respect to $x^i$, then $g=\int_0^1 gdx^i$.

Analogously we can compute the integral over $I^1_i$, so

$$$\begin{matrix} \int_{I^0_i}\omega_i dx^1\wedge\ldots \wedge \widehat{dx^i}\wedge\ldots\wedge dx^k\\ =\int_{[0,1]^{k}}\omega_i\big|_{x^i=0} dx^{1}\ldots dx^{k}, \end{matrix} \tag{20.19}$$$

and $$$\begin{matrix} \int_{I^1_i}\omega_i dx^1\wedge\ldots \wedge \widehat{dx^i}\wedge\ldots\wedge dx^k\\ =\int_{[0,1]^{k}}\omega_i\big|_{x^i=1} dx^{1}\ldots dx^{k}. \end{matrix} \tag{20.20}$$$

### Stokes theorem on the standard $k$-cube

Consider a smooth $(k-1)$-form (20.17) on an open subset $V\subset R^k$ containing $[0,1]^k$ and let $I$ be the standard $k$-cube defined in (20.3). Let us compute $\ \int_I d\omega.$

By linearity we can compute each summand

$\int_I d(\omega_idx^1\wedge\ldots \widehat{dx^i}\wedge\ldots dx^k)$

separately. Let us focus on $i=1$ first. We have

$\int_I d(\omega_1 \widehat{dx^1}\wedge dx^2\wedge\ldots\wedge dx^k)\\ =\int_{[0,1]^k}I^*( d(\omega_1 dx^2\wedge\ldots\wedge dx^k))\\ =\int_{[0,1]^k} d(I^*(\omega_1 dx^2\wedge\ldots\wedge dx^k))\\ =\int_{[0,1]^k}\frac{\partial \omega_1}{\partial t^1}dt^1\wedge\ldots\wedge dt^k\\ = \int_{t^k=0}^{1}\ldots\int_{t^1=0}^{1} \frac{\partial \omega_1}{\partial t^1}dt^1\ldots dt^k\\ =\int_{t^k=0}^{1}\ldots\int_{t^2=0}^{1} \big[\omega_1(t)\big|_{t^1=1}-\omega_1(t)\big|_{t^1=0}\big]dt^2\ldots dt^k.$

Since the integrand $g=\omega_1(t)\big|_{t^1=1}-\omega_1(t)\big|_{t^1=0}$ does not depend on $t^1$ it is equal to its integral $\int^1_0g\;dt^1$, so

$\int_I d(\omega_1 \widehat{dx^1}\wedge dx^2\wedge\ldots\wedge dx^k)\\ =\int_{[0,1]^k}\big[\omega_1(t)\big|_{t^1=1}-\omega_1(t)\big|_{t^1=0}\big]dt^1\ldots dt^k\\ =\int_{[0,1]^k}\big[\omega_1\big|_{x^1=1}-\omega_1\big|_{x^1=0}\big]dx^1\ldots dx^k\\ =\int_{I_1^1}\omega_1\widehat{dx^1}\wedge dx^2\wedge\ldots\wedge dx^k -\int_{I_1^0}\omega_1\widehat{dx^1}\wedge dx^2\wedge\ldots\wedge dx^k.$

In the last equality we have used (20.19) and (20.20) for $i=1$.

For $i=2$ we have

$\int_I d(\omega_2 dx^1\wedge\widehat{dx^2}\wedge dx^3\ldots\wedge dx^k)\\ =\int_{[0,1]^k}I^*( d(\omega_2 dx^1\wedge dx^3\ldots\wedge dx^k))\\ =\int_{[0,1]^k} d(I^*(\omega_2 dx^1\wedge dx^3\ldots\wedge dx^k))\\ =\int_{[0,1]^k}\frac{\partial \omega_2}{\partial t^2}dt^2\wedge dt^1\wedge dt^3\ldots\wedge dt^k\\ =(-1)\int_{[0,1]^k}\frac{\partial \omega_2}{\partial t^2}dt^1\wedge dt^2\wedge dt^3\ldots\wedge dt^k\\ =(-1)\int_{t^k=0}^{1}\ldots\int_{t^2=0}^1\int_{t^1=0}^{1} \frac{\partial \omega_2}{\partial t^2}dt^1\ldots dt^k\\ =(-1)\int_{t^k=0}^{1}\ldots\int_{t^3=0}^1\int_{t^1=0}^1\int_{t^2=0}^{1} \frac{\partial \omega_2}{\partial t^2}dt^2dt^1 dt^3\ldots dt^k\\ =(-1)\int_{t^k=0}^{1}\ldots\widehat{\int_{t^2=0}^1}\int_{t^1=0}^{1} \big[\omega_2(t)\big|_{t^2=1}-\omega_2(t)\big|_{t^2=0}\big]dt^1\ldots\widehat{dt^2}\ldots dt^k.$

Since the integrand $g=\omega_2(t)\big|_{t^2=1}-\omega_2(t)\big|_{t^2=0}$ does not depend on $t^2$ it is equal to its integral $\int^1_0g\;dt^2$, so

$\int_I d(\omega_2 dx^1\wedge dx^3\wedge\ldots\wedge dx^k)\\ =(-1)\int_{[0,1]^k}\big[\omega_2(t)\big|_{t^2=1}-\omega_2(t)\big|_{t^2=0}\big]dt^1\ldots dt^k\\ =(-1)\int_{[0,1]^k}\big[\omega_2\big|_{x^2=1}-\omega_2\big|_{x^2=0}\big]dx^1\ldots dx^k\\ =(-1)\big[\int_{I_2^1}\omega_2dx^1\wedge\widehat{dx^2}\wedge\ldots\wedge dx^k -\int_{I_2^0}\omega_2dx^1\wedge\widehat{dx^2}\wedge\ldots\wedge dx^k\big].$

In the last equality we have used (20.19) and (20.20) for $i=2$.

Now we are ready to consider the complete $(k-1)$ form (20.17). First compute the exterior differential

$d\omega=\sum_{i=1}^k\frac{\partial \omega_i}{\partial x^i} dx^i\wedge dx^1\wedge\ldots \widehat{dx^i}\wedge\ldots\wedge dx^k\\ =\sum_{i=1}^k (-1)^{i-1}\frac{\partial \omega_i}{\partial x^i} dx^1\wedge\ldots \wedge dx^i\wedge\ldots\wedge dx^k\\ =\big(\sum_{i=1}^k (-1)^{i-1}\frac{\partial \omega_i}{\partial x^i}\big) dx^1\wedge\ldots \wedge dx^i\wedge\ldots\wedge dx^k,$