Analyzing Programs with SMT Solvers - Tikhon Jelvis - FUN OCaml 2025
Analyzing Programs with SMT Solvers Tikhon Jelvis (Semgrep) ABSTRACT We can use SMT solvers like Z3 to analyze programs and answer difficult questions about our code. By generating and solving complex constraints, we can improve error message localization, attack cryptographic protocols, check refinement types, search for proofs, verify invariants, compare programs against specifications or even synthesize code. Z3 is the goto state-of-the-art SMT solver, available under and open source license and has a first-class OCaml library. In this talk, I'll walk through a simple OCaml program to generate SMT constraints that represent a bounded model of programs in a simple imperative language. Algebraic data types and pattern matching are a perfect fit for this kind of work. Session page: https://fun-ocaml.com/2025/analyzing-... Connect with FUN OCaml: Twitter: https://x.com/FunOCaml Bluesky: https://bsky.app/profile/fun-ocaml.com #ocaml --- Big Thanks(TM) go to our generous sponsors who made FUN OCaml possible! Octra Labs - https://octra.org/ - Platinum Sponsor Ahrefs - https://ahrefs.com/ - Platinum Sponsor Dialo - https://dialo.ai/ - Gold Sponsor LexiFi - https://www.lexifi.com - Bronze Sponsor Jane Street - https://www.janestreet.com/ - Bronze Sponsor LightSource - Volunteer / Organizer Commitment Tarides - Volunteer / Organizer Commitment

Simple Code, High Performance

How to Start Coding | Programming for Beginners | Learn Coding | Intellipaat

The Things I Find Myself Repeating About Go - Dave Cheney | GopherCon EU 2025

"The Trouble With Types" by Martin Odersky (2013)

Reverse Engineering with TLA+ Calvin Loncaric, Oracle

The Story Behind the Fastest Image Comparison Library - Dmitriy Kovalenko - FUN OCaml 2024

Four Fascinating Programming Languages You've Probably Never Heard Of - Lutz Hühnken
![[Haskell'25] Haskell equations, thirty-eight years later](https://i.ytimg.com/vi/Of_yb8Bj5Pc/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE=&rs=AOn4CLDqpyohsx0ejMyKkfQmNcggta9c1Q)
[Haskell'25] Haskell equations, thirty-eight years later

Richard Eisenberg on OCaml, Effective AI, Teaching FP and Hiring for Fundamentals

Zero to Raylib - C/Odin/Zig Comparison!

GopherCon 2025: Analysis and Transformation Tools for Go Codebase Modernization - Alan Donovan

Z3 Explained - Satisfiability Modulo Theories & SMT Solvers

Functional Programming in 40 Minutes • Russ Olsen • GOTO 2024

Co-Creator of Haskell: Why Learn Functional Programming, Useless vs Useful Languages | Simon Jones

Vertical Slice Architecture (Jimmy Bogard)

the true reason C++ always wins

Nix explained from the ground up

Java’s Cutting Edge Comeback (with Josh Long)

Forth Programming Language - Shropshire LUG - Oct 2020

