Seong-Heon Jung (정성헌)

38 Followers
47 Following
60 Posts
Pronounshe/him
PronunciationSung (sing/sang/*sung) Hun (*hon*ey)

The shrubbery grouping rules are very subtle. Namely, the relationship between newlines, indentation, separators, and opener-closer pairs get really crazy. (1,\n 2, 3), (\n1, 2, 3) (1:\n 2,\n 3) work, but (1,\n2,3) does not.

The documentation does not help too much either here because unlike the tokenization guide, the guide about grouping is mostly informal prose.

I'm a big fan of Rhombus' "macros without parentheses", and would love to implement it for my language. Unfortunately, shrubbery notation is just too damn hard to parse correctly, even with a fair number of simplifications. I would have really appreciated some pointers from the paper and documentation about some high-level strategies. Yes, I could technically just use #lang shrubbery, but I'd like to use it outside of racket too
I wish I could get the QoL improvements of mathlib like `lemma` or `ring` without also having to download and compile a significant subset of all of the mechanized mathematics that exist in the world.

Pleased to live in a place where this is true (enough):

Eight states received “A” grades for LGBTQ+ safety based on their comprehensive pro-equality laws and low rates of hate crimes against LGBTQ+ people. **Only Rhode Island nabbed an A+ mark.**
https://www.safehome.org/data-lgbtq-state-safety-rankings/

2025 LGBTQ+ State Safety Report Cards | SafeHome.org

Eight states got A's for LGBTQ+ safety, with Rhode Island topping the list. Florida ranked lowest, with a failing grade due to discriminatory laws.

SafeHome.org
I love that Lean supports Windows so well. I run windows on my personal laptop, and it's great to be able to program without WSL. WSL is good, but nowhere near as smooth as native. I compiled a kernel from souce for my WSL to use some additional modules not included with the default WSL kernel, and that has led to WSL shutting down my laptop without warning.

Another cool Lean exercise: a verified implementation of the Boyer-Moore majority voting algorithm.
It's an O(n) time O(1) space majority element detection algorithm.

The 1981 verification of took the authors 20 hours. In contrast, I spent no more than 4 hours (including building the CLI tool) thanks to proof automation techniques like grind and omega.

https://github.com/Forthoney/mjrty

GitHub - Forthoney/mjrty: Verified Boyer-Moore majority algorithm

Verified Boyer-Moore majority algorithm. Contribute to Forthoney/mjrty development by creating an account on GitHub.

GitHub

I wrote my first non-trivial Lean program with proof of correctness: the Karatsuba algorithm for "fast" arbitrary precision multiplication.

I implemented the algorithm in Lean and proved it was equivalent to vanilla multiplication.

I'm wondering how difficult it would be to also reason about the algorithm's asymptotic runtime. I already wrote a reasonably involved termination proof, so maybe I can reuse some of that machinery

https://github.com/Forthoney/karatsuba

GitHub - Forthoney/karatsuba

Contribute to Forthoney/karatsuba development by creating an account on GitHub.

GitHub
MikTeX has been an so so much better than TeX Live. It downloads packages lazily, so my I don't have 200 packages I won't ever need floating around in the aether
I just found out that my favorite song from Civ 6 is actually O Canada. Thanks Wilfrid Laurier
Feels sublime to be back on Fedora! I tried to emulate the experience on my department-issued desktop running Ubuntu, but I only managed to de-ubuntify so much before things started breaking