<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 26, 2015 at 6:20 PM, MJ Williams <span dir="ltr"><<a href="mailto:matthewjwilliams101@gmail.com" target="_blank">matthewjwilliams101@gmail.com</a>></span> wrote:<br><br><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
therefore f ( g a ) = g ( f a ) . (transitivity)</blockquote></div><br></div><div class="gmail_extra">If you're interested in getting a firm grasp of airtight proofs -- with a view toward Haskell (and Agda and Idris) mastery -- you might want to pick and choose your way through the web-based proof exercises here:<br><br><a href="https://www.coursera.org/course/intrologic">https://www.coursera.org/course/intrologic</a><br><br></div><div class="gmail_extra">This is a course firmly in the American analytic philosophy tradition, so Logic here is Symbolic Logic. Bonus: the course keeps AI and Machine Learning applications in the backdrop.<br></div><div class="gmail_extra"><br>It's unfortunate that it's some kind of well-kept secret.<br><br>Those who don't need it -- because they've obtained the knowledge elsewhere -- won't know about it. And those who do want that knowledge also won't know about it.<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Did I mention the exercises are web-based? Yes, you get instantaneous feedback on whether you've got a correct proof or not.<br></div><div class="gmail_extra"><br>-- Kim-Ee</div></div>