# plfa/plfa.github.io

An introduction to programming language theory in Agda

Repository: https://github.com/plfa/plfa.github.io
Canonical: https://ross.abutalabs.com/products/plfagithubio
Homepage: https://plfa.github.io
Language: Agda
License: CC-BY-4.0
License Family: other
Topics: book, proof-assistant, programming-languages
Last push: 2026-08-24T19:53:04+00:00

## Health v2 (maintenance only)
Score: 67/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 8, longevity 100
- inputs: {"age_days": 3463, "days_push": 9, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1513, forks 353 (observed 2026-08-28T04:04:56.228716+00:00)

## What it is
Programming Language Foundations in Agda (PLFA) is a free online textbook teaching programming language theory using the Agda proof assistant. It covers logical foundations, operational and denotational semantics, and type systems, with all code formalized and verified in Agda.

## Use cases
- learn programming language theory with a proof assistant
- study lambda calculus semantics formally
- learn Agda through a structured textbook
- formally verify type soundness and progress/preservation
- understand bidirectional type inference and de Bruijn representations
- teach a course on formal semantics of programming languages

## When to choose
- you want an interactive, executable introduction to PL theory in Agda
- you prefer learning semantics by proving theorems rather than reading prose alone
- you need a free, open (CC-BY-4.0) textbook for self-study or coursework

## When to avoid
- you want a tool or library rather than a book
- you need Coq, Lean, or Isabelle instead of Agda
- you are not prepared to install specific pinned versions of GHC, Cabal, and Agda to run the exercises

## Facets
- artifact type: learning-resource
- maturity: active
- function: documentation, interpreter, type-system
- domain: programming-languages, tutorials, education, compilers
- platform: cross-platform, cli
- tags: agda, proof-assistant, programming-language-theory, type-theory, denotational-semantics, lambda-calculus, interactive-textbook, formal-methods

## Member repositories
- plfa/plfa.github.io (main) score 67

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:56.228716+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:32:16.902204+00:00, confidence not recorded.
  - readme: https://github.com/plfa/plfa.github.io (fetched 2026-08-28T04:04:56.228716+00:00, sha 46a1e5191a49)
  - homepage: https://plfa.github.io (fetched 2026-08-29T11:35:59.379280+00:00, sha d2896e7d6094)
- Data as of 2026-08-30T08:39:29.467469+00:00.
