🎉 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
📄 https://t.co/TiuWq5OlSU
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!
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.
If you are at OOPSLA 2025, don't miss @elefthei's presentation of our paper "Structural temporal logic for mechanized program verification" on Saturday October 18, at 3:15 PM (Singapore time). Paper: https://t.co/z14gdVsKSK. Code: https://t.co/tgDGOieUJF.
🎓 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.
excited that my team at @Bloomberg is supporting PhD students in certified programming (and other infra/sec topics too!) through a fellowship. 💻🛡️
includes stipend, tuition, and internship. timely for Rocq and proof assistant folks as science funding tightens. please apply! 📬
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.
@MarisaVeryMoe Yes that is precisely what I was looking for! So staging an interpreter is good, but hard work. And the performance is still not as good as writing a compiler. I am using Rust so I will need quite a few tricks^TM to make this work. I am undecided but leaning don’t do it.
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)?
@MarisaVeryMoe Good idea! I imagine by using a language with partial evaluation you can get quite quite a bit of pattern matching done before getting the env. Then you are essentially dispatching only on references. Are you saying that practically the benefits are not that great?
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).