PDEtools - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Mathematics : Differential Equations : PDEtools : Symmetries : PDEtools/ConsistencyTest





tests whether a given system of equations is or not consistent.


Calling Sequence




Calling Sequence

ConsistencyTest(S, PDESYS, DepVars)




a PDE or a set or list of them; it can include ODEs and not differential equations or inequations



optional - may be required; a function or a list of them indicating the dependent variables of the problem



optional - to return a system equivalent to PDESYS simplified with respect to its integrability conditions



optional, related to outputthesystem, to specify that all auxiliary functions _Fn (n integer) introduced in the process are to be eliminated before outputting



ConsistencyTest tests whether a system of equations, possibly containing inequations and involving or not differential equations, is or not consistent. A system is inconsistent when one of its equations contradicts one other one. In order to be solvable, a system must be consistent in the first place.


If DepVars is not specified, ConsistencyTest will consider all the differentiated unknown functions in PDESYS as unknown of the problems.


By default, ConsistencyTest returns true or false. If the system is consistent when the option argument outputthesystem is specified, ConsistencyTest returns three lists with equations, inequations and function replacements to represent PDESYS in differential polynomial form, where the equations and inequations are equivalent to PDESYS simplified with respect to its integrability conditions. These three lists  returned can also be computed using dpolyform, but the number of operations performed to compute it is smaller when using ConsistencyTest. If PDESYS happens to be inconsistent and outputthesystem is specified ConsistencyTest returns NULL.


To obtain output without auxiliary functions when outputthesystem is specified use in addition the optional argument no_Fn.



declare(f(x, y), g(x, y));

fx,ywill now be displayed asf

gx,ywill now be displayed asg


sys[1] := [diff(f(x, y), y, y) = 0, -6*(diff(f(x, y), y))*y+diff(g(x, y), y, y)-2*(diff(f(x, y), x, y)) = 0, -9*(diff(f(x, y), y))*a*y^2-12*(diff(f(x, y), y))*a^2*y-3*(diff(f(x, y), y))*b-3*(diff(f(x, y), x))*y+2*(diff(g(x, y), x, y))-(diff(f(x, y), x, x))-3*g(x, y) = 0, -6*g(x, y)*a*y-6*(diff(f(x, y), x))*a*y^2-8*(diff(f(x, y), x))*a^2*y+3*(diff(g(x, y), y))*a*y^2+4*(diff(g(x, y), y))*a^2*y-4*g(x, y)*a^2-2*(diff(f(x, y), x))*b+(diff(g(x, y), y))*b-3*y*(diff(g(x, y), x))+diff(g(x, y), x, x) = 0];






Let's see the actual form of the consistent system sys[1] after its integrability conditions are taken into account

ConsistencyTest(sys[1], outputthesystem);



Construct an inconsistent system departing from sys[1], by multiplying any two of its equations (both are equal to zero) and equating the result to 1

sys[2] := [op(sys[1]), expand(lhs(sys[1][1])*lhs(sys[1][2])) = 1];






When the system is inconsistent and the option outputthesystem` is received, ConsistencyTest returns NULL and a related warning message is displayed

ConsistencyTest(sys[2], outputthesystem);

Warning: System is inconsistent

An example involving mathematical functions (exp)

sys[3] := [diff(f(x, y), y, y) = 0, -6*(diff(f(x, y), y))*y+diff(g(x, y), y, y)-2*(diff(f(x, y), x, y)) = 0, -9*(diff(f(x, y), y))*a*y^2-12*(diff(f(x, y), y))*a^2*y-3*(diff(f(x, y), y))*b-3*(diff(f(x, y), x))*y+2*(diff(g(x, y), x, y))-(diff(f(x, y), x, x))-3*exp(x)-3*g(x, y) = 0, -(6*(exp(x)+g(x, y)))*a*y-6*(diff(f(x, y), x))*a*y^2-8*(diff(f(x, y), x))*a^2*y+3*(diff(g(x, y), y))*a*y^2+4*(diff(g(x, y), y))*a^2*y-(4*(exp(x)+g(x, y)))*a^2-2*(diff(f(x, y), x))*b+(diff(g(x, y), y))*b-3*y*(exp(x)+diff(g(x, y), x))+exp(x)+diff(g(x, y), x, x) = 0];






The output with three lists, typical of dpolyform, showing the consistent form of sys[3], involves an auxiliary function _F1 to represent in differential polynomial form the system originally containing exp

ConsistencyTest(sys[3], outputthesystem);



The output typical of casesplit for the same system does not contain auxiliary functions; to obtain it use the optional argument no_Fn

ConsistencyTest(sys[3], outputthesystem, no_Fn);



To compute a form of the system which does not involve auxiliary functions _Fn and also is entirely differential polynomial, so it does not involve mathematical functions, use dpolyform

dpolyform(sys[3], no_Fn);



Note however that, depending on the example, the elimination of the auxiliary functions as in the output above may be an expensive computational process.

See Also