Draft paper: https://arxiv.org/pdf/2008.11256.pdf
Sample code (looks like a DSL embedded in Python): https://github.com/gilbo/atl/blob/master/examples/catenary.p...
Draft paper: https://arxiv.org/pdf/2008.11256.pdf
Sample code (looks like a DSL embedded in Python): https://github.com/gilbo/atl/blob/master/examples/catenary.p...
I might be wrong but they take the principle of dual numbers: a + b epsilon, and change the b component into its linear dual. Therefore, b is a function, and not a number. If b is a function instead of a number, then there's more flexibility regarding flow of control, and that flexibility allows you to express reverse-mode autodiff.
Just consider garbage collection. Trivial reference counting is easy to explain and implement. Not going to win too many points in use, though.
https://github.com/ChezJrk/verified-scheduling
OTOH, a Coq-like DSL written in python would be exciting!
The coq repo is covered by the paper but is a verified version of only the scheduler (a part of the parent python repo, i presume)
Then the repo you linked to seems to be a rewrite/generalization of another(?) lower level part of the main ATL.