Type and Proof Structures for Concurrent Software Verification
Verification of concurrent software is a notoriously difficult subject, whose complexities stem from the inability of the existing verification methods to modularize, and thus divide-and-conquer, the verification problem.
Depende...
Verification of concurrent software is a notoriously difficult subject, whose complexities stem from the inability of the existing verification methods to modularize, and thus divide-and-conquer, the verification problem.
Dependent types are a formal method well-known for its ability to modularize and scale complex mathematical proofs. But, when it comes to programming, dependent types are considered limited to the purely functional and terminating programming model.
The grand challenge of this project is to remove the limitation and scale dependent types to support implementation of stateful concurrent programs, and their correctness proofs, simultaneously. By applying the modularizing power of dependent types to both programs and proofs, the project will obtain novel and scalable foundations for the field of concurrent software verification.
Writing mechanized proofs of software, concurrent or otherwise, is generally considered infeasible. But if one chooses the right linguistic abstractions to express the proofs, we argue that it does not have to be so. This observation is supported by our encouraging preliminary results. The project will discover further novel linguistic abstraction that facilitate engineering of practically feasible formal proofs, and experimentally evaluate them by mechanically verifying extensive concurrent programs drawn from realistic applications, such as concurrent garbage collectors, OS kernels, and popular open-source concurrent libraries.
The project is high risk because it proposes novel foundations for concurrent software verification, whose development requires deep intertwining of logic and program semantics theory, with significant hands-on implementation and experimentation with formal proofs. But it is also high gain, as scaling concurrent software verification is the most significant open problem of present-day programming languages and semantics research.ver más
Seleccionando "Aceptar todas las cookies" acepta el uso de cookies para ayudarnos a brindarle una mejor experiencia de usuario y para analizar el uso del sitio web. Al hacer clic en "Ajustar tus preferencias" puede elegir qué cookies permitir. Solo las cookies esenciales son necesarias para el correcto funcionamiento de nuestro sitio web y no se pueden rechazar.
Cookie settings
Nuestro sitio web almacena cuatro tipos de cookies. En cualquier momento puede elegir qué cookies acepta y cuáles rechaza. Puede obtener más información sobre qué son las cookies y qué tipos de cookies almacenamos en nuestra Política de cookies.
Son necesarias por razones técnicas. Sin ellas, este sitio web podría no funcionar correctamente.
Son necesarias para una funcionalidad específica en el sitio web. Sin ellos, algunas características pueden estar deshabilitadas.
Nos permite analizar el uso del sitio web y mejorar la experiencia del visitante.
Nos permite personalizar su experiencia y enviarle contenido y ofertas relevantes, en este sitio web y en otros sitios web.