Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    P

    Philip Zucker

    philipzucker.com · Personal blog · on HN since 2017

    Philip Zucker writes on egraphs, SMT solvers, theorem proving, category theory and program verification, often with code examples.

    Visit blogRSSHN submissions
    MathLanguages & CompilersProgramming
    What HN says

    HN links it for its work on egraphs, Datalog and automated proving, and the author himself describes it as covering these subjects.

    Stats for nerds
    38HN people shared it
    120linked in comments
    1.8Kstory points
    Jan 2026last shared
    2018people per year2026

    Top posts on HN

    1. 1
      The C bounded model checker: criminally underused
      1 person · 209 points · first shared 2024 · 125 comments on HN
    2. 2
      SQL, Homomorphisms and Constraint Satisfaction Problems
      1 person · 153 points · first shared 2024 · 19 comments on HN
    3. 3
      Compiling with Constraints
      1 person · 126 points · first shared 2024 · 36 comments on HN
    4. 4
      Computational Category Theory in Python III: Monoids, Groups, and Preorders
      2 people · 123 points · first shared 2020 · 56 comments on HN
    5. 5
      Linear Algebra of Types (2019)
      2 people · 117 points · first shared 2019 · 8 comments on HN
    6. 6
      Translating My Z3 Tutorial to Coq
      1 person · 108 points · first shared 2021 · 18 comments on HN
    7. 7
      Why I think Haskell is the best general purpose language as of June 22 2019
      1 person · 101 points · first shared 2019 · 99 comments on HN
    8. 8
      Don't implement unification by recursion
      1 person · 83 points · first shared 2024 · 62 comments on HN
    9. 9
      Symbolic Execution by Overloading __bool__
      1 person · 81 points · first shared 2024 · 10 comments on HN
    10. 10
      Knuckledragger, a Semi-Automated Python Proof Assistant
      1 person · 71 points · first shared 2024 · 24 comments on HN

    What HN people wrote when they linked it

    • adsharmaJul 2021

      Author seems to be using https://github.com/ailidani/paxi for actual implementation and proof.

      I'm more of a python/rust guy. There have been some attempts to make model checkers in rust: https://github.com/stateright/stateright

      The issue is that rust is a very large language and it's hard to get it right.

      I have a python implementation of raft over here:

      https://github.com/adsharma/raft/tree/master/raft/states

      That's small enough to be self contained and perhaps run through a model checker some day and transpiled to many statically typed languages.

      The issue with TLA+ proofs such as:

      https://github.com/fpaxos/raft.tla

      is that it's hard to tell if a particular C++ or Rust implementation conforms to the spec.

      So how do we check and transpile?

      * https://www.philipzucker.com/Modelling_TLA_in_z3py/
      * https://github.com/adsharma/py2many

    • c-cubeOct 2024

      It's not really clear that functional style is easier/closer to proofs, tbh: https://hillelwayne.com/post/theorem-prover-showdown/ :-).

      There's absolutely a constructivist form of unification, the description of a particular unification algorithm is typically a rewrite system (OP has one here: https://www.philipzucker.com/assets/traat/unify_rules.png) which qualifies as constructive imho (it builds an explicit solution, ie a substitution). But the imperative implementation of such a rewrite system can be readable too (especially if you still have pattern matching as in, say, Rust or OCaml).

      I don't think there's any link to be had with the Curry Howard correspondence here. No types, no lambda calculus, nothing of the sort.

    • JtsummersNov 2021

      https://www.philipzucker.com/https:/www.philipzucker.com/nand2tetris-chc/

      Not sure what's happening, but that's the present link on HN. It should be:

      https://www.philipzucker.com/nand2tetris-chc/

      EDIT: Canonical link issue:

      <link rel="canonical" href="https:/www.philipzucker.com/nand2tetris-chc/" />
      ^
      There's a typo there, causing HN to rewrite it as the first link.

    • carapaceFeb 2021

      The only major problem (IMO) is that Lean and the others (Coq, Hol, Isabelle, Agda, Idris, etc...) are all pretty hard to read.

      Check out "Automated Propositional Sequent Proofs in Your Browser with Tau Prolog" for a promising approach: https://www.philipzucker.com/javascript-automated-proving/ It's rendering LaTeX proof trees.

    • superlopuhJul 2022

      Yes, at least these egg-based projects are usign this idea, but it looks like it's just one of the options:

      https://souffle-lang.github.io/docs.html
      http://www.philipzucker.com/souffle-egg4/
      https://arxiv.org/pdf/2004.03082.pdf

    • ishmandooOct 2018

      Love it!

      I implemented something similar in Mathematica:
      http://blog.benwiener.com/programming/art/2017/08/24/lewitt.html

      My friend implemented it in Elm:
      http://www.philipzucker.com/elm-eikonal-sol-lewitt/

    Related

    Conal Elliottconal.net156 people

    Can functional programming be liberated from the von Neumann paradigm? (2010)

    Conal Elliott
    Personal · last shared 2026
    Bertrand Meyerbertrandmeyer.com47 people

    Introduction to the Theory of Programming Languages (1991)

    Bertrand Meyer
    Personal · last shared 2026
    Joel David Hamkinsjdh.hamkins.org50 people

    Math for eight-year-olds: graph theory for kids

    Joel David Hamkins
    Personal · last shared 2026
    Jeremy Kunjeremykun.com194 people

    A Programmer's Introduction to Mathematics

    Jeremy Kun
    Personal · last shared 2026
    Hypothesis Bloghypothesis.works48 people

    Calculating the mean of a list of numbers (2016)

    Hypothesis Blog
    Company · last shared 2026
    John Regehrblog.regehr.org401 people

    Teaching C

    John Regehr
    Personal · last shared 2026
    Newcastle University Blogsblogs.ncl.ac.uk17 people

    An Algebra of Graphs

    Newcastle University Blogs
    Publication · last shared 2024
    Matt Zuckermzucker.github.io27 people

    Page Dewarping

    Matt Zucker
    Personal · last shared 2026