Repository for the paper Operational Calculus for Differentiable Programming
In this work we present a theoretical model for differentiable programming. We construct an algebraic language that encapsulates formal semantics of differentiable programs by way of Operational Calculus. The algebraic nature of Operational Calculus can alter the properties of the programs that are expressed within the language and transform them into their solutions.
In our model programs are elements of programming spaces and viewed
as maps from the virtual memory space to itself. Virtual memory space is an algebra of programs, an algebraic data structure one can calculate with. We define the operator of differentiation (∂
) on programming spaces and, using its powers, implement the general shift operator and the operator of program composition. We provide the formula for the
expansion of a differentiable program into an infinite tensor series in terms of the powers of ∂
. We express the operator of program composition in terms of the generalized shift operator and ∂
, which implements a differentiable composition in the language. Such operators serve as abstractions
over the tensor series algebra, as main actors in our language.
We demonstrate our models usefulness in differentiable programming by using it to analyse iterators, deriving fractional iterations and their iterating velocities, and explicitly solve the special case of ReduceSum.
In order to compile the paper from source run the compile.py
script. Consult its help by running compile.py --help
if needed.