Lef (@elefthei) header
Lef (@elefthei) profile picture

Proofs @Rise_MSR, @MSFTResearch. Compilers, Formal Verification, Cryptography. Previous: @Penn, @Bridgewater, @MIT.

Seattle, WA
Joined August 2009
Photo by Lef (@elefthei)Photo by Lef (@elefthei)Photo by Lef (@elefthei)Photo by Lef (@elefthei)Photo by Lef (@elefthei)Photo by Lef (@elefthei)Photo by Lef (@elefthei)Photo by Lef (@elefthei)Photo by Lef (@elefthei)Photo by Lef (@elefthei)
🎉 Our paper “Structural Temporal Logic for Mechanized Program Verification” was accepted at OOPSLA 2025! We introduce Ticl, a program logic for compositional temporal proofs, beyond partial correctness, and directly over program syntax. #OOPSLA #Ticl 📄 arxiv.org/abs/2410.14906
2
8
2
61
3,776
This is a great start! The property “program does not crash” is useful, but not everything. Another useful property is “program does not spin” which we call liveness. Working to see if we can extend the Anthropic Linux model to liveness proofs.
New on our Frontier Red Team blog: using Claude to formally verify software at large scale. Formal verification can prove that code is free of certain bugs, but historically it has only been feasible for small codebases (or required a lot of expert time). With AI models, however, this is beginning to change. In collaboration with @theoremlabs, we used Claude to prove security properties in over one hundred real-world open-source libraries over the span of a few weeks. Read our research in full here: anthropic.com/research/forma…
5
184
🚀 Zippel, our new programming language for #ZK proof systems, was accepted at S&P 2027! We used AI to write 20+ SOTA protocols, auto-verified them, and compiled to multithreaded #Rust that beats hand-written code on most benchmarks ⚡ 📄 eprint.iacr.org/2026/2517.pd… #Cryptography
1
1
6
208
Thanks to everyone who came to my talk on #Ticl a “Structural Temporal Logic for Mechanized Program Verification” at #OOPSLA. Despite being in the last day, we had a pretty good turn out!
1
12
704
Well this is embarrassing.
The viral new "Definition of AGI" paper has fake citations which do not exist. And it specifically TELLS you to read them! Proof: different articles present at the specified journal/volume/page number, and their titles exist nowhere on any searchable repository.
166
From Wawa to WA.
8
185
🎓 I have successfully defended my PhD. Deeply thankful to my advisors Sebastian Angel and Steve Zdancewic for their support and mentorship throughout this journey. Next I’m joining Microsoft Research and the RiSE group to work on AI assisted verification.
13
5
134
8,225
Reading in the editor is not the same as reading in the rendered PDF.
1
220
Theory is saying a DAG does not have cycles. Engineering is still adding a “visited” vector to the worklist algorithm because you know you will eventually hit a bug and it’s gonna be a pain to debug an infinite loop.
2
3
458
People using SMT solvers don’t know you can simply implement algebraic simplifications with smart constructors in 5x the time.
2
220
An interpreter is simply dynamic dispatch on a loop. A compiler trades dynamic dispatch for static dispatch. Can we have the cake (an interpreter) and eat it too (static dispatch)?
2
3
509
I used to think ASTs with just two constructors UnaryOp and BinOp where old fashioned, but I think it actually saves a ton of lines of code (especially if using copilot).
2
270
Rocq when it expects a fin (S n) and I give it a fin (n+1)
The optimizer when I cast a uint64_t to a uint16_t[4]:
2
274
Community notes for arxiv
3
3
16
1,171
Post-dissertation proposal exhaustion and a new Churchill documentary dropped on Netflix? Say less!
5
254
reify . reflect
A lot of math is normal
1
336
Lol this take is responsible for 1000 programmers switching to Go.
If you can't understand what a monad is (or you believe that monads = input/output), all your programming opinions are invalid.
1
2
436
Is there a denotational semantics for preemptive programs?
1
284
Is the essence of functional programming dynamic dispatch?
1
1
451