Symbolic integration is the problem of finding an explicit antiderivative for a given expression. In contrast to symbolic differentiation, which is essentially mechanical for elementary functions, symbolic integration can require deciding whether an elementary antiderivative exists at all.
For elementary functions, the Risch algorithm gives a decision procedure in principle. Practical computer algebra systems often combine Risch-based methods with heuristic transformations, table lookups, and rule-based integration. Rule-based systems such as RUBI use large collections of pattern-matching rules (Rich et al. 2018), while benchmarking suites compare the behavior of different systems on curated integrals (Abbasi 2024).
Special-purpose symbolic integration algorithms are also available in the Wolfram Function Repository. For example, Sam Blake's ResourceFunction["IntegrateAlgebraic"] computes elementary antiderivatives of algebraic functions using heuristics for pseudo-elliptic and pseudo-hyperelliptic integrals (Blake).
Desmond (2026) introduced exhaustive symbolic integration, in which a finite expression grammar is enumerated and differentiated to form a lookup table of integrands and antiderivatives. This makes it possible to measure an "integrability fraction" for a bounded grammar and to find elementary antiderivatives missed by existing computer algebra systems.