Descripción del proyecto
Program correctness is a central problem in computer science. Code inspection and testing can reveal many program bugs, but subtle errors need a rigorous analysis. A fully automated analysis is impossible: deciding whether a program terminates on a given input is undecidable. Thanks to unremitting developments in program verification and incredible advancements in satisfiability checking, program verification is nowadays supported by software tools in industrial practice. Meta and Amazon Web Services use program verification tools on a daily basis.
In the advent of AI, probabilistic programming emerged as a popular paradigm combining programming with learning from (big) data. Since 2018, the UN uses such probabilistic programs to predict the location and classify seismological activities on the earth. Other application areas include security, planning in AI, cognitive science, and neural network training.
Probabilistic programs are fundamentally different. Due to randomness, they sometimes terminate and sometimes not. Their outcome depends on coin flips. They may terminate with probability one, while having an infinite expected run time. Classical program verification techniques no longer apply.
The ERC project FRAPPANT has resulted in proof calculi for probabilistic programs, equipped with powerful proof rules, and identified a relative complete syntax for quantitative properties. This has led to a prototypical deductive verifier for an assembler programming language. A software tool for which no equivalent exists. Successful analyses of intricate programs showed its potential. The proposed project aims to explore the commercial and innovative aspects of our deductive verifier. It takes the necessary innovative steps to enable a commercialisation by including invariant synthesis and program slicing and supporting the popular probabilistic programming language STAN. Its potential will be investigated engaging potential users, and a market analysis.