/*** This module provides symbolic series development. The substitution* and the differential operator are the building blocks for the* development of series. The operator taylor/3 can be used to develop* a Taylor series. It takes an original reduced expression, a varying* variable and the number of desired summands.** Examples:* ?- X is 1/(1+A), Y is taylor(X,A,5).* X is 1/(1+A),* Y is 1-A+A^2-A^3+A^4-A^5* ?- X is 1/(1+A), Y is laurent(X,A,5).* X is 1/(1+A),* Y is (1-A+A^2-A^3+A^4)/A^5** By default the Taylor series is developed at the point zero (0),* known as Maclaurin series. There is a variant operator taylor/4* with a further argument for the point where the series should be* developed. The operator laurent/[3,4] produce a Laurent series.* Error handling is rudimentary. Cancellation does not yet generate* non-zero side conditions.** We do not yet support some special functions. The series operators* are realized without any limes operator. Limes calculation is* implicit in our polynomial division since common roots are cancelled.* We do not yet provide some computation for the remainder term,* the convergence radius of the infinite series or a symbolic form* for the infinite series.** Warranty & Liability* To the extent permitted by applicable law and unless explicitly* otherwise agreed upon, XLOG Technologies GmbH makes no warranties* regarding the provided information. XLOG Technologies GmbH assumes* no liability that any problems might be solved with the information* provided by XLOG Technologies GmbH.** Rights & License* All industrial property rights regarding the information - copyright* and patent rights in particular - are the sole property of XLOG* Technologies GmbH. If the company was not the originator of some* excerpts, XLOG Technologies GmbH has at least obtained the right to* reproduce, change and translate the information.** Reproduction is restricted to the whole unaltered document. Reproduction* of the information is only allowed for non-commercial uses. Selling,* giving away or letting of the execution of the library is prohibited.* The library can be distributed as part of your applications and libraries* for execution provided this comment remains unchanged.** Restrictions* Only to be distributed with programs that add significant and primary* functionality to the library. Not to be distributed with additional* software intended to replace any components of the library.** Trademarks* Jekejeke is a registered trademark of XLOG Technologies GmbH.*/* taylor(P, X, N, Q):* taylor(P, X, N, R, Q):* The predicate succeeds in Q with the Taylor series* of P along the variable X for N summands. The quinary* predicate allows specifying the point R.*/% element:taylor(+Element, +Variable, +Integer, -Internal)* laurent(P, X, N, Q):* laurent(P, X, N, R, Q):* The predicate succeeds in Q with the Laurent series* of P along the variable X for N summands. The quinary* predicate allows specifying the point R.*/% element:laurent(+Element, +Variable, +Integer, -Internal)