Разумевање доказивача у формалној верификацији
Провери су скуп алата и техника који се користе у области формалне верификације за доказивање исправности софтверских и хардверских система. Провери се могу користити за верификацију својстава као што су безбедност, животност и праведност система, и могу се применити на различитим нивоима апстракције, од изворног кода до дизајна високог нивоа.ӕӕПостоји неколико типова провера, укључујући: ӕӕ1. Контролери модела: Ово су аутоматизовани алати који користе алгоритме за проверу модела за проверу својстава система у односу на временску логичку формулу. Примери контролора модела укључују Спин, НуСМВ и дРеацх.ӕ2. Помоћници за доказ: Ово су алати који пружају оквир за конструисање и проверу математичких доказа. Примери асистената за доказ су Цок, Исабелле и ХОЛ Лигхт.ӕ3. Системи типова: То су системи који додељују типове програмским изразима на основу њихове структуре и понашања. Системи типова се могу користити за доказивање исправности програма провером да ли задовољавају одређена ограничења типа. Примери система типова укључују једноставно откуцани ламбда рачун и Хиндли-Милнеров систем типова.ӕ4. Алати за верификацију засновани на логици: Ово су алати који користе технике логичког закључивања за верификацију својстава система. Примери алата за верификацију заснованих на логици укључују КеИлее систем и Вампире систем.ӕ5. Алати за верификацију засновани на симболичком извршавању: Ово су алати који користе технике симболичког извршавања да би истражили могуће путање извршења програма и потврдили да они задовољавају одређена својства. Примери алата за верификацију заснованих на симболичком извршењу укључују СимЕКС алатку и алатку Соот.ӕӕПровери се могу користити у разним апликацијама, укључујући:ӕӕ1. Формална верификација софтверских и хардверских система: Доказивачи се могу користити за доказивање исправности софтверских и хардверских система у односу на специфичне особине или захтеве.ӕ2. Доказни помоћници за математичке доказе: Доказивачи се могу користити као помоћници за доказивање за конструисање и проверу математичких доказа у областима као што су алгебра, геометрија и логика.ӕ3. Верификација програмских језика: Доказивачи се могу користити за проверу исправности програмских језика у односу на њихове спецификације, укључујући системе типова, оперативну семантику и друге формалне дефиниције.ӕ4. Формална верификација безбедносних протокола: Доказивачи се могу користити за проверу исправности безбедносних протокола у односу на одређена својства или захтеве, као што су аутентификација, поверљивост и интегритет.ӕ5. Формална верификација својстава на нивоу система: Доказивачи се могу користити за верификацију својстава на нивоу система као што су безбедност, животност и праведност система.



