Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI 10. Techniky formální verifikace a validace 1
Simulace není jediný prostředek zadání (specifikace) část návrhového postupu syntetický krok report verifikace report validace bezrozpornost úplnost bezpečnost živost řešení (implementace) report verifikace bezpečnost živost 2
Problémy simulace Kvalita stimulů rozhoduje ruční nebo náhodné generování srovnání neúplné (různé simulační modely) úplné pokrytí není možné dosáhnout Velikost systémů se zvětšuje počet stavů roste exponenciálně s počtem klopných obvodů proudové a paralelní zpracování interakce mezi funkcemi velké týmy 3
Automatická syntéza Correctness by design specifikace správně program správně => výsledek správně vstupní specifikace nutno validovat pochopení vstupních specifikací syntézními nástroji se v praxi liší pracovní postup není možno omezit na automatické nástroje 4
Formální verifikace a validace má vlastnosti matematického důkazu platí pro všechny přípustné vstupní hodnoty nevyžaduje generování stimulů vyžaduje formální popis specifikace (zadání) přípustných vstupů implementace (řešení) příp. vlastností k ověření Formální popis: má jednoznačně definovaný význam (sémantiku), což umožňuje použít matematický aparát 5
Typické ověřované vlastnosti Invarianty, například bezpečnost (nestane se nic špatného): jestliže procesy A 1 až A n žádají o vstup do kritické sekce, jen jeden z nich vstoupí živost (něco dobrého nastane): jestliže procesy A 1 až A n žádají o vstup do kritické sekce, alespoň jeden z nich vstoupí do časového limitu Funkce zadání může být vlastností 6
Základní strategie Kontrola zadaných vlastností (kontrola modelu) důkaz, že daná vlastnost je splněna pro všechny přípustné vstupy formálně: daný popis (zadání, řešení) je modelem zadané vlastnosti Důkaz vět žádaný vztah zadání a řešení jako věta (teorém) matematické logiky Kontrola ekvivalence zadání a řešení ekvivalence automatů ekvivalence funkcionálních popisů verfikace validace verfikace verfikace 7
Kontrola modelu Kontrola zadaných vlastností (kontrola modelu) důkaz, že daná vlastnost je splněna pro všechny přípustné vstupy formálně: daný popis (zadání, řešení) je modelem zadané vlastnosti Důkaz vět žádaný vztah zadání a řešení jako věta (teorém) matematické logiky Kontrola ekvivalence zadání a řešení ekvivalence automatů ekvivalence funkcionálních popisů verfikace validace verfikace verfikace 8
Matematická logika a modely Formální jazyk: množina všech správně utvořených formulí vytvářecí pravidla množina symbolů množina všech správně utvořených formulí predikátové logiky konstrukce booleovského výrazu aplikace funkce kvantifikace formule spočetná množina identifikátorů konstant, proměnných a funkcí booleovské operátory kvantifikátory 9
Matematická logika a modely Formální systém: formální jazyk množina axiomatických formulí inferenční (odvozovací) pravidla důkaz nebere v úvahu význam symbolů a formulí axiom formule formule dokazovaná formule inferenční pravidlo inferenční pravidlo inferenční pravidlo 10
Modelování Formální systém význam symbolů Doména ohodnocení proměnných Ohodnocení proměnných, pro které formule Formule je pravdivá, true false je modelem této formule Teorie (množina formulí) Model teorie 11
Modelování - příklad Formální systém y i je true, právě když Y[i] == 'H', pro i=0..3 Automat: stavové proměnné Y[0:3] 1 0 0 0 Teorie: y 1 +y 2 +y 3 +y 4 y i true 0 1 0 0 0 0 1 0 0 0 0 1 automat je modelem teorie 12
Základní požadavky na logický aparát Bezespornost každá dokazatelná věta (formule) je pravdivá Úplnost každou pravdivou větu je možno zapsat Rozhodnutelnost o pravdivosti každé věty je možno rozhodnout Důsledek nerozhodnutelnosti: dokazovací algoritmus se nikdy nezastaví 13
Praktické požadavky na logický aparát Expresivita je možno vyjádřit všechny vlastnosti hardware podstatné pro korektní funkci (např. prahové jevy na úrovni tranzistorů?) je možno vyjádřit všechny časové požadavky (spojitý vs. diskrétní čas) Flexibilita kompozitní důkazy: důkaz celku syntakticky sestaven z důkazů částí hierarchické důkazy induktivní důkazy: schopnost dokázat moduly parametrizované např. šířkou dat 14
Požadavky na logický aparát dokončení Automatizovatelnost automatický důkaz skryje před uživatelem použitý aparát poloautomatické důkazy vyžadují specializované pracovníky Každá trochu slušně expresivní logika je nerozhodnutelná volně podle Gödela, 1931 Precizní modely, ale nerozhodnutelnou logiku nebo omezené modely, výpočetně vhodnou logiku? 15
Temporální logiky nástroj k vyjádření času obvyklé operátory: časové operátory: vztahují formuli k časovému intervalu časové kvantifikátory: vyjadřují nutnost nebo možnost ve vztahu k času čas spojitý diskrétní: existuje pojem příště 16
Linear Time Logic diskrétní čas časové okamžiky úplně uspořádány (osa) operátory Xφ v dalším kroku bude platit φ Gφ - vždycky (globálně) bude platit φ Fφ někdy v budoucnosti bude platit φ ψ Uφ ψ musí platit nejméně dokud nenastane φ ψbφ - φ musí platit do času, kdy ψ bude poprvé platit (včetně) 17
Computational Tree Logic diskrétní časové okamžiky uspořádány do stromu operátory Xφ v dalším kroku bude platit φ Gφ - vždycky (globálně) bude platit φ Fφ někdy v budoucnosti bude platit φ φ U ψ φ musí platit alespoň do času, kdy nastane ψ φ W ψ - ψ musí platit pokud nenastane ψ kvantifikátory A φ φ bude platit ve všech větvích F φ φ bude platit alespoň v jedné větvi 18
Explicitní kontrola modelu hardware (struktura nebo chování) automat graf přechodů (reprezentace stromu všech výpočetních posloupností) kontrola modelu OK/protipříklad kontrola pro všechny stavy n bitů 2 n stavů vlastnost typicky formule časované logiky 19
Symbolická kontrola modelu hardware (struktura nebo chování) vlastnost automat ROBDD přechodové funkce ROBDD kontroly kontrola modelu OK/protipříklad 20
Důkaz vět Kontrola zadaných vlastností (kontrola modelu) důkaz, že daná vlastnost je splněna pro všechny přípustné vstupy formálně: daný popis (zadání, řešení) je modelem zadané vlastnosti Důkaz vět žádaný vztah zadání a řešení jako věta (teorém) matematické logiky Kontrola ekvivalence zadání a řešení ekvivalence automatů ekvivalence funkcionálních popisů verfikace validace verfikace verfikace 21
Řešení splňuje zadání? Řešení je ekvivalentní zadání Impl Spec Řešení implikuje zadání Impl Spec Řešení je modelem zadání Impl = Spec 22
Konstrukce a kontrola důkazu axiom formule axiom formule formule formule inferenční pravidla inferenční pravidla dokazovaná formule cesta od axiomů k dokazované formuli známa: kontrola důkazu (syntaktická manipulace) cesta není známa: konstrukce důkazu (kombinatorický problém) 23
Kontrola modelu vs. dokazování vět plně automatizované postupy volba vlastností kritická pro praktické použití poskytne protipříklad možnost postupného zjemňování obtížně automatizovatelné úplný důkaz možnost hierarchických a kompozitních důkazů 24
Kontrola ekvivalence Kontrola zadaných vlastností (kontrola modelu) důkaz, že daná vlastnost je splněna pro všechny přípustné vstupy formálně: daný popis (zadání, řešení) je modelem zadané vlastnosti Důkaz vět žádaný vztah zadání a řešení jako věta (teorém) matematické logiky Kontrola ekvivalence zadání a řešení ekvivalence automatů ekvivalence funkcionálních popisů verfikace validace verfikace verfikace 25
Kontrola ekvivalence původní popis popis popis popis transformační pravidla transformační pravidla dokazovaný popis 26