# Verify triple product rule

I'm trying to verify triple product rule

$$\left(\frac{\partial x}{\partial y}\right) \left(\frac{\partial y}{\partial z}\right) \left(\frac{\partial z}{\partial x}\right) = -1$$

with the equation:

p*v == r*t


The following is my failed attempt:

Clear["Global*"];
p[v_, t_] := r*t/v;
v[p_, t_] := r*t/p;
t[p_, v_] := p*v/r;
Assuming[p*v == r*t,
Refine[D[p[v, t], v]*D[v[p, t], t]*D[t[p, v], p]]]

(*-((r t)/(p v))*)


Q1: How to get a result of - 1?

Q2: Is there any simpler way to get the product of this partial derivative?

Q3: Is there any way to get the result directly from the given equation without having to write the expression of each function p[v, t], v[p, t], t[p, v]? Especially when the implicit function cannot write the expression.

The following is a automation of the proof here. No need to make use of $$p V=R T$$.

eq = Dt@{z == z[x, y], y == y[x, z], x == x[y, z]}


$$\begin{array}{l} dz=dx \frac{\partial z(x,y)}{\partial x}+dy \frac{\partial z(x,y)}{\partial y} \\ dy=dx \frac{\partial y(x,z)}{\partial x}+dz \frac{\partial y(x,z)}{\partial z} \\ dx=dy \frac{\partial x(y,z)}{\partial y}+dz \frac{\partial x(y,z)}{\partial z} \\ \end{array}$$

mid = DeleteCases[
Reap[Collect[Subtract @@ # == 0 /. Rule @@ #2, _Dt, Sow[# == 0] &] & @@@
Subsets[eq, {2}]][[-1, 1]], True]


$$\begin{array}{r} 1-\frac{\partial y(x,z)}{\partial z} \frac{\partial z(x,y)}{\partial y}=0 \\ -\frac{\partial z(x,y)}{\partial x}-\frac{\partial y(x,z)}{\partial x} \frac{\partial z(x,y)}{\partial y}=0 \\ 1-\frac{\partial x(y,z)}{\partial z} \frac{\partial z(x,y)}{\partial x}=0 \\ -\frac{\partial x(y,z)}{\partial y} \frac{\partial z(x,y)}{\partial x}-\frac{\partial z(x,y)}{\partial y}=0 \\ 1-\frac{\partial x(y,z)}{\partial y} \frac{\partial y(x,z)}{\partial x}=0 \\ -\frac{\partial x(y,z)}{\partial z} \frac{\partial y(x,z)}{\partial x}-\frac{\partial y(x,z)}{\partial z}=0 \\ \end{array}$$

Eliminate[ mid[[2 ;; 3]], Derivative[1, 0][z][x, y]]


$$\frac{\partial x(y,z)}{\partial z} \frac{\partial y(x,z)}{\partial x} \frac{\partial z(x,y)}{\partial y}=-1$$

You can use pdConv to typeset partial derivative.

Still, if you insist, it's possible to make use of $$pV=RT$$ to deduce the triple product rule. The idea is essentially similar:

Clear[dt]; dt[a___, b_Symbol, c___] := dt[a, ToString@TraditionalForm@b, c]

sys =
Dt[p V == R T, #2, Constants -> {R, #3}]& @@@ NestList[RotateLeft, {p, V, T}, 2]
(* {p + V Dt[p, V, Constants -> {R, T, V}] == 0,
p Dt[V, T, Constants -> {p, R, T}] == R,
V == R Dt[T, p, Constants -> {p, R, V}]} *)

sysDfreezed = sys /. (h : Dt)[f_, x_, _] :> dt[f, x]


Eliminate[sysDfreezed, {p, V}] // Simplify[#, R > 0] &


It's OK to start from the general $$f(p,V,T)=0$$, of course. Once again, the idea is essentially similar:

MakeBoxes[Dt[f_, x_, __], fmt_]:= MakeBoxes[TraditionalForm@D[f, x], fmt]

F = f[p, V, T];

generalsys = Dt[F == 0, #2, Constants -> #3] & @@@
NestList[RotateLeft, {p, V, T}, 2]


$$\begin{array}{r} \frac{\partial f}{\partial p} \frac{\partial p}{\partial V}+\frac{\partial f}{\partial V}=0 \\ \frac{\partial f}{\partial V} \frac{\partial V}{\partial T}+\frac{\partial f}{\partial T}=0 \\ \frac{\partial f}{\partial T} \frac{\partial T}{\partial p}+\frac{\partial f}{\partial p}=0 \\ \end{array}$$

Eliminate[generalsys, D[F, {{p, V}}]] // Simplify[#, D[F, T] != 0] &


$$1+\frac{\partial T}{\partial p} \frac{\partial p}{\partial V} \frac{\partial V}{\partial T}=0$$

• Thanks a lot. @xzczd Commented Feb 19, 2022 at 9:43
• @lotus2019 If you insist on making use of $pV=RT$, check my edit. Commented Mar 11, 2022 at 12:40
• That's perfect! Thank you! Commented Mar 12, 2022 at 0:59

Observe the different colours in the code you provided and the solution below:

pp[v_, t_] := r*t/v;
vv[p_, t_] := r*t/p;
tt[p_, v_] := p*v/r;
expr = D[pp[v, t], v]*D[vv[p, t], t]*D[tt[p, v], p]


and now,

Assuming[r t == p v, Simplify[expr]]


or

Simplify[expr, Assumptions -> r t == p v]


or

(D[pp[v, t], v]*D[vv[p, t], t]*D[tt[p, v], p]) /. r t -> p v


or after the computation of the derivatives just set the value for r to be

r = (p v)/t


and then execute

expr


All of the above yield

-1

• Thanks. Is there any way to deduce the final result directly from the equation without having to write the expression of each function pp vv tt? Especially when the implicit function cannot write the expression. Commented Feb 18, 2022 at 8:00
• @lotus2019 I am not sure what you mean. You want to get the -1 without computing the derivatives? Is this what you are saying?
– user49048
Commented Feb 18, 2022 at 8:01
• I want to get the -1 without write "pp[v_, t_] := rt/v; vv[p_, t_] := rt/p; tt[p_, v_] := p*v/r;" but write only the equation p * v == r * t. Commented Feb 18, 2022 at 8:06
• @lotus2019 I don't think so. If you read carefully the wiki link you provided, you will see that in order to derive the proof you consider $f(x,y,z)=0$. The relation $p v = r t$ is precisely that. Maybe I am wrong, but to be honest I think that the above is the simplest approach to go about it.
– user49048
Commented Feb 18, 2022 at 8:10
Simplify[D[p[v, t], v]*D[v[p, t], t]*D[t[p, v], p],Assumptions -> p*v == r*t]
(*-1*)
`
• Thanks. @Ulrich Neumann Commented Feb 19, 2022 at 9:43
• Well, this is already included in kcr's answer, isn't it? Commented Mar 11, 2022 at 16:52