Software FoundationsBenjamin C. Pierce

Software Foundations

by Benjamin C. Pierce · first published 2010

77mentions
58recommended by
60HN commenters
2011–2026first – last mentioned

97% recommend3% neutral

Coq-based course on logical foundations, programming language theory and verification (free online).

Affiliate links. As an Amazon Associate I earn from qualifying purchases.

Mentions per year

120 2007: 0 mentions2008: 0 mentions2009: 0 mentions2010: 0 mentions2011: 1 mention2012: 0 mentions2013: 2 mentions2014: 0 mentions2015: 1 mention2016: 0 mentions2017: 5 mentions2018: 4 mentions2019: 9 mentions2020: 7 mentions2021: 7 mentions2022: 12 mentions2023: 9 mentions2024: 4 mentions2025: 2 mentions2026: 3 mentions200720172026

What Hacker News says

  • xvilka · Apr 6, 2020 · Recommends

    The same can be done also with Coq[1], it is easy to learn[2], actively developed[3], and better documented[4]. You can also visit their discussion board[5]. Regarding the usual Lean vs Coq "war" and so-called "setoid hell" you can read a lengthy discussion on their GitHub[6]. [1] http://coq.inria.fr/ [2] https://learnxinyminutes.com/docs/coq/ [3] https://github.com/coq/coq [4] https://softwar

    on “Doing a math assignment with the Lean theorem prover” ↗
  • kryptiskt · Nov 26, 2019 · Recommends

    Software Foundations (https://softwarefoundations.cis.upenn.edu) is pretty informal and understandable, what it isn't is short. But it's a very useful resource. The best general introduction is probably still Types and Programming Languages: (https://www.cis.upenn.edu/~bcpierce/tapl/index.html) It's a great book, but it doesn't get to dependent types.

    on “Learn Coq in Y Minutes” ↗
  • nextos · Jan 17, 2020 · Recommends

    The literature on formal methods has evolved a lot. In particular there is some great broad introductory material using either Coq or Isabelle: * https://softwarefoundations.cis.upenn.edu/ * http://www.concrete-semantics.org/ * http://adam.chlipala.net/frap/ Even the Little series covers types and proofs now: * https://mitpress.mit.edu/books/little-typer * https://mitpress.mit.edu/books/litt

    on “Concrete Semantics” ↗
  • mcguire · Dec 30, 2017 · Recommends

    Two schools: * Coq/dependent types. Check out Software Foundations by Benjamin Pierce, et. al. Everything's online. Also see Idris, which has a good book from Manning. * SMT-solver-based verification of existing languages. See SPARK/Ada (there's a good book but I can't…

    on “Ask HN: What was the best CS paper you read in 2017?” ↗
  • ojnabieoot · Oct 27, 2020 · Recommends

    I would strongly recommend looking at “standard” dependently-typed theories and languages (or even proof assistants without dependent types), instead of trying to plunge into homotopy theory. Learning how dependent types work will be much more illuminating than trying to catch up on the algebraic topology. While the link between topology and formal logic is certainly interesting, I think you’ll be

    on “Homotopy Type Theory (2012) [pdf]” ↗
  • benrbray · Jun 28, 2021 · Recommends

    Another good reference, that also introduces some PLT notation, is Loh 2001, "Introduction to the Dependently-Typed Lambda Calculus" [1], as well as the textbook by Pierce [2], which has a formally-verified spiritual successor [3]. [1] http://www.cs.ru.nl/~wouters/Publications/Tutorial.pdf [2] https://www.cis.upenn.edu/~bcpierce/tapl/ [3] https://softwarefoundations.cis.upenn.edu/plf-current/inde

    on “Lambda Calculus Examples (2009) [pdf]” ↗
  • reycharles · Sep 29, 2013 · Recommends

    If you want to get started with Coq there are two good resources. One is Software Foundations[sf] by Benjamin Pierce. There's also Certified Programming with Dependent Types[cpdt] by Adam Chlipala. I would say [cpdt] is more advanced than [sf], so I think it's best to start with [sf] and then…

    on “Formal Methods of Software Design: an online course by Eric Hehner” ↗
  • neilparikh · Dec 11, 2017 · Recommends

    You might already know about this, but if you're looking to learn Coq, I would recommend the Software Foundations series (https://softwarefoundations.cis.upenn.edu/).

    on “Finding bugs in Haskell code by proving it” ↗
  • meneame2 · Dec 31, 2017 · Recommends

    Three extra classics: * https://books.google.es/books?id=YseqCAAAQBAJ * http://www.concrete-semantics.org/ * https://softwarefoundations.cis.upenn.edu/

    on “Coming Soon: Machine-Checked Proofs in Everyday Development” ↗
  • kachnuv_ocasek · Oct 1, 2018 · Recommends

    Software Foundations [1]. Hands down one of the top programming textbooks to date. [1] https://softwarefoundations.cis.upenn.edu/

    on “Ask HN: What are the best textbooks in your field of expertise?” ↗
  • tom_mellior · Oct 31, 2019 · Recommends

    Start with the one with the best documentation. It's hard to beat Software Foundations: https://softwarefoundations.cis.upenn.edu/, which happens to be for Coq. If you search the web for "Software Foundations in X", you will find partial ports of some of the initial chapters to pretty much any other proof assistant. Maybe nowadays they are full, complete ones that would allow you to use Isabelle

    on “Can Computers Prove Theorems?” ↗
  • nextos · Dec 31, 2019 · Recommends

    Try http://adam.chlipala.net/frap/ It's a really great book as an introduction to semantics and proofs. A great alternative is http://www.concrete-semantics.org/. Concrete Semantics uses Isabelle, which is based on ZFC set theory. Whereas FRAP uses Coq, that employs constructive types. https://softwarefoundations.cis.upenn.edu is also fantastic, covers some of the same topics, and proceeds a b

    on “Formal Reasoning About Programs (2017) [pdf]” ↗
  • Geminidog · Dec 28, 2020 · Recommends

    There's many topics in this area. Ones that are well known in industry are algorithmic complexity theory and type theory. Ones that are less well known include the two resources below. http://www4.di.uminho.pt/~jno/ps/pdbc.pdf https://softwarefoundations.cis.upenn.edu I suggest you get use to ML style languages before diving into those two resources (Haskell is a good choice) as it's not easy t

    on “Systems design explains the world: volume 1” ↗
  • benrbray · Apr 21, 2021 · Recommends

    Since there are no other comments here, I will post this link to the Software Foundations book [1] by Benjamin Pierce et al., which may be of interest to anyone who wants to learn Coq. > The Software Foundations series is a broad introduction to the mathematical underpinnings of reliable software. > The principal novelty of the series is that every detail is one hundred percent formalized and ma

    on “A library of formalised undecidable problems in Coq” ↗
  • logicchains · Jul 4, 2021 · Recommends

    There's an excellent online book that introduces Coq and how to use it for verification of programs: https://softwarefoundations.cis.upenn.edu/. There's also a more advanced book, http://adam.chlipala.net/cpdt/, that goes into more detail. In comparison, Lean has little teaching material for formal verification of programs.

    on “The Dawn of Formalized Mathematics” ↗

Keyboard shortcuts

/
Focus search
j / k
Next / previous book
Enter
Open focused book
Esc
Close / go back
g h
Go to Home
g t
Go to Top all-time
g m
Go to Most recommended
g r
Go to Rising
g f
Go to For You
?
Show this help