bidicalc: a bidirectional calculator

72 points by victorpoughon


jackdk

You might be interested in an abstraction called "propagators". They're like hypergraphs where the nodes are bounded join semilattices holding information, and the edges are monotone functions from the input nodes to an output node. If you're careful you can make e.g. your arithmetic operations build propagator networks so you have a shot at running computations "backwards" and deriving "inputs" from "outputs".