namin
Show HN: LemmaScript, a verification toolchain for TypeScript via Dafny
https://github.com/midspiral/LemmaScript
I created LemmaScript to compile TypeScript to a verification backend (Dafny or Lean) and prove properties on the systematically derived model. I'll keep developing this, but I have a few case studies already, and it looks quite promising, with the caveat that each case study pushed the development of the core further. I can support both greenfield and brownfield projects, and in many cases,...
Show HN: Guardians – Verify tool-using agent workflows before execution
lemmafit is an npm package that gives AI coding agents (currently only Claude Code) a formal verification loop. Any effect-free logic gets written in Dafny, verified on every save, and auto-compiled to TypeScript. The agent then hooks the logic up to a React UI, and you get an app with state transitions and business logic with guarantees of correctness.
Happy to answer questions about the verification pipeline or the Dafny integration.
Show HN: Lemmafit: Make agents prove that their code is correct
A Very Small SAT Solver (From Haskell) Now in Dafny, Proved Correct with LLMs
Verifying State and Reconciliation in Collaborative Web Apps
Show HN: Henri: a small, hackable agent CLI
Show HN: Holey: Staged execution from Python to SMT for synthesis
Building a React App with Formally Verified State
From Intent to Proof: Dafny Verification for Web Apps
I am looking for a postdoctoral fellow interested in the intersection of programming languages and artificial intelligence, in particular verification and large language models.
Our main goal is to create a PL+AI system that is the best at verified program synthesis. We will use the verification-aware programming language Dafny and co-evolve an LLM and a discovery system for Dafny.
Please contact me at [email protected] if interested. Include a CV and GitHub link.
Show HN: Tiny Hoare logic verifier using SMT
Show HN: Live software archaeology of FOL (theory of reasoning)
https://io.livecode.ch/learn/namin/GETFOL
I want to share this live playground for FOL, an old system from the late 70s. It has many precursor ideas about reasoning at the meta-level, including the now common proof by reflection which turns proving in the object theory into evaluation in the meta theory, and is common in Rocq, Lean, and other proof assistants.
Work with Apps on macOS
A Scalable Communication Protocol for Networks of Large Language Models
I have one opening in a new project around AI for precision medicine. One thrust is about combining biomedical knowledge graphs and large language models into a biomedical-fluent core platform. Another thrust is about UI for data-rich programmable systems. The opening is for either a research engineer or a postdoc, with different criteria in each case. The research engineer would be responsible for quarterly demo-driven deliverables. The postdoc would be expected to develop a research agenda with these applications in mind.
Contact: [email protected]
Arc Prize Guide
Thanks.
Show HN: Verified Multi-Step Synthesis Using LLMs and MCTS
https://arxiv.org/abs/2402.08147
3 months ago, I submitted a hack on using Monte Carlo Tree Search (MCTS) with an LLM guided by a program verifier: https://news.ycombinator.com/item?id=38235407I just wanted to send this update, because we now have a paper that explains the hack in detail.We also show the use of verifiers with ChatGPT (implemented as actions within GPTs), and our method makes open models like Phind Code Llama...
It does not, though I would like to add validation as part of the check as future work.
> Is there any reason to expect that a 'good' partial subtree will result in a 'good' output?
Yes. I am using Phind Code Llama and it generates a lot of invalid Dafny out of the box. Now, all these false starts get pruned.
I do suspect that if we try to scale this to Coq proof, we will run in local optima rabbit holes.
> Why do you think this approach will generate valid lemmas? > (Not structurally valid; valid as in, they assert a solution to the given problem).
Because the LLM tries to follow instructions.
> "Generate me a function for X and a bunch of tests that verify X". > "If the tests pass, the function is good" > ...but, there's no specific reason to expect that to be true?
Indeed, there are complementary approaches like Speculyzer that help validate specs and code at once.
> How is what you're doing different?
That's not the problem I am solving at the moment. What I solve is that I am able to generate verified code (that still need to be inspected) while the LLM struggles to do in one go.
> I guess I'm struggling to see how this is superior / novel to existing approaches in that space.
It's not that novel, see the planning in LLM work that I credit in the README.md. This transfers from a setting of checks by tests to a setting of checks by a verifier. The code is very simple, and it actually brings open models to reliably solve problems that even ChatGPT only sometimes solve. I think it's a good foundation to build more sophisticated verification with LLMs.
This is not the main loop. This just generates one completion that succeeds (or gives up) deferring to the Dafny checker to decide.
The main loop is the simulate function of the MCTS library. https://github.com/namin/llm-verified-with-monte-carlo-tree-...
The main advantage of MCTS is that it takes care of the exploitation/exploration trade off based on the scores propagated by the child finder.
I hope this helps. Let me know if this addresses your question.