FWIW, I&#x27;m not mathematically-inclined and haven&#x27;t found Coq to be painful to use. As soon as I really want verified code, doing stuff in Coq seems like the easiest path because the proof automation tooling is pretty great, especially if you follow the approach in <i>Certified Programming with Dependent Types</i>[0].<p>I also like Alloy[1] for messing around with logical data structure definitions interactively.<p>[0] <a href="http:&#x2F;&#x2F;adam.chlipala.net&#x2F;cpdt&#x2F;" rel="nofollow">http:&#x2F;&#x2F;adam.chlipala.net&#x2F;cpdt&#x2F;</a><p>[1] <a href="http:&#x2F;&#x2F;alloy.mit.edu&#x2F;alloy&#x2F;" rel="nofollow">http:&#x2F;&#x2F;alloy.mit.edu&#x2F;alloy&#x2F;</a>