🐔
Let's play Agda
Beta
8ab2339
Welcome
About this project
Getting Agda
References
A mathematical Rosetta Stone
Agda as a programming language
Booleans
Operators
Higher-order functions
Natural numbers
Definition
Arithmetic
Decision procedures
Dependent functions
Syntactic sugar
Lists
Vectors
Agda as a proof language
Propositions as types
Predicates on natural numbers
Negation
Equality
Definition
First steps with equality
General results on equality
Results on Booleans
Results on natural numbers
Results on lists
Results on vectors
Equational reasoning
Logical connectives
Disjunction
Existential quantification
Conjunction
All and Any
Well-founded recursion
Intro
The standard ordering on the natural numbers
Gas
Well-founded induction
Well-founded relations
A general recursion scheme
Examples
Bove–Capretta method
An intricate zero function
The 91 function
Digits, revisited
Verified algorithms
Post-hoc verification
Correct by construction
Case study: Binary representation of natural numbers
Case study: Insertion sort
Implementation
Post-hoc verification
Correct by construction
Case study: Compiler and interpreter
Cubical Agda 🚧
Issues with standard Agda 🚧
Function extensionality
Propositional truncation
Quotients
The identity types of the universe
An expanded Rosetta Stone
First steps
Explorations
Sets as trees
Uncountability
Lawvere's fixed point theorem
Applications
Seemingly impossible programs and proofs
Numbers larger than infinity
Computational content of classical logic 🚧
Intro
Sarcastic interpretation of classical logic
Classical blueprints
Minima
Drinkers
Convenient fictions
Minima
Drinkers
Infinite subsequences
Case study: Dickson's lemma
Case study: Pigenhole principle
Recreational mathematics
Fun with the axiom of choice
The final digit of Graham's number
📥 Download raw
References
Programming Language Foundations in Agda
– by Philip Wadler, Wen Kokke and Jeremy Siek
Programming and Proving in Agda
– by Jesper Cockx
Introduction to Univalent Foundations of Mathematics with Agda
– by Martín Escardó
Dependent Types at Work
– by Ana Bove and Peter Dybjer
Learn you an Agda
– by Liam O’Connor-Davis with additions by William DeMeo
A practical Agda tutorial
– by Péter Diviánszky and Ambrus Kaposi
Correct-by-construction programming in Agda
– by Jesper Cockx
More on the double-negation translation