Hector Suzanne

I am a computer scientist working in software verification, currently via model-checking, at the Laboratoire Méthodes Formelles (LMF) of Université Paris-Saclay. I did my thesis on typing-based resource analysis at LIP6, the computer science lab of Sorbonne Université.

Current Work

Testing properties for model coverage via mutation techniques

Will update this once I learn more about it...

Research

Transactional aspects of infinite-space model-checking

Designing systems that gracefully scale to arbitrarily many nodes requires thinking across interdependent scales: what code will a given node run ? how do related nodes interact ? does the system at large maintain a viable state ? Those scenarios overlap and (mis)interact. Model checkers, such as Cubicle, allow designers to ensure that systems maintain safety conditions. They represent systems as a set of arrays indexed by node and a collection of transitions that describe the atomic test-and-update rules the system evolves by.

This rule-based encoding erases control-flow information. It smears the original intents together to faithfully represent real-life concurrency, but does come at a cost: systems are often designed in terms of those desired narratives: "Some process asks for write permission, which causes a manager node to invalidate access for other nodes, at which point the original process is sent an ACK."

My postdoc work with Sylvain Conchon at LMF is TxCubicle, an extension of Cubicle where those intents are transactions: finite chains of transitions over a chosen slice of the system, which can branch and loop, and either commit as a whole or roll back and have no effect.

Building a transactional model, then progressively dissolving its transactions by changing the code or the model semantics, lets the emergent behavior of the distributed system appear gradually. Designers can start modeling from the happy paths and get more pessimistic as failure modes become relevant. Knowing the designers' intent for their system is also useful in the search for inductive invariants: candidate invariants can be guessed from the simpler transactional system and tested against the smeared one, speeding up the search.

Reusable resource analyses for high-level languages

Emergent behavior in programs make it impossible —in theory— to know in advance how much work a computation will expend. We know how to enforce hard budget caps in some situations (such as embedded and system programming), but more generally, can we build languages that expose the possible cost of code ? Preferably while doing our algorithmics homework for us, of course:

"This will allocate 8*n*log(n) + 5*n + 60 words of RAM after n requests"

This was the overall topic of my PhD. Scientifically, it focused on compile-time prediction of memory usage for programs written in functional-imperative style, following, amongst others, the techniques of Automated Amortized Resource Analysis (AARA), adapting them to mainstream functional-programming implementation techniques. This ending up taking us (me + Emmanuel Chailloux, my advisor) onto a journey spanning proof theory, type theory, constraint solvers, and integer optimization.

The result was Autobill, a proof-of-concept analyser, that acted as a deconstruction and progressive dissolution of AARA into mainstream programming-language-theory techniques:

Pre-prints

Transaction-Guided Parameterized Model Checking in TxCubicle

with Sylvain Conchon, at ICFEM'26 PDF

Reusable resource analyses for high-level languages

my PhD thesis, under Emmanuel Chailloux Manuscript

A reusable machine-calculus for automated resource analyses

with Emmanuel Chailloux, at LOPSTR'23 PDF

Software

TxCubicle Github Homepage

A model-checker for infinite-space array transition system, including a tightly optimized SMT solver, that supports control-flow, invariant generation, and universal guards.

Autobill Github

A type-checker and interpreter for a suite of ML-style languages with call-by-value and call-by-push-value semantics, including its intuintionistic-linear type system, resource-aware types, and polynomial-bound generation using AARA

Resume

🇺🇸 Download my resume here.

🇫🇷 Mon CV en français est disponible ici.