Hegel, a universal property-based testing protocol and family of PBT libraries
74 points
5 hours ago
| 10 comments
| hegel.dev
| HN
aw1621107
5 hours ago
[-]
A bit of an intro/announcement blog post for Hegel ("Hypothesis, Antithesis, synthesis", [0]) was submitted here ~2 weeks ago [1] and got a fair bit of discussion (106 comments).

[0]: https://antithesis.com/blog/2026/hegel/

[1]: https://news.ycombinator.com/item?id=47504094

reply
kiernanmcgowan
46 minutes ago
[-]
Hypothesis: customer says something is bugged

Antithesis: the tests pass with 100% coverage

Synthesis: the bug is a feature

reply
tybug
4 hours ago
[-]
I didn't expect to see Hegel when opening up HN today! Feel free to ask any questions about it. We released hegel-go earlier this week, and plan to release hegel-cpp sometime next week, so look forward to that :)
reply
antoinebalaine
1 hour ago
[-]
How exciting! I wrote my own pbt lib for zig (https://github.com/AntoineBalaine/zlowcheck) and it made me sad I couldn't get it nearly close to hypothesis. Looking forward to see this grow! Any hope for ffi through the c abi?
reply
samth
4 hours ago
[-]
Is the protocol documented so that other people can build language front-ends?
reply
tybug
4 hours ago
[-]
Yes! I just wrote up documentation for the protocol earlier this week: https://hegel.dev/reference/protocol.

In reality, we hope to provide more guidance than this to people who want to write their own language frontend. This protocol reference doesn't talk about the realities of [hegel-core](https://github.com/hegeldev/hegel-core) and how to invoke it, for example.

We intend to write a "How to write your own Hegel library" how-to guide. You can subscribe to this issue to get notified when we write that: https://github.com/hegeldev/website/issues/3.

If you're eager, pointing your favorite LLM at https://hegel.dev/reference/protocol + https://github.com/hegeldev/hegel-rust and asking it to write you one for your language of choice should be enough to get you started!

reply
utdemir
2 hours ago
[-]
PSA: On the surface it looks great - but it's something that spawns a Python server (with uv - I think) and does communicate with it during tests. I don't think it's complexity we need to take on on our unit tests.

A saner approach would be to start with a FFI-friendly language and create bindings. I don't think just being able to use an already written framework in Python is worth the trade-off.

reply
aw1621107
2 hours ago
[-]
> A saner approach would be to start with a FFI-friendly language and create bindings. I don't think just being able to use an already written framework in Python is worth the trade-off.

For what it's worth the devs say their "current long-term plan is to implement a second Hegel server in Rust" [0], so the current state of affairs is probably a compromise between getting something usable for end users out and something more "sane", as you put it.

[0]: https://antithesis.com/blog/2026/hegel/#what%E2%80%99s-next

reply
triplechill
4 hours ago
[-]
Awesome! I've been waiting for hegel-go and can't wait to take it for a spin
reply
delis-thumbs-7e
4 hours ago
[-]
I’m studying currently Phenomenology of Geist. No code is so gard to read as it.
reply
dugidugout
54 minutes ago
[-]
Blah I need to get around to this!

I often gesture towards this phenomenology when religious folk casually attempt to claim "spirit" as some form of belief they hold over me. I honestly don't know if I've developed the position well, it is almost entirely through the lens of continental philosophy absorbing Hegel, but I use it to illustrate that my concept of spirit, as an atheist, may not be a different phenomenological occurrence than that of a religious framing and even shares the quality of a rich historical lineage I can draw from. I could just as easily retreat into untranslated German that sounds poetic or prophetic to the uninitiated, but that would be doing exactly what I'm asking them not to do, leaning on a vocabulary the other person can't engage with without first conceding the ground it's built on. This seems to effectively persuade them to adjust their vocabulary to a register I can actually engage with without needing to hedge for the axiomatic differences we have.

This is a comfortable mode of engagement and it is one I can share with religious folk, but I do find they often refuse this register and I will admit I can't always articulate why I find their refusal frustrating either.

reply
mykowebhn
3 hours ago
[-]
Did you start with the Preface, or are you going to read it at the end?

(I strongly recommend the latter.)

reply
efficax
4 hours ago
[-]
Just wait until you get into the Science of Logic
reply
sigbottle
4 hours ago
[-]
I'm starting with the Science of Logic!

I want to cry...

reply
mykowebhn
3 hours ago
[-]
The first part of his Encyclopedia will help a lot, and might be better to read first before diving into SoL.
reply
mykowebhn
5 hours ago
[-]
Oh god, as someone who studies and admires Hegel, please change the name from Hegel.
reply
sigbottle
4 hours ago
[-]
Yo what has been the coolest thing about Hegel's philosophy you learned?
reply
mykowebhn
4 hours ago
[-]
(I can really only do your question a modicum of justice by answering metaphorically.) That Anglo-American analytic philosophy, which has dominated much of 20th century Western philosophy and Western thought, was doomed from the start. It treated ontological Being as fixed, as beings nailed to a wall, lifeless and immobile. Hegelian philosophy, more than anything, is about movement.
reply
amoe_
1 hour ago
[-]
Completely agree. It's absolutely awful having software projects squatting on the names of great philosophers and artists. I appreciate that perhaps the author wanted to show their appreciation, but there are plenty of other equally communicative options.
reply
aerhardt
4 hours ago
[-]
Why? It’s perfectly coherent with the group of libraries and what they do.
reply
bwestergard
4 hours ago
[-]
reply
aerhardt
3 hours ago
[-]
I’ve read primary text excerpts from Hegel and some secondary sources too, and already knew that he didn’t write in that style, but the general idea that many forces in life develop themselves dialectically (the antithesis sometimes being expressed as alienation) is very similar in concept.

That a myth has developed around the terminology and methodology is persuading, but also there’s nothing wrong with a programming library to call itself Hegel.

Interesting paper regardless thanks for sharing.

reply
henry_bone
2 hours ago
[-]
On the other hand, I have quite the visceral reaction to the name because of the influence Hegel had on Marx, and subsequent 20th century critical theorists.
reply
supliminal
5 hours ago
[-]
A Hegel just flew over your house.
reply
tensegrist
3 hours ago
[-]
does anyone actually say it like that
reply
aerhardt
5 hours ago
[-]
Off-topic but only today I was thinking of Hegel-related names for a certain business idea. Was wondering who had registered all the domains, well here's one. It would a completely different domain, and also a derivation of the name, so nothing to worry about there. But if I build something in Rust, I'll remember you :)
reply
jgalt212
2 hours ago
[-]
In the era of AI codegen, I think property-based testing will and should see greater uptake. Unit tests are too brittle for the grind on it till it works methods of agentic written code.
reply
MoonWalk
2 hours ago
[-]
Now that's how you write a title.
reply