<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: derdi</title><link>https://news.ycombinator.com/user?id=derdi</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 30 Apr 2026 17:55:41 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=derdi" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by derdi in "Vera: a programming language designed for machines to write"]]></title><description><![CDATA[
<p>Most Prolog code on the Web is complete garbage.</p>
]]></description><pubDate>Thu, 30 Apr 2026 08:27:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47959752</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=47959752</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47959752</guid></item><item><title><![CDATA[New comment by derdi in "Vera: a programming language designed for machines to write"]]></title><description><![CDATA[
<p>No. In this type of language, the typical division function does not check against zero. It has a <i>precondition</i> that requires the <i>caller</i> to ensure that the divisor is not zero. If the data the caller has is completely arbitrary, then yes, the caller must use an if statement or similar. If the caller knows something about its data and can be sure that the divisor is not zero, then it doesn't need to use an if statement. But it might need to convince the proof checker that it knows what it's doing.</p>
]]></description><pubDate>Thu, 30 Apr 2026 08:16:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47959687</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=47959687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47959687</guid></item><item><title><![CDATA[New comment by derdi in "Viktor Orbán concedes defeat after 'painful' election result"]]></title><description><![CDATA[
<p>I'd like that. But this system is very attractive for the strongest party, so it will be a real test of their commitment to actually representative, multi-party democracy. Also, the general system (a mix of single-member constituencies and party list seats, with more of the former than the latter) isn't a Fidesz invention, it has a long legal tradition in Hungary. So there might be a lot of resistance to a purer party-list system on those grounds too.<p>Obvious tweaks exist, of course: Even if you keep more individual constituencies than party list seats, they should use some sort of instant runoff/ranked choice/etc. system. But other first past the post countries are dragging their feet on this too, so... we'll see.</p>
]]></description><pubDate>Mon, 13 Apr 2026 12:33:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47751069</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=47751069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47751069</guid></item><item><title><![CDATA[New comment by derdi in "Viktor Orbán concedes defeat after 'painful' election result"]]></title><description><![CDATA[
<p>Also, the fact of faking a terror attack and everybody just shrugging it off as an obvious Russian false flag op. I think even Orbán understood at that point that the jig was up.</p>
]]></description><pubDate>Mon, 13 Apr 2026 07:56:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47749071</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=47749071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47749071</guid></item><item><title><![CDATA[New comment by derdi in "Viktor Orbán concedes defeat after 'painful' election result"]]></title><description><![CDATA[
<p>It's worth noting that the party vote share here was 53% for Tisza vs. 44% for the even-more-right-wing parties. The fact that this results in a two thirds majority is because the electoral system inflates the strongest party. Orbán has previously achieved two thirds majorities multiple times while winning less than 50% of the party vote. Most seats are assigned not through party lists but in single-member constituencies with first-past-the-post voting, same as in America. So it's not "convince two thirds of the people to vote for you", it's "convince a very slim plurality in two thirds of the constituencies to vote for you".</p>
]]></description><pubDate>Mon, 13 Apr 2026 07:55:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=47749059</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=47749059</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47749059</guid></item><item><title><![CDATA[New comment by derdi in "LLMs aren't world models"]]></title><description><![CDATA[
<p>Ask a kid that doesn't know how to read and write how many Bs there are in blueberry.</p>
]]></description><pubDate>Wed, 13 Aug 2025 07:27:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=44885570</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44885570</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44885570</guid></item><item><title><![CDATA[New comment by derdi in "Show HN: Bolt – A super-fast, statically-typed scripting language written in C"]]></title><description><![CDATA[
<p>Oooh, bikeshedding! To me your `import math with x as y` reads like "import <i>all</i> of math, making all of its symbols visible, just renaming some of them". That's different from the intended "from math, import only x (maybe with a renaming)".</p>
]]></description><pubDate>Mon, 11 Aug 2025 10:13:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44862607</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44862607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44862607</guid></item><item><title><![CDATA[New comment by derdi in "The Q Programming Language"]]></title><description><![CDATA[
<p>This is someone's private project for their own amusement. It's clearly not in a state where it would be "useful" to "users". Nor is it meant to be. At the moment it's meant for compiler geeks to look at.<p>Not every readme is a sales pitch for Enterprise Quality(tm) software.</p>
]]></description><pubDate>Fri, 08 Aug 2025 13:49:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=44836920</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44836920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44836920</guid></item><item><title><![CDATA[New comment by derdi in "The Math Is Haunted"]]></title><description><![CDATA[
<p>Gotcha. I've never had a problem with this usage. I guess I see the objection of "the goal is to <i>prove</i> the theorem" vs. "the (initial) goal is the theorem". It strikes me as overly pedantic, but we're talking about formal methods, so I guess pedanticism is warranted.<p>I do want to note that systems usually use terms like "current goal" or "active goal", which do imply a sense of progress. I never felt that they imply that the current goal is a brand-new thing. It's a transformed version of the previous goal, hopefully made up of simpler parts that eventually become so simple as to be trivial, which then completes the overall proof.</p>
]]></description><pubDate>Mon, 04 Aug 2025 13:39:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=44785628</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44785628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44785628</guid></item><item><title><![CDATA[New comment by derdi in "The Math Is Haunted"]]></title><description><![CDATA[
<p>Maybe you could show a simple example so the OP can get an idea if that is what they are looking for.</p>
]]></description><pubDate>Fri, 01 Aug 2025 13:15:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=44756340</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44756340</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44756340</guid></item><item><title><![CDATA[New comment by derdi in "The Math Is Haunted"]]></title><description><![CDATA[
<p>> It would be like if I were helping you get to work in the morning, and I said, "Okay, you're current [sub]goal is that you're done brushing your teeth." No. That's not a goal. That's progress toward a goal.<p>Interesting. Let's say our overall goal is to get to work showered, wearing clean clothes, and having brushed our teeth. After we showered and put on clean clothes, wouldn't you say that the remaining goal is to brush our teeth and get to work? And if we then do brush our teeth, wouldn't you say that the remaining goal is to get to work? In this scenario, if anything can be called progress, it is what's in the past (the showering etc.), not what is still to be done.</p>
]]></description><pubDate>Thu, 31 Jul 2025 18:46:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=44748795</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44748795</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44748795</guid></item><item><title><![CDATA[New comment by derdi in "The Math Is Haunted"]]></title><description><![CDATA[
<p>Nitpick, but it's a bit strange to say that the two_eq_two theorem looks like a function. It looks more like a constant, since it has no arguments. (Yes I know that constants are nullary functions.)<p>I would find the following a more convincing presentation:<p><pre><code>    theorem x_eq_x (x:nat) : x = x := by
      rfl

    theorem 2_eq_2 : 2 = 2 := by
      exact (x_eq_x 2)
</code></pre>
Here x_eq_x looks like a function, and in 2_eq_2's proof we apply it like a function.</p>
]]></description><pubDate>Thu, 31 Jul 2025 12:42:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=44745077</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44745077</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44745077</guid></item><item><title><![CDATA[New comment by derdi in "The Math Is Haunted"]]></title><description><![CDATA[
<p>Rocq used to have a "mathematical proof language". It's hard to find examples, but this shows the flavor (<a href="https://stackoverflow.com/a/40739190" rel="nofollow">https://stackoverflow.com/a/40739190</a>):<p><pre><code>    Lemma foo:
      forall b: bool, b = true -> (if b then 0 else 1) = 0.
    proof.
      let b : bool.
      per cases on b.
        suppose it is true. thus thesis.
        suppose it is false. thus thesis.
      end cases.
    end proof.
    Qed.
</code></pre>
So the idea was to make proofs read more like "manual" proofs as you would find them in math papers. Apparently nobody used this, so it was removed.<p>Isabelle's Isar proof language is similar, and AFAIK the standard way of proving in Isabelle (example from <a href="https://courses.grainger.illinois.edu/cs576/sp2015/doc/isar-overview.pdf" rel="nofollow">https://courses.grainger.illinois.edu/cs576/sp2015/doc/isar-...</a>):<p><pre><code>    lemma "map f xs = map f ys ==> length xs = length ys"
    proof (induct ys arbitrary: xs)
      case Nil thus ?case by simp
    next
      case (Cons y ys) note Asm = Cons
      show ?case
      proof (cases xs)
        case Nil
        hence False using Asm(2) by simp
        thus ?thesis ..
      next
        case (Cons x xs’)
        with Asm(2) have "map f xs’ = map f ys" by simp
        from Asm(1)[OF this] ‘xs = x#xs’‘ show ?thesis by simp
      qed
    qed
</code></pre>
You spell out the structure and intermediate results you want, and the "by ..." blocks allow you to specify concrete tactics for parts where the detains don't matter and the tactic does what you want. In this proof, "simp" (a kind of simplify/reflexivity tactic) is enough for all the intermediate steps.<p>I don't know if there is anything like this for Lean, but maybe this provides some keywords for a web search. Or inspiration for a post in some Lean forum.</p>
]]></description><pubDate>Thu, 31 Jul 2025 12:37:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=44745026</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44745026</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44745026</guid></item><item><title><![CDATA[New comment by derdi in "The Math Is Haunted"]]></title><description><![CDATA[
<p>Yes, there is a prelude that defines natural numbers and an addition function on them. As the post notes, the reflexivity tactic "unfolds" the addition, meaning that it applies the addition function to the constants it is given, to arrive at a constant. This is not specific to addition, it unfolds other function definitions too. So addition doesn't have to come first, you are right that reflexivity is more fundamental.</p>
]]></description><pubDate>Thu, 31 Jul 2025 12:18:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44744872</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44744872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44744872</guid></item><item><title><![CDATA[New comment by derdi in "Parity of Zero"]]></title><description><![CDATA[
<p>I can, yes. Laypeople might not be able to, or be aware of the various (equivalent) accepted definitions.<p>And yes, this means that many laypeople are not effective at doing mathematics. Does this surprise you? If yes, then the linked article and Mastodon thread may be interesting to you. Which is why I submitted them.</p>
]]></description><pubDate>Wed, 30 Jul 2025 17:35:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=44737152</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44737152</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44737152</guid></item><item><title><![CDATA[New comment by derdi in "Parity of Zero"]]></title><description><![CDATA[
<p>OK, if you're going to be prescriptive, I'm going to be prescriptive too.<p><a href="https://en.wiktionary.org/wiki/contentious" rel="nofollow">https://en.wiktionary.org/wiki/contentious</a>
"1. Marked by heated arguments or controversy."
There are heated arguments about this (among laypeople). The people arguing heatedly happen to be wrong, but the dictionary doesn't say that the heated arguments must have merit, only that they happen.<p>BTW, your "There is literally no credible argument why 0 would be considered odd." suggests that you didn't read the linked Wikipedia page and didn't look at the results of the Mastodon poll. Take a look what actual laypeople self-report about their position on this issue.</p>
]]></description><pubDate>Wed, 30 Jul 2025 13:57:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=44734291</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44734291</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44734291</guid></item><item><title><![CDATA[New comment by derdi in "Show HN: The Aria Programming Language"]]></title><description><![CDATA[
<p>The current implementation looks like a compiler to a stack-based bytecode with a straightforward textbook interpreter. For example, here is the interpretation of the Add bytecode: <a href="https://github.com/egranata/aria/blob/master/vm-lib/src/vm.rs#L500-L521">https://github.com/egranata/aria/blob/master/vm-lib/src/vm.r...</a><p>So to a very rough first approximation, performance characteristics should be in CPython's ballpark.</p>
]]></description><pubDate>Wed, 30 Jul 2025 11:45:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=44732983</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44732983</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44732983</guid></item><item><title><![CDATA[New comment by derdi in "Parity of Zero"]]></title><description><![CDATA[
<p>Fair enough. "Contentious among laypeople"?</p>
]]></description><pubDate>Wed, 30 Jul 2025 09:52:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=44732444</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44732444</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44732444</guid></item><item><title><![CDATA[New comment by derdi in "Parity of Zero"]]></title><description><![CDATA[
<p>Found via <a href="https://mathstodon.xyz/@ColinTheMathmo/114937443323984872" rel="nofollow">https://mathstodon.xyz/@ColinTheMathmo/114937443323984872</a>. I didn't know it was a contentious topic whether zero was even or odd.</p>
]]></description><pubDate>Wed, 30 Jul 2025 08:58:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=44732147</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44732147</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44732147</guid></item><item><title><![CDATA[Parity of Zero]]></title><description><![CDATA[
<p>Article URL: <a href="https://en.wikipedia.org/wiki/Parity_of_zero">https://en.wikipedia.org/wiki/Parity_of_zero</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44732146">https://news.ycombinator.com/item?id=44732146</a></p>
<p>Points: 1</p>
<p># Comments: 7</p>
]]></description><pubDate>Wed, 30 Jul 2025 08:58:37 +0000</pubDate><link>https://en.wikipedia.org/wiki/Parity_of_zero</link><dc:creator>derdi</dc:creator><comments>https://news.ycombinator.com/item?id=44732146</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44732146</guid></item></channel></rss>