Abstract calculations 

Introduction: 

This worksheet illustrates how to do "abstract" calculations using atlas package. To do this we use simple manifolds (such as Euclidean space, curves and 2-dimensional surfaces) just to illustrate the corresponding abilities.
First of all, some possible calculations with symbolic dimension will be considered.
 

After that we calculate the metric and second fundamental forms on abstract "rotational" surface defined by parametric equations: 

 


where rho(Zeta) and eta(Zeta) are some undefined functions on Zeta.
Lastly the same invariants will be calculated for an abstract surface defined by the equation:
 

z = z(x, y) 

where z is undefined function on x and y. 

        

Abstract calculations 

> restart:
 

First of all we load atlas package:
with(atlas): 

Abstract calculations with symbolic dimension 

> Domain(M);
 

M(2.1.1)
 

Declare some functions:  

> Functions(f=f(y[k]),h=h(x[j]));
 

{f, h}(2.1.2)
 

Declare some vectors:  

> Vectors(E[k],X,Y,Z);
 

{X, Y, Z, E[k]}(2.1.3)
 

Declare some forms: 

> Forms(e[j]=1,xi=1,theta=p);
 

{xi, theta, e[j]}(2.1.4)
 

Declare coframe 1-forms: 

> Coframe(e[k],k=1..n);
 

{e[k]}[k = 1 .. n](2.1.5)
 

Declare frame vectors: 

> Frame(E[j]);
 

{E[j]}[j = 1 .. n](2.1.6)
 

Declare connection: 

> Connection(omega);
 

omega[i, j](2.1.7)
 

Using d-procedure: 

For functions:
'd(f*h)'=d(f*h); 

d(`*`(f, `*`(h))) = `+`(`*`(Sum(`*`(Diff(f, y[l[2]]), `*`(d(y[l[2]]))), l[2] = 1 .. n), `*`(h)), `*`(f, `*`(Sum(`*`(Diff(h, x[l[2]]), `*`(d(x[l[2]]))), l[2] = 1 .. n))))(2.1.8)
 

Obviously that:
'd(h*xi)'=d(h*xi); 

d(`*`(h, `*`(xi))) = `+`(`-`(Sum(`*`(Diff(h, x[l[2]]), `*`(`&^`(xi, d(x[l[2]])))), l[2] = 1 .. n)), `*`(h, `*`(d(xi))))(2.1.9)
 

Using ToBasis procedure: 

> X&.xi=ToBasis(X&.xi);
 

`&.`(X, xi) = Sum(`*`(iota[E[l[2]]](xi), `*`(Sum(`*`(iota[X](e[l[1]]), `*`(`&.`(E[l[1]], e[l[2]]))), l[1] = 1 .. n))), l[2] = 1 .. n)(2.1.10)
 

Using div-procedure: 

> div(X)=div(ToBasis(X));
 

div(X) = `+`(Sum(`*`(iota[X](e[l[1]]), `*`(Sum(iota[E[l[2]]](omega[l[2], l[1]]), l[2] = 1 .. n))), l[1] = 1 .. n), Sum(iota[E[l[1]]](d(iota[X](e[l[1]]))), l[1] = 1 .. n))(2.1.11)
 

Using Lie derivative: 

> 'L[E[i]](e[k])'=L[E[i]](e[k]);
 

L[E[i]](e[k]) = iota[E[i]](d(e[k]))(2.1.12)
 

> 'L[E[i]](E[j])'=L[E[i]](E[j]);
 

L[E[i]](E[j]) = Sum(`*`(`+`(iota[E[i]](omega[l[1], j]), `-`(iota[E[j]](omega[l[1], i]))), `*`(E[l[1]])), l[1] = 1 .. n)(2.1.13)
 

Another domain:
Domain(N); 

N(2.1.14)
 

Declare constant lambda:
Constants(lambda); 

{`+`(`-`(I)), I, Pi, _Z, Catalan, lambda}(2.1.15)
 

Declare forms:
Forms(zeta[i]=1); 

{xi, theta, e[j], zeta[i]}(2.1.16)
 

Let us declare another coframe:
Coframe(zeta[j]=d(x[j])/(1+lambda*Sum(x[i]^2,i=1..n)),j=1..n); 

{zeta[j] = `/`(`*`(d(x[j])), `*`(`+`(1, `*`(lambda, `*`(Sum(`*`(`^`(x[i], 2)), i = 1 .. n))))))}[j = 1 .. n](2.1.17)
 

And another frame:
Frame(E[k]); 

{E[k]}[k = 1 .. n](2.1.18)
 

> 'd(zeta[k])'=simplify(d(zeta[k]));
 

d(zeta[k]) = `+`(`-`(`*`(2, `*`(lambda, `*`(Sum(`*`(x[i], `*`(`&^`(zeta[i], zeta[k]))), i = 1 .. n))))))(2.1.19)
 

> 'd(x[j])'=d(x[j]);
 

d(x[j]) = `+`(zeta[j], `*`(zeta[j], `*`(lambda, `*`(Sum(`*`(`^`(x[i], 2)), i = 1 .. n)))))(2.1.20)
 

> 'd(h)'=d(h);
 

d(h) = Sum(`*`(Diff(h, x[l[1]]), `*`(`+`(zeta[l[1]], `*`(zeta[l[1]], `*`(lambda, `*`(Sum(`*`(`^`(x[i], 2)), i = 1 .. n))))))), l[1] = 1 .. n)(2.1.21)
 

> Functions(F=F(f,h));
 

{F, f, h}(2.1.22)
 

> 'd(F)'=d(F);
 

d(F) = `+`(`*`(Diff(F, f), `*`(Sum(`*`(Diff(f, y[l[1]]), `*`(d(y[l[1]]))), l[1] = 1 .. n))), `*`(Diff(F, h), `*`(Sum(`*`(Diff(h, x[l[1]]), `*`(`+`(zeta[l[1]], `*`(zeta[l[1]], `*`(lambda, `*`(Sum(`*`(`...
d(F) = `+`(`*`(Diff(F, f), `*`(Sum(`*`(Diff(f, y[l[1]]), `*`(d(y[l[1]]))), l[1] = 1 .. n))), `*`(Diff(F, h), `*`(Sum(`*`(Diff(h, x[l[1]]), `*`(`+`(zeta[l[1]], `*`(zeta[l[1]], `*`(lambda, `*`(Sum(`*`(`...
(2.1.23)
 

Abstract calculations with numeric dimension 

> restart:
 

Now we reload the atlas package:
with(atlas): 

We redefine `atlas/simp` procedure just for right simplification (this is not necessary but it leads to more compact results):
`atlas/simp`:=proc(a) simplify(a) end: 

Domain `*`(`^`(R, 3)) 

This domain is just 3-dimensional Euclidean space:
Domain(R^3); 

`*`(`^`(R, 3))(2.2.1.1)
 

Declare 1-forms for to use them as a coframe:
Forms(e[j]=1); 

{e[j]}(2.2.1.2)
 

Declare vector fields to use them as a frame:
Vectors(E[i]); 

{E[i]}(2.2.1.3)
 

Declare coframe 1-forms:
Coframe(e[1]=d(x),e[2]=d(y),e[3]=d(z)); 

[e[1] = d(x), e[2] = d(y), e[3] = d(z)](2.2.1.4)
 

Declare frame vectors:
Frame(E[j]); 

[E[1] = Diff(``, x), E[2] = Diff(``, y), E[3] = Diff(``, z)](2.2.1.5)
 

Declare flat metric:
:
Metric(g=d(x)&.d(x)+d(y)&.d(y)+d(z)&.d(z)); 

g = `+`(`&.`(e[1], e[1]), `&.`(e[2], e[2]), `&.`(e[3], e[3]))(2.2.1.6)
 

Connection calculation:
Connection(Gamma); 

Gamma[i, j](2.2.1.7)
 

"Rotational" surface 

Now we operate on a surface.
Domain(S[1]); 

S[1](2.2.2.1)
 

> Functions(rho=rho(zeta),eta=eta(zeta));
 

{eta, rho}(2.2.2.2)
 

Declare 1-forms for coframe:
Forms(u[k]=1); 

{e[j], u[k]}(2.2.2.3)
 

Declare vector fields for frame:
Vectors(U[j]); 

{U[j]}(2.2.2.4)
 

Coframe declaration for the surface:
Coframe(u[1]=d(zeta),u[2]=d(phi)); 

[u[1] = d(zeta), u[2] = d(phi)](2.2.2.5)
 

Frame declaration for the surface:
Frame(U[k]); 

[U[1] = Diff(``, zeta), U[2] = Diff(``, phi)](2.2.2.6)
 

Now we declare mapping of the surface into the Euclidean space `*`(`^`(R, 3)):
Mapping(pi,S[1],R^3,
       x=rho*cos(phi),
       y=rho*sin(phi),
       z=eta);
 

 

pi
`.`(S[1], `--->`, `*`(`^`(R, 3)))(2.2.2.7)
 

Let us see the attributes of the mapping
Who(pi); 

 

pi: mapping
table( [( manifolds ) = [S[1], `*`(`^`(R, 3))], ( natural ) = {Diff(``, phi) = `+`(`-`(`*`(rho, `*`(sin(phi), `*`(Diff(``, x))))), `*`(rho, `*`(cos(phi), `*`(Diff(``, y))))), Diff(``, zeta) = `+`(`*`(...
table( [( manifolds ) = [S[1], `*`(`^`(R, 3))], ( natural ) = {Diff(``, phi) = `+`(`-`(`*`(rho, `*`(sin(phi), `*`(Diff(``, x))))), `*`(rho, `*`(cos(phi), `*`(Diff(``, y))))), Diff(``, zeta) = `+`(`*`(...
table( [( manifolds ) = [S[1], `*`(`^`(R, 3))], ( natural ) = {Diff(``, phi) = `+`(`-`(`*`(rho, `*`(sin(phi), `*`(Diff(``, x))))), `*`(rho, `*`(cos(phi), `*`(Diff(``, y))))), Diff(``, zeta) = `+`(`*`(...
table( [( manifolds ) = [S[1], `*`(`^`(R, 3))], ( natural ) = {Diff(``, phi) = `+`(`-`(`*`(rho, `*`(sin(phi), `*`(Diff(``, x))))), `*`(rho, `*`(cos(phi), `*`(Diff(``, y))))), Diff(``, zeta) = `+`(`*`(...
table( [( manifolds ) = [S[1], `*`(`^`(R, 3))], ( natural ) = {Diff(``, phi) = `+`(`-`(`*`(rho, `*`(sin(phi), `*`(Diff(``, x))))), `*`(rho, `*`(cos(phi), `*`(Diff(``, y))))), Diff(``, zeta) = `+`(`*`(...
table( [( manifolds ) = [S[1], `*`(`^`(R, 3))], ( natural ) = {Diff(``, phi) = `+`(`-`(`*`(rho, `*`(sin(phi), `*`(Diff(``, x))))), `*`(rho, `*`(cos(phi), `*`(Diff(``, y))))), Diff(``, zeta) = `+`(`*`(...
table( [( manifolds ) = [S[1], `*`(`^`(R, 3))], ( natural ) = {Diff(``, phi) = `+`(`-`(`*`(rho, `*`(sin(phi), `*`(Diff(``, x))))), `*`(rho, `*`(cos(phi), `*`(Diff(``, y))))), Diff(``, zeta) = `+`(`*`(...
table( [( manifolds ) = [S[1], `*`(`^`(R, 3))], ( natural ) = {Diff(``, phi) = `+`(`-`(`*`(rho, `*`(sin(phi), `*`(Diff(``, x))))), `*`(rho, `*`(cos(phi), `*`(Diff(``, y))))), Diff(``, zeta) = `+`(`*`(...
(2.2.2.8)
 

After that we can calculate metric induced on the surface by the mapping:
Metric(G = g &/ pi); 

G = `+`(`*`(`+`(`*`(`^`(Diff(rho, zeta), 2)), `*`(`^`(Diff(eta, zeta), 2))), `*`(`&.`(u[1], u[1]))), `*`(`^`(rho, 2), `*`(`&.`(u[2], u[2]))))(2.2.2.9)
 

Calculation of the corresponding connection and curvature: 

> Connection(omega);
 

omega[i, j](2.2.2.10)
 

Let us see the result:
eval(omega); 

table( [( 1, 1 ) = `/`(`*`(`+`(`*`(Diff(rho, zeta), `*`(Diff(rho, zeta, zeta))), `*`(Diff(eta, zeta), `*`(Diff(eta, zeta, zeta)))), `*`(u[1])), `*`(`+`(`*`(`^`(Diff(rho, zeta), 2)), `*`(`^`(Diff(eta, ...
table( [( 1, 1 ) = `/`(`*`(`+`(`*`(Diff(rho, zeta), `*`(Diff(rho, zeta, zeta))), `*`(Diff(eta, zeta), `*`(Diff(eta, zeta, zeta)))), `*`(u[1])), `*`(`+`(`*`(`^`(Diff(rho, zeta), 2)), `*`(`^`(Diff(eta, ...
table( [( 1, 1 ) = `/`(`*`(`+`(`*`(Diff(rho, zeta), `*`(Diff(rho, zeta, zeta))), `*`(Diff(eta, zeta), `*`(Diff(eta, zeta, zeta)))), `*`(u[1])), `*`(`+`(`*`(`^`(Diff(rho, zeta), 2)), `*`(`^`(Diff(eta, ...
(2.2.2.11)
 

Now we can calculate the corresponding curvature:
Curvature(Omega); 

Omega[i, j](2.2.2.12)
 

The result is:
eval(Omega); 

table( [( 1, 1 ) = 0, ( 1, 2 ) = `+`(`-`(`/`(`*`(rho, `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&^`(u[...
table( [( 1, 1 ) = 0, ( 1, 2 ) = `+`(`-`(`/`(`*`(rho, `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&^`(u[...
table( [( 1, 1 ) = 0, ( 1, 2 ) = `+`(`-`(`/`(`*`(rho, `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&^`(u[...
table( [( 1, 1 ) = 0, ( 1, 2 ) = `+`(`-`(`/`(`*`(rho, `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&^`(u[...
table( [( 1, 1 ) = 0, ( 1, 2 ) = `+`(`-`(`/`(`*`(rho, `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&^`(u[...
(2.2.2.13)
 

Calculation of riemannian and ricci tensors of the embedded surface: 

> Riemann(Riem);
 

Riem = `+`(`-`(`/`(`*`(rho, `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(`&^`(u[1], u[2]), `&^`(u[1],...
Riem = `+`(`-`(`/`(`*`(rho, `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(`&^`(u[1], u[2]), `&^`(u[1],...
(2.2.2.14)
 

> Ricci(ric);
 

ric = `+`(`-`(`/`(`*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(u[1], u[1])))), `*`(rho, `*`(`+`(`*`(`...
ric = `+`(`-`(`/`(`*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(u[1], u[1])))), `*`(rho, `*`(`+`(`*`(`...
ric = `+`(`-`(`/`(`*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(u[1], u[1])))), `*`(rho, `*`(`+`(`*`(`...
ric = `+`(`-`(`/`(`*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(u[1], u[1])))), `*`(rho, `*`(`+`(`*`(`...
ric = `+`(`-`(`/`(`*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(u[1], u[1])))), `*`(rho, `*`(`+`(`*`(`...
(2.2.2.15)
 

Calculation of ricci scalar of the embedded surface:
RicciScalar(s);
 

s = `+`(`-`(`/`(`*`(2, `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))))), `*`(rho, `*`(`^`(`+`(`*`(`^`(Diff(rho, ...(2.2.2.16)
 

We can also calculate the invariants (the second fundamental form and mean curvature vector) of the embedding: 

> Inv:=Invariants(pi);
 

table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta)))))...
(2.2.2.17)
 

Let us extract the second fundamental form: 

> B:=eval(Inv[secondForm]);
 

table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(E[1])))), `*`(`+`(`...
table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(E[1])))), `*`(`+`(`...
table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(E[1])))), `*`(`+`(`...
table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(E[1])))), `*`(`+`(`...
table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(E[1])))), `*`(`+`(`...
table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(E[1])))), `*`(`+`(`...
table( [( 1, 1 ) = [`+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(E[1])))), `*`(`+`(`...
(2.2.2.18)
 

Now we can calculate the corresponding tensor: 

> 'B'=add(add(`&.`(e[i],e[j],eval(B)[i,j])
,i=1..2),j=1..2);
 

B = `+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(e[1], e[1], E[1]))))), `*`(`+`...
B = `+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(e[1], e[1], E[1]))))), `*`(`+`...
B = `+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(e[1], e[1], E[1]))))), `*`(`+`...
B = `+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(e[1], e[1], E[1]))))), `*`(`+`...
B = `+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(e[1], e[1], E[1]))))), `*`(`+`...
B = `+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(e[1], e[1], E[1]))))), `*`(`+`...
B = `+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(e[1], e[1], E[1]))))), `*`(`+`...
B = `+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(e[1], e[1], E[1]))))), `*`(`+`...
B = `+`(`/`(`*`(cos(phi), `*`(Diff(eta, zeta), `*`(`+`(`*`(Diff(rho, zeta, zeta), `*`(Diff(eta, zeta))), `-`(`*`(Diff(rho, zeta), `*`(Diff(eta, zeta, zeta))))), `*`(`&.`(e[1], e[1], E[1]))))), `*`(`+`...
(2.2.2.19)
 

One can also calculate the corresponding projectors: 

> Projectors(pi);
 

table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
table( [( tangent ) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(`^`(Diff(rho, zeta), 2))), `-`(`*`(`^`(Diff(eta, zeta), 2))), `*`(`^`(Diff(eta, zeta), 2), `*`(`^`(cos(phi), 2)))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*...
(2.2.2.20)
 

An abstract surface 

Now current manifold is a surface.
Domain(S[2]); 

S[2](2.2.3.1)
 

Declare functions:
Functions(f=f(alpha,beta)); 

{eta, f, rho}(2.2.3.2)
 

Declare 1-forms for the surface coframe:
Forms(xi[k]=1); 

{e[j], u[k], xi[k]}(2.2.3.3)
 

Declare vector fields for the surface frame:
Vectors(Xi[j]); 

{Xi[j]}(2.2.3.4)
 

Coframe declaration for the surface:
Coframe(xi[1]=d(alpha),xi[2]=d(beta)); 

[xi[1] = d(alpha), xi[2] = d(beta)](2.2.3.5)
 

Frame declaration for the surface:
Frame(Xi[k]); 

[Xi[1] = Diff(``, alpha), Xi[2] = Diff(``, beta)](2.2.3.6)
 

Now we declare embedding of the surface into `*`(`^`(R, 3)):
Mapping(psi,S[2],R^3,
       x=alpha,
       y=beta,
       z=f);
 

 

psi
`.`(S[2], `--->`, `*`(`^`(R, 3)))(2.2.3.7)
 

Let us see the mapping attributes:
Who(psi); 

 

psi: mapping
table( [( manifolds ) = [S[2], `*`(`^`(R, 3))], ( natural ) = {Diff(``, alpha) = `+`(Diff(``, x), `*`(Diff(f, alpha), `*`(Diff(``, z)))), Diff(``, beta) = `+`(Diff(``, y), `*`(Diff(f, beta), `*`(Diff(...
table( [( manifolds ) = [S[2], `*`(`^`(R, 3))], ( natural ) = {Diff(``, alpha) = `+`(Diff(``, x), `*`(Diff(f, alpha), `*`(Diff(``, z)))), Diff(``, beta) = `+`(Diff(``, y), `*`(Diff(f, beta), `*`(Diff(...
table( [( manifolds ) = [S[2], `*`(`^`(R, 3))], ( natural ) = {Diff(``, alpha) = `+`(Diff(``, x), `*`(Diff(f, alpha), `*`(Diff(``, z)))), Diff(``, beta) = `+`(Diff(``, y), `*`(Diff(f, beta), `*`(Diff(...
table( [( manifolds ) = [S[2], `*`(`^`(R, 3))], ( natural ) = {Diff(``, alpha) = `+`(Diff(``, x), `*`(Diff(f, alpha), `*`(Diff(``, z)))), Diff(``, beta) = `+`(Diff(``, y), `*`(Diff(f, beta), `*`(Diff(...
table( [( manifolds ) = [S[2], `*`(`^`(R, 3))], ( natural ) = {Diff(``, alpha) = `+`(Diff(``, x), `*`(Diff(f, alpha), `*`(Diff(``, z)))), Diff(``, beta) = `+`(Diff(``, y), `*`(Diff(f, beta), `*`(Diff(...
(2.2.3.8)
 

After that we can calculate metric induced on the surface by the embedding:
Metric(gK = g &/ psi); 

gK = `+`(`*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1), `*`(`&.`(xi[1], xi[1]))), `*`(Diff(f, alpha), `*`(Diff(f, beta), `*`(`&.`(xi[1], xi[2])))), `*`(Diff(f, alpha), `*`(Diff(f, beta), `*`(`&.`(xi[2], xi[...
gK = `+`(`*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1), `*`(`&.`(xi[1], xi[1]))), `*`(Diff(f, alpha), `*`(Diff(f, beta), `*`(`&.`(xi[1], xi[2])))), `*`(Diff(f, alpha), `*`(Diff(f, beta), `*`(`&.`(xi[2], xi[...
gK = `+`(`*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1), `*`(`&.`(xi[1], xi[1]))), `*`(Diff(f, alpha), `*`(Diff(f, beta), `*`(`&.`(xi[1], xi[2])))), `*`(Diff(f, alpha), `*`(Diff(f, beta), `*`(`&.`(xi[2], xi[...
gK = `+`(`*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1), `*`(`&.`(xi[1], xi[1]))), `*`(Diff(f, alpha), `*`(Diff(f, beta), `*`(`&.`(xi[1], xi[2])))), `*`(Diff(f, alpha), `*`(Diff(f, beta), `*`(`&.`(xi[2], xi[...
(2.2.3.9)
 

Let us calculate the invariants of the embedding: 

> Invariants(psi);
 

table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
table( [( secondForm ) = table( [( 1, 1 ) = [`+`(`-`(`/`(`*`(Diff(f, alpha, alpha), `*`(Diff(f, alpha), `*`(E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2)))))), `-`(`/`(`*`...
(2.2.3.10)
 

One can also calculate the corresponding projectors: 

> Projectors(psi);
 

table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
table( [( tangent ) = `+`(`/`(`*`(`+`(1, `*`(`^`(Diff(f, beta), 2))), `*`(`&.`(e[1], E[1]))), `*`(`+`(`*`(`^`(Diff(f, alpha), 2)), 1, `*`(`^`(Diff(f, beta), 2))))), `-`(`/`(`*`(Diff(f, alpha), `*`(Dif...
(2.2.3.11)
 

>