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

Photo Gallery

Rewrite | Software Foundations in Coq | LF | Basics
Booleans | Software Foundations in Coq | LF | Basics
Destruct | Software Foundations in Coq | LF | Basics
Simpl vs Reflexivity | Software Foundations in Coq | LF | Basics
Naturals Part 1 | Software Foundations in Coq | LF | Basics
Our First Definition and Proof | Software Foundations in Coq | LF | Basics
Intros | Software Foundations in Coq | LF | Basics
Coq IDEs | Software Foundations in Coq | LF | Basics
Naturals Part 2 | Software Foundations in Coq | LF | Basics
Naturals Part 3 | Software Foundations in Coq | LF | Basics
Higher-Order Functions Part 1 | Software Foundations in Coq | LF | Poly
Exercises in Basics | Software Foundations in Coq | LF | Basics
View Detailed Profile
Rewrite | Software Foundations in Coq | LF | Basics

Rewrite | Software Foundations in Coq | LF | Basics

The [

Booleans | Software Foundations in Coq | LF | Basics

Booleans | Software Foundations in Coq | LF | Basics

How to define the Booleans from scratch, write functions using them, and prove that the functions satisfy some "unit tests".

Destruct | Software Foundations in Coq | LF | Basics

Destruct | Software Foundations in Coq | LF | Basics

The [destruct] tactic in

Simpl vs Reflexivity | Software Foundations in Coq | LF | Basics

Simpl vs Reflexivity | Software Foundations in Coq | LF | Basics

The operation

Naturals Part 1 | Software Foundations in Coq | LF | Basics

Naturals Part 1 | Software Foundations in Coq | LF | Basics

The natural numbers are a quintessential data type in

Our First Definition and Proof | Software Foundations in Coq | LF | Basics

Our First Definition and Proof | Software Foundations in Coq | LF | Basics

Coq

Intros | Software Foundations in Coq | LF | Basics

Intros | Software Foundations in Coq | LF | Basics

The [intros] tactic is used in

Coq IDEs | Software Foundations in Coq | LF | Basics

Coq IDEs | Software Foundations in Coq | LF | Basics

Coq

Naturals Part 2 | Software Foundations in Coq | LF | Basics

Naturals Part 2 | Software Foundations in Coq | LF | Basics

Functions such as addition and multiplication (on the natural numbers) are written recursively in

Naturals Part 3 | Software Foundations in Coq | LF | Basics

Naturals Part 3 | Software Foundations in Coq | LF | Basics

Comparisons for equality and inequality on the

Higher-Order Functions Part 1 | Software Foundations in Coq | LF | Poly

Higher-Order Functions Part 1 | Software Foundations in Coq | LF | Poly

Higher-order functions can take functions as input and returns functions as output. The former is explored in the context

Exercises in Basics | Software Foundations in Coq | LF | Basics

Exercises in Basics | Software Foundations in Coq | LF | Basics

Every chapter in

Sources of Knowledge | Software Foundations in Coq | LF | Preface

Sources of Knowledge | Software Foundations in Coq | LF | Preface

Why would we believe that a program is correct? Source

First Proof by Induction | Software Foundations in Coq | LF | Induction

First Proof by Induction | Software Foundations in Coq | LF | Induction

Induction is one

Polymorphic Pairs and Options | Software Foundations in Coq | LF | Poly

Polymorphic Pairs and Options | Software Foundations in Coq | LF | Poly

Parametric polymorphism is useful not just with lists, but also pairs and options in

Seven or Eight Myths | Software Foundations in Coq | LF | Preface

Seven or Eight Myths | Software Foundations in Coq | LF | Preface

Formal methods are imperfect. Frequently they are under appreciated and over hyped. I'll dispel some myths and introduce one

Types and Pattern Matching | Software Foundations in Coq | LF | Basics

Types and Pattern Matching | Software Foundations in Coq | LF | Basics

Some examples

Improved Polymorphic Syntax | Software Foundations in Coq | LF | Poly

Improved Polymorphic Syntax | Software Foundations in Coq | LF | Poly

The use

Imagine Yourself As a Programmer | Software Foundations in Coq | LF | Preface

Imagine Yourself As a Programmer | Software Foundations in Coq | LF | Preface

Why would a programmer care deeply about program correctness? Deeply enough to go to the trouble