Repository for the paper Operational Calculus for Differentiable Programming
In this work we present a theoretical model for differentiable programming. We present an algebraic language that enables both implementations and analysis of differentiable programs by way of operational calculus.
To this purpose, we develop an abstract computational model of automatically differentiable programs of arbitrary order. In the model, programs are elements of programming spaces and are 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. We prove that our language enables differentiable derivatives of programs by the use of the order reduction map. We demonstrate our models algebraic power over analytic properties of differentiable programs by analysing iterators, considering fractional iterations and their iterating velocities. We than 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.