About the service
I am a proof engineer and specialize in the Coq interactive theorem proving system and its Gallina specification language. My task is to remove the phrase "probably works" from your code and replace it with a proof that the machine itself checks. Given an algorithm, protocol or mathematical statement, I write its specification in Gallina, then interactively build a proof that the implementation matches it, covering all cases without exception. Nothing is taken on faith: every lemma is derived and rechecked by the coqc compiler at every build. Usually I am contacted to formally prove invariants of data structures, justify termination and functional correctness of recursive functions, mechanize theorems from combinatorics, algebra or logic, and model finite automata for concurrency and safety properties. I am fluent in the Ltac and Ltac2 tactic languages, the SSReflect discipline along with the Mathematical Components library, dependent types, well-founded recursion and inductive predicates. When proofs converge, I use Coq's extraction mechanism to get clean executable code in OCaml that carries the proof guarantees into production; when needed, I prepare extraction to Haskell or Scheme. You receive documented Coq development that compiles without admit and unnecessary axioms, a readable specification, extracted and tested modules and a short report on what the theorems promise and where their boundaries lie. I have mechanized compiler passes, verified arithmetic and cryptographic primitives and restored proof scripts broken by library updates. If you need not just a test sample but confidence, I will give you a result that is true by construction and remains true as the code evolves.