"Why don't you use dependent types?"

Choose your battles: fans cheer automation while purists push back

TLDR: The author defends skipping “dependent types” and proof objects, saying Isabelle succeeds with a small trusted core and lots of automation. Comments split between pragmatists cheering real-world wins, fans of stronger types wanting richer guarantees, and a middle camp saying use heavy methods only where they pay off.

A legend of math software drops a memoir-meets-manifesto: why not use dependent types? He says saving every tiny "proof receipt" (proof objects) is a space-wasting flex, and reminds everyone he did live the dependent-type life in the AUTOMATH and Martin-Löf days. Isabelle, his tool, chose a small trusted core and heavy automation—the vibe is: less ceremony, more results.

Cue the type wars. One camp, led by fluffypony, is hooting “choose your battles,” pointing out Isabelle/HOL (a popular higher-order logic system) slammed through real math—schemes! group theory!—without fancy types or saved proofs. The other camp, like lacker, wants types that can say “this is a 10×5 matrix of floats” and catch mistakes before code runs. pron shrugs that it’s all aesthetics unless one side gets overwhelming practical wins, while anonzzzies plays referee: use the heavy tools only where they actually help.

Fans pile on the restaurant meme from the article—AUTOMATH as a buffet—and joke that everyone keeps ordering the HOL burger. Meanwhile, griffzhowl drops receipts to the author’s Alexandria project, flexing formalized quantum computing, and someone links the Paulson–Lamport typing paper for extra spice. The mood: Lean loyalists vs Isabelle pragmatists, meme chefs vs math chefs, and everyone arguing whether you need gourmet types or just a good kitchen and sharp knives.

Key Points

  • Isabelle avoids proof objects and dependent types, relying instead on the LCF architecture’s proof kernel to ensure soundness via implementation-level type checking.
  • AUTOMATH influenced Isabelle’s generic design but, despite using dependent types, functioned as a logical framework rather than embodying Curry–Howard.
  • Practical access to AUTOMATH was limited by infrastructure and platform constraints (ARPAnet access, ALGOL 60, Electrologica X8/Burroughs 6700).
  • De Bruijn opposed powerful 1990s type theories and set theory, while Isabelle/HOL later became dominant as higher-order logic gained preference.
  • The author studied Martin-Löf type theory at Chalmers, valuing its program synthesis approach, and examined AUTOMATH’s formal properties via de Bruijn’s monograph.

Hottest takes

"choose your battles" … never hit the mythical wall — fluffypony
"I wish Python had… 'a 10 x 5 matrix of float32s' as a type" — lacker
"use… dependently typed languages / tla+ where it makes sense, not for everything" — anonzzzies
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.