Loved the demo! Would really love to get a function to copypaste the deduction tree you already have, like if you proved in the left subbranch that the statement D is true, you could just drag over the same reasoning tree to the right branch if it is needed, like in the last level of the demo
Yeah, could be thought of like that. A template being a custom combination of rules that you can use like a normal rule.

Here i use P from P^Q and then Q from P^Q, but instead of using this twice, i would make a template with both rules and it will then say Q from (P^Q)^R. It could be a big technical hurdle to make it work correctly though, or it may end up being easy using the already existing way to create trees from rules, just replacing A, B, C with P, Q, R.
And now that i think about it, functions/templates could be very useful if made persistent.
For example i want to more easily say that things are commutative. I create a new template Q^P from P^Q. Now i can reuse this custom template everywhere like a rule.
A simple solution for persintence could be that every level (at least the named ones), after solved, becomes a new rule you can use. Need some way of organizing so you can easily find them, though. If/when I add first order logic I think something like this would be very useful or the proofs might get very long.