Über den Service
ÜbersetztIch bin ein Beweisingenieur und spezialisiere mich auf das interaktive Theorembeweissystem Coq und dessen Gallina-Spezifikationssprache. Meine Aufgabe ist es, den Satz "funktioniert wahrscheinlich" aus Ihrem Code zu entfernen und ihn durch einen Beweis zu ersetzen, den die Maschine selbst überprüft. Gegeben einen Algorithmus, ein Protokoll oder eine mathematische Aussage, schreibe ich dessen Spezifikation in Gallina, baue dann interaktiv einen Beweis, dass die Implementierung übereinstimmt, und decke alle Fälle ohne Ausnahme ab. Nichts wird geglaubt: jedes Lemma wird abgeleitet und vom Coqc-Compiler bei jedem Build erneut überprüft. Üblicherweise werde ich kontaktiert, um formal Invarianten von Datenstrukturen zu beweisen, die Beendigung und funktionale Korrektheit rekursiver Funktionen zu rechtfertigen, Theoreme aus der Kombinatorik, Algebra oder Logik zu mechanisieren und endliche Automaten für Nebenläufigkeit und Sicherheitsmerkmale zu modellieren. Ich beherrsche die Taktiksprachen Ltac und Ltac2, die SSReflect-Disziplin zusammen mit der Mathematical Components-Bibliothek, abhängige Typen, wohlbegründete Rekursion und induktive Prädikate. Wenn Beweise konvergieren, benutze ich Coqs Extraktionsmechanismus, um sauberen ausführbaren Code in OCaml zu erhalten, der die Beweisgarantien in die Produktion trägt; wenn nötig, bereite ich die Extraktion nach Haskell oder Scheme vor. Sie erhalten dokumentierte Coq-Entwicklung, die ohne admit und unnötige Axiome kompiliert, eine lesbare Spezifikation, extrahierte und getestete Module sowie einen kurzen Bericht darüber, was die Theoreme versprechen und wo ihre Grenzen liegen. Ich habe Compiler-Pässe mechanisiert, arithmetische und kryptografische Primitiven verifiziert und Beweis-Skripte, die durch Bibliotheksupdates beschädigt wurden, wiederhergestellt. Wenn Sie nicht nur ein Testmuster, sondern auch Vertrauen benötigen, werde ich Ihnen ein Ergebnis liefern, das durch Konstruktion wahr ist und wahr bleibt, während sich der Code weiterentwickelt.