# Using Assumptions Implied by other Assumptions

Is it possible to have assumptions about the smoothness of functions?

As an example, suppose that I would like to simplify $u_{tt} - a^2 u_{xx}$ under the assumption that $u_t+au_x=0$.

Under some smoothness assumptions about $u$ this should be zero. (I can compute $u_{tt} + au_{xt} = 0$ and $u_{tx}+au_{xx}=0$ and substitute $u_{tx} = u_{xt}$ from the second equation into the first equation.)

If I use asm1 below, the expression is not simplified, However if I used asm2, the expression is simplified to 0.

Clearly asm1 implies asm2 provided that $u_t+au_x$ is differentiable wrt. $t$ and $x$ and the mixed derivatives are equal.

Is there any way to have Mathematica use the relations in asm2 automatically? When I'm trying to simplify more complex equations it is often tedious to have to compute all these relations on higher derivatives.

asm1 = {D[u[t, x], t] + a D[u[t, x], x] == 0};

asm2 = {
D[u[t, x], t] + a D[u[t, x], x] == 0,
D[D[u[t, x], t] + a D[u[t, x], x], x] == 0,
D[D[u[t, x], t] + a D[u[t, x], x], t] == 0
};

Simplify[D[u[t, x], {t, 2}] - a^2 D[u[t, x], {x, 2}],
Assumptions -> asm1]