Ramkumar Ramachandra

artagnon.com · Personal blog · on HN since 2010

Ramkumar Ramachandra writes about compilers, LLVM internals, programming language history, proof assistants, and open source.

What HN saysHN commenters use his Lean versus Coq post as a starting point for talking about proof assistants and learning advanced math.
16HN people shared it
4linked it in comments
32stories submitted
262story points
3 months agolast shared
2010people per year2026

Most-shared posts

  1. 1
    Inside a register allocator
    2 people · 33 points · first shared 2016 · 1 comments on HN
  2. 2
    A tour of the LLVM back end
    2 people · 5 points · first shared 2024 · discussion on HN
  3. 3
    ReMarkable: The Perfect Tablet for Academics
    2 people · 5 points · first shared 2019 · discussion on HN
  4. 4
    An introduction to auto-vectorization with LLVM
    2 people · 3 points · first shared 2024 · discussion on HN
  5. 5
    Lean versus Coq: The Cultural Chasm
    2 people · 3 points · first shared 2020 · discussion on HN
  6. 6
    An opinionated history of programming languages
    1 people · 104 points · first shared 2020 · 133 comments on HN
  7. 7
    Low-hanging fruit
    1 people · 24 points · first shared 2024 · 21 comments on HN
  8. 8
    Modern Thoughts on Open Source
    1 people · 22 points · first shared 2010 · 9 comments on HN
  9. 9
    An Opinionated Comparison of Cities
    1 people · 12 points · first shared 2024 · 6 comments on HN
  10. 10
    Is Open Source really Sustainable?
    1 people · 10 points · first shared 2010 · 13 comments on HN
  11. 11
    The Capitalist Wet Dream
    1 people · 6 points · first shared 2025 · 1 comments on HN
  12. 12
    Incrementally updating the Dominator
    1 people · 4 points · first shared 2016 · discussion on HN
  13. 13
    Deficiencies in LLVM's LoopVectorize
    1 people · 4 points · first shared 2024 · discussion on HN
  14. 14
  15. 15
    The Git Sequencer
    1 people · 4 points · first shared 2012 · discussion on HN

What HN people wrote when they linked it

artagnon · 2020-10-26
I've self-taught myself undergraduate-level Mathematics, and am currently enrolled in an advanced Masters program specialized in higher category theory at Université de Paris. Here are some thoughts: First, the amount I learnt on a day-to-day basis from self-studying in my free time pales in comparison to the amount I learnt from a structured course ending with an exam, in which you have to commit to studying 2~4 hours of math every single day. Second, classroom lectures mainly act as a structured table-of-contents for working through various textbooks. The problem sheets they distribute in the tutorials are very helpful, as is the discussion of problems that some students might have got stuck in. Graduate-level math textbooks are fantastic, and the authors have poured 10+ years of their lives writing them. No online course with cute interactive video can substitute them. Having said that, there are some video lectures that can act as good motivation for studying a subject. For instance, Wildberger's lectures on algebraic topology (find them on YouTube) are a great starting point for the subject. You first have to decide on what you want to learn, by looking through various fields, and narrow your scope. Mathematics is a huge discipline, and you have to decide what you like, and work through the prerequisites in a disciplined manner. I cannot emphasize the importance of working through exercises enough. All mathematics textbooks have exercises at the end of each…
xvilka · 2026-02-21
Lean is a great idea, especially the 4th version, a huge level up from the 3rd one, but its core still deficient[1] in some particular scenarious (see an interesting discussion[2] in the Rock (formerly Coq) issue tracker). Not sure if it might hinder the automation with the AI. [1] https://artagnon.com/logic/leancoq [2] https://github.com/rocq-prover/rocq/issues/10871
sadfev · 2021-08-11
I am still very new to proof theory. So please take this with a mountain of salt. At the core all these proof assistants, is a dependent total functional programming language. Total means all functions must be obviously be terminating. Dependent means types can dependent on values or more generally you can have quantifiers (sigma and pi). Both Coq and Lean have variants of a dependent type theory called “Calculus of Inductive Constructions”. Coq and Lean have tactics which can be thought of an embedded “proof language”. It’s an useful fiction because underneath it is just functions and inductive definitions. Agda and Idris doesn’t have tactics, so the proofs have to be done through computation (by defining and apply functions and data types) Lean and Coq differ in how they encode mathematical objects. Lean makes it much easier to make use of classical axioms. (Defining axioms is easy in both Lean and Coq) From a more practical POV, Coq has the best documentation, books and development tools. Lean has the WORST development tools of all 4. However has extensive libraries for mathematics. ( It is very painful to use ) Agda and Idris are about the same (set up is a pain otherwise about as good as Haskell development) Even though Idris is marketed for “practical programming” it doesn’t have partial functions!! I am not sure if Agda supports partial functions. A more thorough comparison can be found here : https://artagnon.com/articles/leancoq
newusertoday · 2024-01-24

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close