Forstå ordsprogere i formel verifikation
Bevisere er et s
t v
rktøjer og teknikker, der bruges inden for formel verifikation til at bevise rigtigheden af software- og hardwaresystemer. Bevisere kan bruges til at verificere egenskaber såsom sikkerhed, livlighed og retf
rdighed af et system, og de kan anvendes på forskellige abstraktionsniveauer, fra kildekoden op til højniveaudesignet.
Der er flere typer af bevisere, herunder:
1. Modeltjek: Disse er automatiserede v
rktøjer, der bruger modelkontrolalgoritmer til at verificere et systems egenskaber mod en tidsm
ssig logisk formel. Eksempler på modelbrikker omfatter Spin, NuSMV og dReach.
2. Korrekturassistenter: Dette er v
rktøjer, der giver en ramme til at konstruere og kontrollere matematiske beviser. Eksempler på korrekturassistenter omfatter Coq, Isabelle og HOL Light.
3. Typesystemer: Dette er systemer, der tildeler typer til programudtryk baseret på deres struktur og adf
rd. Typesystemer kan bruges til at bevise rigtigheden af programmer ved at kontrollere, at de opfylder visse typebegr
nsninger. Eksempler på typesystemer omfatter den enkelt indtastede lambdaregning og Hindley-Milner-typesystemet.
4. Logik-baserede verifikationsv
rktøjer: Disse er v
rktøjer, der bruger logiske r
sonnementteknikker til at verificere et systems egenskaber. Eksempler på logikbaserede verifikationsv
rktøjer omfatter KeYlee-systemet og Vampire-systemet.
5. Symbolsk udførelsesbaserede verifikationsv
rktøjer: Disse er v
rktøjer, der bruger symbolske udførelsesteknikker til at udforske de mulige udførelsesstier for et program og verificere, at de opfylder visse egenskaber. Eksempler på symbolsk eksekveringsbaserede verifikationsv
rktøjer omfatter SymEX-v
rktøjet og Soot-v
rktøjet.
Provers kan bruges i en r
kke forskellige applikationer, herunder:
1. Formel verifikation af software- og hardwaresystemer: Provers kan bruges til at bevise rigtigheden af software- og hardwaresystemer i forhold til specifikke egenskaber eller krav.
2. Korrekturassistenter til matematiske beviser: Bevisere kan bruges som korrekturassistenter til at konstruere og kontrollere matematiske beviser inden for områder som algebra, geometri og logik.
3. Verifikation af programmeringssprog: Provers kan bruges til at verificere korrektheden af programmeringssprog i forhold til deres specifikation, herunder typesystemer, operationel semantik og andre formelle definitioner.
4. Formel verifikation af sikkerhedsprotokoller: Bevisere kan bruges til at verificere korrektheden af sikkerhedsprotokoller i forhold til specifikke egenskaber eller krav, såsom autentificering, fortrolighed og integritet.
5. Formel verifikation af egenskaber på systemniveau: Bevisere kan bruges til at verificere egenskaber på systemniveau såsom sikkerhed, livlighed og retf
rdighed af et system.



