GenPro: Generera och bevisa programegenskaper via symboleliminering
Forskningsprojekt, 2014
– 2017
Mycket komplexa datorsystem har blivit en viktig del av våra liv. Banker, sjukhus, företag, organisationer och individer använder sådana system och är beroende av dem. Dessa system, bl.a. Internet, mobilnätet, betalsystem, autonoma enheter, trafikövervakning, mm, är helt beroende av programvaran de innehåller. Om den här programvaran inte är pålitlig kan kostnaderna för företag och samhälle bli enorma. Utmaningen att skapa pålitlig programvara har varit i fokus för datavetenskapen under flera decennier. Det är ett svårt problem eftersom programvaran och därmed den underliggande matematiska modellen hela tiden blir mer komplex. Många företag och organisationer hanterar nu för tiden rutinmässigt programvara som består av flera miljoner rader kod, skrivna av många olika personer och uttryckta i flera olika programspråk, med olika verktyg och i olika stilar. Sådan programvara är svår att förstå i sig och den är dessutom integrerad i en föränderlig kontext via datorer, nätverk, olika styrenheter, säkerhetsprotokoll och andra komponenter. Programvaruutveckling blir därför dyr och felkällorna många vilket gör att en stor andel av de industriella programutvecklingsresurserna läggs på att hitta och korrigera fel. Målet med formell programverifiering är att erbjuda automatiserade metoder att hitta och korrigera fel och på så sätt producera mer pålitliga och robusta system. Det finns ett växande intresse för att tillämpa formella metoder för att garantera pålitligheten hos högkvalitativa IT-system som vi stöter på i vårt dagliga liv. Att hantera sådana komplexa system och öka deras pålitlighet är ett utmanande forskningsämne både i akademin och industrin, och det är av avgörande betydelse för IT-industrin. I det här projektet vill vi tackla denna utmaning. Eftersom bevis av mycket stora program skulle kräva mycket stora mänskliga resurser är huvudidén i formell verifiering att designa automatiska programverktyg (också program!) som tar hand om bevisen. Användningen av automatiska programverktyg är nyckeln till formell verifierings framgång. Detta projekt har som mål att utveckla nya verifieringsmetoder genom att använda datorstödd bevisföring på nya sätt. Vår forskning kommer att utgå från den nyligen introducerade symbolelimineringstekniken inom datorstödd bevisföring och den kommer att rikta in sig på följande spår. * Vi kommer att automatiskt härleda egenskaper och tips som hindrar programmerare från att göra fel när de ändrar i sina program. Att ge sådana tips manuellt kräver en hel del arbete av välutbildad personal vilket ofta gör det för dyrt i praktiken. Därför är automatiskt genererade tips utan anvisning från användarna ovärderligt när det handlar om att göra programverifiering ekonomiskt gångbart. * Vi kommer också designa nya algoritmer som stödjer bevisföring om programegenskaper och implementera dessa algoritmer i den prisbelönta teorembevisaren Vampire som huvudsökanden är aktivt involverad i utvecklingen av. Vampire används av flera tusen akademiker och industriexperter över hela världen. Vi förväntar oss att vårt projekt kommer att få kraftig och långvarig effekt på bevisföringsbaserad formell verifiering, och kommer att ge nya metoder och vetenskapliga genombrott inom automatisk bevisföring och formell verifiering. Vårt projekt angriper problem som andra angreppssätt ännu inte kunnat lösa och vi ämnar flytta forskningsfronten framåt med det långsiktiga målet att nästan helt automatisera verifiering av stora datorprogram.
Deltagare
Laura Kovacs (kontakt)
Programvaruteknik
Finansiering
Vetenskapsrådet (VR)
Projekt-id: 2013-4977
Finansierar Chalmers deltagande under 2014–2017