23FS MAT605 Logic and Foundations with Haskell
23FS MAT605 Logic and Foundations with Haskell
-
We look at three modules that include Rational and Complex numbers as well as Polynomials. We use these to implement Newton's method. All code can be found in the…
Haskell 14: Rational and Complex Numbers /…
-
We build the foundations of set theory using the Zermelo-Fraenkel axioms with choice. The material follows the first chapter of Thomas Jech's "Set Theory".
Axiomatic Set Theory
-
We cover the basic definitions of set theory in preparation for understanding the ZFC axioms.
Naive Set Theory
-
We implements datatypes for integers based in the natural numbers. All code can be found in the course git repository https://github.com/MariusFurter/MAT605-haskell-FS23
Haskell 13: Integers from Natural Numbers
-
We implement the typeclasses Ord, Enum, Num, Real and Integral for the natural numbers. This allows us to use all standard functions for these typeclasses on our natural…
Haskell 12: Typeclasses for Natural Numbers
-
I show how the Maybe datatype and lists can be used to deal with functions that return either no value or multiple values.
Haskell 11: Partial and Multivalued Functions
-
We discuss how the foldr and foldl patterns can be used for very compact implementations.
Haskell 10: Folding over Lists
-
We prove completeness of the natural deduction proof calculus for propositional logic.
Logic 9: Completeness of Natural Deduction for LP
-
We implement natural numbers, arithmetic and comparison using an inductive datatype. All code can be found in the course git repository…
Haskell 9: Natural Numbers
-
We show that the natural deduction proof calculus is sound for propositional logic, meaning that it only proves true formulas given true assumptions.
Logic 8: Soundness of Natural Deduction
-
We cover the semantic definitions for propositional logic which assign formulas truth values in a sigma-structure.
Logic 7: Semantics for Propositional Logic
-
We implement functions as sets of pairs in Haskell. All code can be found in the course git repository https://github.com/MariusFurter/MAT605-haskell-FS23
Haskell 8: Functions
-
We formally define the syntax of propositional logic and prove a unique parsing theorem for its formulas.
Logic 6: Language of Propositional Logic
-
We cover the basic definitions for relations and implement them in code. All code can be found in the course git repository…
Haskell 7: Relations
-
In this video we implement sets and associated functions.
Haskell 6: Sets
-
This video covers the formal proof system called natural deduction (without quantifiers), along with the corresponding sequent rules.
Logic 5: Natural Deduction
-
In this video we implement our own version of the type Bool, along with the functions in the standard library that act on Bool.
Haskell 5: Implementing Logical Functions
-
This videos covers the rules for proving first order logic statements. A summary of the rules can be found at…
Logic 4: Informal Proof Theory
-
I discuss how to define functions using pattern matching and guards. Then I introduce where, let and case expressions.
Haskell 4: Functions
-
We cover types, type variables, and typeclasses in Haskell. This video follows chapter 3 of "Learn you a Haskell for great good"…
Haskell 3: Types and Typeclasses
-
We discuss first order logic in an informal manner focusing on examples.
Logic 3: Naive First Order Logic
-
We start learning basic Haskell syntax. This including arithmetic operations, comparisons, basic functions, lists, list comprehension, and tuples. This video follows…
Haskell 2: Basic Operations
-
I explain how to install the GHC interpreter and integrate it with Visual Studio Code.
Haskell 1: Setup
-
I cover propositional logic in a naive manner. I explain how to build well formed formulas and assign them truth values using truth tables. I then define logical…
Logic 2: Naive Propositional Logic
-
I give an idea of what mathematical logic is about using an analogy. I then give an overview of the material will be covered in the logic portion of the course, namely…
Logic 1: Introduction
-
In this course we will cover logic, proof theory, and foundations of math with the help of the functional programming language Haskell.
Course Intro
Search for ""