Symbolic Manipulation in Julia
2019-07-25 , Elm B

Symbolic terms are fundamental to a variety of fields in computer science, including computer algebra, automated reasoning, and scientific modeling. In this talk, we discuss a family of Julia packages for symbolic computation, including Rewrite.jl for term rewriting and ModelingToolkit.jl for symbolic differential equations.


The manipulation of symbolic terms is fundamental to a variety of fields in computer science, including computer algebra, automated reasoning, and scientific modeling. Through the lens of symbolic transformations, we concisely represent and efficiently apply complex properties and equivalences. In this talk, we discuss a family of Julia packages for symbolic computation, establishing the foundations of term rewriting and showcasing extensions and applications.

After offering a formal definition of symbolic terms, we will examine various notions from the field of term rewriting and their implementations in Rewrite.jl. We will design sets of rewrite rules that simplify algebraic expressions into unique normal forms, based on domain-specific axioms. Building on this interpretation, we finally will explore symbolic differential equations in ModelingToolkit.jl, showcasing methods for incorporating context-aware symbolic variables and techniques for enforcing mathematical invariants.


Co-authors:

Student at Carnegie Mellon University School of Computer Science, with an interest in programming language theory and computational symbolic mathematics. Author of Rewrite.jl and related symbolic packages. Developer of ModelingToolkit.jl and its integration into the PuMaS.jl project for pharmaceutical modeling and simulation, through the University of Maryland, School of Pharmacy, Center for Translational Medicine.