Skip to content

Latest commit

 

History

History
51 lines (35 loc) · 2.75 KB

README.md

File metadata and controls

51 lines (35 loc) · 2.75 KB

Proofs and Programs 🚧 🏗️Under Construction 👷 🚧

This repository houses course materials for learning Logic, lambda calculus, and Lean. Including slides, lecture notes, and exercises.

Course Overview

Logic 🏛️

  • Propositional Logic: Basic grammar of logical connectives and natural deduction.
  • First-Order Logic: Introduction to quantifiers, predicates, and more natural deductions.

λ-Calculus 🧮

  • Un-typed Lambda Calculus: Write programs in Alonso Church's lambda calculus.
  • Simply Typed Lambda Calculus: Adding typed structure to the lambda calculus. Write typing derivations to ensure programs are well-typed.
  • Dependent Type Theory: Learn how simple type theory is extended to allow for a much more expressive language.

Lean 👨‍💻

  • Lean Theorem Prover: Instructions on how to get started with Lean, a proof assistant.
  • Interactive Proofs: Writing and verifying proofs using Lean's type theory.

Getting Started

  1. Clone the Repository:

    You can make a local copy of the repository by cloning it:

    git clone https://github.com/SyntakticSugar/proofgrams.git
    cd proofgrams

    Or simply downloading the repository.

  2. Course Materials 📚 (Incomplete drafts)

    • Lecture Slides: These are skeletal slides, to be filled during class.
    • Lecture Notes: Detailed notes on logic, lambda calculus, and Lean.
    • Tutorials: Practice problems to test your understanding.
    • Projects: Larger assignments to apply your knowledge.
  3. Getting Started with Lean:

To get a feel for how working in Lean, both of the introductory games Natural Number Game and A Lean Introduction to Logic are particularly relevant to this course. You can follow this Quickstart Guide to begin working with Lean on your personal computer.

  1. Recommended Resources: 🔗

    My course materials were developed while studying these excellent resources: