Tiago Cogumbreiro
banner
forkjoin.bsky.social
Tiago Cogumbreiro
@forkjoin.bsky.social
Associate professor @ UMass Boston | https://cogumbreiro.github.io/ | Faial is a verifier for #CUDA and #WebGPU written in #OCaml https://gitlab.com/umb-svl/faial #ocaml #rocq
I think I get Ltac2. It's refreshing to write tactics that have typing information. It really cleans up detailed proof manipulation.
November 18, 2025 at 7:44 PM
I have big dreams for Claude Code automating Rocq proofs, but it keeps responding in Lean tactics 😞 Is Lean the TypeScript of LLMs?
November 12, 2025 at 5:38 PM
Reposted by Tiago Cogumbreiro
A new book on the history of control structures by the creator of #OCaml himself @camlist.bsky.social xavierleroy.org/control-stru...
Control structures in programming languages
Xavier Leroy
xavierleroy.org
November 5, 2025 at 12:00 PM
I am publishing an itch I've add in the last few days
gitlab.com/cogumbreiro/...

This is a simple CLI tool for Rocq that shows the proof state/typing info of a source code location, via rocq-lsp. I'm trying to learn the code base of rocq-lsp, but it's a large project.
Tiago Cogumbreiro / Proof Archivist · GitLab
GitLab.com
gitlab.com
October 25, 2025 at 6:22 PM
Reposted by Tiago Cogumbreiro
Interactive theorem provers for proof education. ~ Romina Mahinpei, Manoel Horta Ribeiro, Mae Milano. dl.acm.org/doi/abs/10.1... #ITP #CoqProver #Teaching
Interactive Theorem Provers for Proof Education | Proceedings of the 2025 ACM SIGPLAN International Symposium on SPLASH-E
dl.acm.org
October 13, 2025 at 10:38 AM
Reposted by Tiago Cogumbreiro
Static linking in OCaml
Most of the time, you don’t think about how your file is linked. We’ve come to love dynamically linked files with their small file sizes and reduced memory requirements, but there are times when the convenience of a single binary download from a GitHub release page is really what you need. To do this in OCaml, we need to add -ccopt -static to the ocamlopt. I’m building with dune, so I can configure that in my dune file using a flags directive. (flags (:standard -ccopt -static)) This can be extended for maximum compatibility by additionally adding -ccopt -march=x86-64, which ensures the generated code will run on any x86_64 processor and will not use newer instruction set extensions like SSE3, AVX, etc. So what about Windows? The Mingw tool chain accepts -static. Including (flags (:standard -ccopt "-link -Wl,-static -v")) got my options applied to my dune build: x86_64-w64-mingw32-gcc -mconsole -L. -I"C:/Users/Administrator/my-app/_opam/lib/ocaml" -I"C:\Users\Administrator\my-app\_opam\lib\mccs" -I"C:\Users\Administrator\my-app\_opam\lib\mccs\glpk/internal" -I"C:\Users\Administrator\my-app\_opam\lib\opam-core" -I"C:\Users\Administrator\my-app\_opam\lib\sha" -I"C:/Users/Administrator/my-app/_opam/lib/ocaml\flexdll" -L"C:/Users/Administrator/my-app/_opam/lib/ocaml" -L"C:\Users\Administrator\my-app\_opam\lib\mccs" -L"C:\Users\Administrator\my-app\_opam\lib\mccs\glpk/internal" -L"C:\Users\Administrator\my-app\_opam\lib\opam-core" -L"C:\Users\Administrator\my-app\_opam\lib\sha" -L"C:/Users/Administrator/my-app/_opam/lib/ocaml\flexdll" -o "bin/main.exe" "C:\Users\ADMINI~1\AppData\Local\Temp\2\build_d62d04_dune\dyndllb7e0e8.o" "@C:\Users\ADMINI~1\AppData\Local\Temp\2\build_d62d04_dune\camlrespec7816" "-municode" "-Wl,-static" However, ldd showed that this wasn’t working: $ ldd main.exe | grep mingw libstdc++-6.dll => /mingw64/bin/libstdc++-6.dll (0x7ffabf3e0000) libgcc_s_seh-1.dll => /mingw64/bin/libgcc_s_seh-1.dll (0x7ffac3130000) libwinpthread-1.dll => /mingw64/bin/libwinpthread-1.dll (0x7ffac4b40000) I tried a lot of different variations. I asked Claude… then I asked @dra27 who recalled @kit-ty-kate working on this for opam. PR#5680 The issue is the auto-response file, which precedes my static option. We can remove that by adding -noautolink, but now we must do all the work by hand and build a massive command line. (executable (public_name main) (name main) (flags (:standard -noautolink -cclib -lunixnat -cclib -lmccs_stubs -cclib -lmccs_glpk_stubs -cclib -lsha_stubs -cclib -lopam_core_stubs -cclib -l:libstdc++.a -cclib -l:libpthread.a -cclib -Wl,-static -cclib -ladvapi32 -cclib -lgdi32 -cclib -luser32 -cclib -lshell32 -cclib -lole32 -cclib -luuid -cclib -luserenv -cclib -lwindowsapp)) (libraries opam-client)) It works, but it’s not for the faint-hearted. I additionally added (enabled_if (= %{os_type} Win32)) to my rule so it only runs on Windows.
dlvr.it
August 30, 2025 at 2:38 PM
Reposted by Tiago Cogumbreiro
Interesting retrospective 👇 on why V8 team abandoned Sea of Nodes. Have to say SoN seems obviously correct, is Javascript just not designed to leverage it. AFAICT they treated memory as one giant register re: dependencies; langs like Rust w/ better aliasing info should do better
August 27, 2025 at 4:45 PM
Reposted by Tiago Cogumbreiro
Pleased to announce that the third edition of my PL book, PLAI, is finally available on paper! Same price as it's been for 20 years (-:. Also made it available on Kindle EPUB, and a few other options. (Always free options, of course.) Enjoy!
www.plai.org
Programming Languages: Application and Interpretation
www.plai.org
July 27, 2025 at 5:25 PM
Reposted by Tiago Cogumbreiro
decoders library is quite elegant, esp if your format is absolutely disgusting

(source used it to parse the activitypub spec, the most underspecified and broken format known to humankind)

github.com/kiranandcode...
ocamlot/lib/activitypub/decode.ml at d677ae6b208074660811dc9120e6b90353e7f338 · kiranandcode/ocamlot
An Activitypub server in OCaml! Contribute to kiranandcode/ocamlot development by creating an account on GitHub.
github.com
July 17, 2025 at 6:31 PM
Reposted by Tiago Cogumbreiro
PSA! Please share around! Due to a limited number of submissions, we're extending the OCaml Workshop deadline by a week to July 10th AoE!

Functional programmers! Heed my call! We need your submissions!!
Calling for Presentations!!!

The OCaml Workshop 2025 welcomes presentations on any topic related to OCaml (such as multicore, algebraic effects, testing, ppxs, etc.) Have fun!!

Submissions due: July 3rd AoE
Workshop: Oct 17th

Here's the link to website:
conf.researchr.org/home/icfp-sp...

#OCaml
OCaml 2025 - OCaml Users and Developers Workshop 2025 - ICFP/SPLASH 2025
The OCaml Users and Developers Workshop brings together industrial users of OCaml with academics and hackers who are working on extending the language, type system, and tools. Previous editions have b...
conf.researchr.org
July 6, 2025 at 7:59 AM
I migrated from a Coq 8.19 + coq_makefile to dune + Rocq 9.0, assisted with Claude Code. It was a great experience, as there are so many little (tedious) details, from opam, Git, dune, etc.

gitlab.com/cogumbreiro/...
gitlab.com
June 29, 2025 at 3:14 PM
Reposted by Tiago Cogumbreiro
If you are a functional programmer in Asia, then it is your obligation, nay your existential imperative to submit to the OCaml workshop this year

SPLASH/ICFP is in Asia this year and we have fewer submissions from the western folks because of the distance

Submit!!! Plsplsplsplsplz
Calling for Presentations!!!

The OCaml Workshop 2025 welcomes presentations on any topic related to OCaml (such as multicore, algebraic effects, testing, ppxs, etc.) Have fun!!

Submissions due: July 3rd AoE
Workshop: Oct 17th

Here's the link to website:
conf.researchr.org/home/icfp-sp...

#OCaml
OCaml 2025 - OCaml Users and Developers Workshop 2025 - ICFP/SPLASH 2025
The OCaml Users and Developers Workshop brings together industrial users of OCaml with academics and hackers who are working on extending the language, type system, and tools. Previous editions have b...
conf.researchr.org
June 26, 2025 at 11:27 PM
I'm learning to use Claude code for my Rocq proof development. First rule of fight club: If ANY proof attempt fails to compile, STOP IMMEDIATELY.

Otherwise, Claude just exhausts my tokens.
June 19, 2025 at 3:52 PM
May 25, 2025 at 8:27 PM
Reposted by Tiago Cogumbreiro
Oh, defo you should! I am sad that I don't currently have any research actively working on lean at the moment because programming in it is honestly like working in the language of my dreams; I can truly extend it as much and as often as I want to fix any pain points

github.com/kiranandcode...
GitHub - kiranandcode/LeanTeX: Write LaTeX presentations directly from Lean4~
Write LaTeX presentations directly from Lean4~. Contribute to kiranandcode/LeanTeX development by creating an account on GitHub.
github.com
May 21, 2025 at 4:37 AM
Here's a short demo I gave to my students on proving a simple result without ltac (functional style). #Rocq

gist.github.com/cogumbreiro/...
May 12, 2025 at 7:57 PM
Paper reviewing, 5 out of 10 done, 2 weeks to go. 🥵
May 11, 2025 at 10:03 PM
Z3 builds in Dune Developer Preview! <3

Love it. I can't wait to have time to make our project build with the new dune!

#ocaml

github.com/ocaml/dune/i...
Dune Developer Preview (Sept-28-2024) fails to build z3 · Issue #10970 · ocaml/dune
Expected Behavior I would like to migrate my project to Dune developer preview. Actual Behavior dune build is unable to compile the package z3. See point 4 below for output. Reproduction 1. Create ...
github.com
May 11, 2025 at 10:02 PM
@ NEPLS
May 9, 2025 at 2:09 PM
I really enjoy reviewing papers. I am reviewing this paper for OOPSLA. I understood the intro. The overview section started by making me giggle and the problem statement was clear as day. I'm pumped to discover what comes next. Hopefully, a strong accept.
April 28, 2025 at 3:06 PM
ECS in #OCaml featuring extensible variant types and GADTs edwardwibowo.com/blog/ocaml-g...
OCaml Game Engine: ECS
My experience implementing camlcade's archetypal Entity-Component-System (ECS) in OCaml.
edwardwibowo.com
April 14, 2025 at 1:53 PM
Reposted by Tiago Cogumbreiro
new book on session types just dropped!

www.cambridge.org/us/universit...
Session Types | Programming languages and applied logic
www.cambridge.org
April 3, 2025 at 3:54 PM
Finally, a roguelike powered by OCaml's type system!

github.com/Octachron/ro...
GitHub - Octachron/roguetype: The first ever roguelike written in the OCaml type system
The first ever roguelike written in the OCaml type system - Octachron/roguetype
github.com
April 2, 2025 at 12:58 PM
Reposted by Tiago Cogumbreiro
Unite! Visiting Professorship Programme at TU Darmstadt (2nd Call) is open for applications until 31 March.

🔗 More information: tinyurl.com/3ppnw75f

#TécnicoLisboa #ULisboa
March 24, 2025 at 6:41 PM