Media Summary: How to define the Booleans from scratch, write functions using them, and prove that the functions satisfy some "unit tests". The natural numbers are a quintessential data type in Functions such as addition and multiplication (on the natural numbers) are written recursively in
Rewrite Software Foundations In Coq Lf Basics - Detailed Analysis & Overview
How to define the Booleans from scratch, write functions using them, and prove that the functions satisfy some "unit tests". The natural numbers are a quintessential data type in Functions such as addition and multiplication (on the natural numbers) are written recursively in Comparisons for equality and inequality on the Higher-order functions can take functions as input and returns functions as output. The former is explored in the context Why would we believe that a program is correct? Source
Parametric polymorphism is useful not just with lists, but also pairs and options in Formal methods are imperfect. Frequently they are under appreciated and over hyped. I'll dispel some myths and introduce one Why would a programmer care deeply about program correctness? Deeply enough to go to the trouble