Skip to content

Beyond the core: the Maple delta

Planned for wave 4: code generation to Go, algebraic numbers, ODE and PDE solving, triangular decomposition, differential algebra, symbolic random variables, permutation groups and tensors.

Status: planned, wave 4, after the core; repositories not created yet, names provisional (codegen, algnum, ode, pde, triangular, diffalg, stats, group, tensor).

What Maple offers beyond Mathematica’s core, as a delta over it (PLAN.md items 19 to 21, wave 4). Maple is proprietary and is never run as an oracle: free tools are, and the expected values are frozen into test data by a Go generator that records the tool and its version.

No code exists yet: nothing on this page is released, measured or tested. It says what the library is planned to provide and how it will be checked. The wave and the order are in PLAN.md; the state of each item in STATUS.md.

What it will provide

codegenexpressions to Go source with common-subexpression elimination on the hash-consed DAG, an optional Horner scheme, a fusion policy for floating point, a pluggable target interface; C and Fortran emitters as test oracles only
algnumalgebraic numbers (RootOf, evala-style): minimal polynomials, dynamic evaluation when the polynomial is reducible, norm, trace, GCD and factorisation over number fields
odeclassification, integrating factors, Lie symmetry heuristics, Kovacic’s algorithm, hypergeometric reductions; a checkodesol-style verifier first, so a wrong solution is impossible
pdeheuristic separation, characteristic strips, travelling waves, splitting into cases
triangularregular chains and triangular decomposition, then cylindrical algebraic decomposition by triangular decomposition
diffalgrankings, Ritt reduction, Rosenfeld-Groebner differential elimination
statssymbolic random variables: PDF, CDF, MGF and moments from distribution definitions
grouppermutation groups by Schreier-Sims, conjugacy classes, Cayley tables, finitely presented groups
tensorabstract-index tensors with Butler-Portugal canonicalisation, curvature tensors, noncommutative algebra, Lie algebras

References

The references the work starts from (bibliography first):

Reference implementations

ImplementationLicence and use
SymPy solvers/ode, combinatorics, codegen, cseBSD-3 text; port permitted file by file after reading the appended notices
FriCAS (kovacic.spad and others)BSD-3-Clause; port permitted; the only free implementation of Kovacic’s algorithm found
Reduce packagesBSD (top-level licence read); port permitted once each package header is read
GAP, msolve, LinBox, FFLAS-FFPACK, Cadabra2, Maxima, SingularGPL or LGPL: oracles only, never copied

How it will be validated

Reference tools are run as oracles, driven from Go by exec with JSON on a pipe; the unit suite must pass with no oracle installed.

OracleHow
ODE and PDESymPy dsolve, classify_ode, checkodesol; FriCAS for Kovacic; correctness by substituting the solution into the equation
Algebraic numbersPARI/GP (nffactor, polredabs), python-flint
Triangular setsmsolve, Singular, Sage (oracle only); checked by radical membership and numerical solving
GroupsGAP, SymPy combinatorics; exact group order and conjugacy-class sizes
Code generationSymPy cse, ccode, fortran_code; go build the output and compare with the interpreter

What “correct” means:

AreaCriterion
ODE and PDEresidual after substitution is zero, or below 1e-12 relative at 100 random points; the solution is general; wrong answers must be 0
Algebraic numbersexact equality after canonical form; norm and minimal polynomial equal PARI’s
Triangular decompositionunion of the zero sets equals the input variety
Code generationgenerated Go compiles, vet is clean, equals the interpreter within a stated ULP bound
Groupsexact: order, orbit sizes, class counts

Risks and open questions

  • ODE solving is heuristic and open-ended; Kovacic is the only complete piece. A verifier-first design and a time limit per ODE control the cost.
  • CAD and triangular decomposition are doubly exponential in the worst case; word-size polynomial arithmetic over Z/p comes first.
  • The Maple help pages describe interfaces, rarely algorithms: attributions to Maple are inferences and flagged as such in the bibliography.
  • Not planned: Mathematica’s curated data (Entity, CountryData), the Maple .mw document round trip, and MapleSim’s proprietary component libraries.

Created on by tannevaled

Modified on by tannevaled