SymbolicMath is a small collection of symbolic math tools built on top of Python and SymPy.
This repository currently contains the following packages:
- MultipleIntegrate — symbolic definite integration for many multiple integrals
- BranchCuts — symbolic tools for analyzing branch cuts, multivalued expressions, and complex function behavior
- PDESolve — symbolic PDE solver, currently using only Lie-symmetry based method
- SemialgebraicGeometry / semialg — symbolic real semialgebraic geometry, cylindrical decomposition, quantifier elimination, and region computation
- TensorAtlas — symbolic tensor calculus, differential geometry, relativity, and geometric algebra
The goal of the repo is to provide practical symbolic methods for problems that are not addressed by SymPy.
MultipleIntegrate focuses on symbolic definite integration, especially for structured families of multiple integrals.
It includes support for many cases such as:
- product-region multiple integrals
- Gaussian integrals and moments
- rational full-line integrals
- polynomial moment families
- selected transform-friendly trigonometric and exponential integrals
- special-function outputs involving logarithms, arctangents, gamma, and beta functions
The package uses a strategy-based approach rather than relying only on direct antiderivatives.
BranchCuts focuses on the symbolic analysis of branch cuts and related issues for complex elementary and special functions.
Typical goals include:
- identifying where expressions are discontinuous in the complex plane
- determining branch-cut structure under composition
- simplifying expressions while respecting branch behavior
- helping reason about multivalued functions such as logarithms, roots, inverse trig functions, and related expressions
This package is useful when exact symbolic transformations depend on choosing the correct complex branch structure.
liepde, under PDESolve, is a standalone package for Lie-symmetry based PDE reduction and symbolic solution workflows.
It is designed for scalar PDEs written with SymPy and focuses on practical symmetry-based reduction rather than fully general PDE solving. The package can return the best available result from its workflow: a full explicit solution when available, otherwise a lifted similarity solution, otherwise a reduced equation.
Current capabilities include:
- scalar jet-space PDE parsing
- automatic PDE-order inference
- solved-form principal derivative selection
- determining-equation construction for Lie point symmetries
- polynomial ansatz solving for infinitesimals
- symbolic search for reducible symmetry combinations
- Frobenius-chart based reductions
- repeated reduction workflow utilities
- reduced-equation solving
- lifting reduced solutions back to the original variables
- configurable result levels and detailed diagnostics
- analysis-only mode for PDE inspection without a full solve attempt
- direct fallback solving with SymPy where appropriate
- pattern-based fallback solutions for several standard PDE families, including:
- transport equations
- heat / diffusion equations
- advection-diffusion equations
- wave equations
semialg, under SemialgebraicGeometry, focuses on real semialgebraic computation: symbolic reasoning about sets and formulas defined by polynomial equalities, inequalities, and Boolean combinations of such constraints.
It is designed for exact real-algebraic workflows built on top of SymPy, with an emphasis on practical decision procedures, cylindrical decomposition, quantifier elimination, sampling, simplification, and region operations.
Current capabilities include:
- semialgebraic formula preprocessing and normalization
- cylindrical algebraic decomposition workflows
- quantifier elimination for supported real polynomial formulas
- satisfiability, tautology, implication, and equivalence checks
- witness and sample-point generation for semialgebraic constraints
- exact sign evaluation utilities for sample points and sign vectors
- simplification of Boolean and piecewise semialgebraic formulas
- real-domain and range analysis for supported algebraic expressions
- semialgebraic minimization and maximization
- region operations including union, intersection, difference, complement, closure, interior, boundary, dimension, and components
- predicates for region containment, equality, disjointness, boundedness, closedness, and compactness
- symbolic measure, integration, moments, centroids, and covariance for supported semialgebraic regions
- standard region constructors for intervals, boxes, simplices, balls, spheres, cylinders, cones, polyhedra, and related geometric regions
- structured CAD-cell extraction, cylindrical solution descriptions, adjacency graphs, and connectivity analysis
- parameter-space and real-root classification utilities
- exact algebraic backend routines such as subresultants, border bases, and zero-dimensional solving
The package is intended for symbolic real geometry problems where exact logical structure matters: feasibility over the reals, decomposition of polynomial constraint systems, region analysis, and exact or symbolic reduction of geometric integrals. Unsupported or out-of-scope inputs should be handled explicitly rather than silently converted into heuristic numerical results.
tensoratlas is a symbolic tensor, differential-geometry, relativity, and geometric-algebra package built on top of SymPy.
It is intended for exact and semi-symbolic calculations involving tensors, coordinate systems, differential forms, frames, curvature, and related geometric structures. The package emphasizes explicit symbolic workflows that are inspectable, testable, and suitable for mathematical experimentation.
Current capabilities include:
- coordinate charts and coordinate maps
- scalar, vector, covector, and tensor fields
- tensor products, contractions, index raising/lowering, and metric-aware operations
- coordinate gradients, divergences, curls, and Laplace-type operations
- differential forms, wedge products, exterior derivatives, pullbacks, and Cartan-style workflows
- frame and coframe utilities
- Christoffel symbols, Riemann curvature, Ricci tensors, scalar curvature, and Einstein tensors
- selected relativity-oriented workflows for metrics and curvature computations
- symbolic geometric algebra for orthogonal and diagonal metrics
- example notebooks and scripts demonstrating common tensor-calculus and geometry workflows
tensoratlas is useful for problems where tensor expressions should remain symbolic and transparent, rather than being hidden inside purely numerical geometry or simulation code. It is especially aimed at exploratory work in differential geometry, mathematical physics, relativity, geometric algebra, and symbolic tensor manipulation.
The package is still under active development. The most stable public workflows are the explicit coordinate/tensor-field APIs, differential-form operations, relativity helpers, and documented examples. Lower-level canonicalization and experimental symbolic-rewrite utilities may change as the package matures.
SymbolicMath/
├── MultipleIntegrate/
├── BranchCuts/
├── PDESolve/
├── SemialgebraicGeometry/
│ └── semialg/
├─TensorAtlas/
├── README.md
└── ...
Install the repository in editable mode:
pip install -e .If the packages are kept as separate subpackages, install dependencies such as:
pip install sympy pytestAll of the packages are designed to be extended incrementally as new symbolic strategies and recognizers are added.
Bhuvanesh Bhatt
See the license file(s) included in the repository.