0% found this document useful (0 votes)
22 views4 pages

Formal Software Verification: Model Checking

Formal verification of software using model checking has gained popularity since a famous bug in Intel chips cost the company $475 million in 1994. While formal verification is common for hardware, verifying software correctness is more challenging due to differences like software's infinite states and size. Model checking and theorem proving have been applied to software verification with some progress but many challenges remain. This document defines software correctness verification as formulating properties of a program to check using logics, with sample properties expressed as predicates over variable values.

Uploaded by

AhmadRasmi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views4 pages

Formal Software Verification: Model Checking

Formal verification of software using model checking has gained popularity since a famous bug in Intel chips cost the company $475 million in 1994. While formal verification is common for hardware, verifying software correctness is more challenging due to differences like software's infinite states and size. Model checking and theorem proving have been applied to software verification with some progress but many challenges remain. This document defines software correctness verification as formulating properties of a program to check using logics, with sample properties expressed as predicates over variable values.

Uploaded by

AhmadRasmi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Formal Software

Verification: Model
Checking
report

Software verification
Formal verification of hardware and software systems has gained
popularity in industry
since the advent of the famous Pentium bug in 1994, which
caused Intel to recall
faulty chips and take a loss of $475 million [1]. Since this event,
formal verification of
hardware systems has been commonplace using mostly model
checkers but also using
theorem provers [2], [3]. The benefits reaped in the hardware sector
has led the software
sector to consider whether similar benefits could be achieved in the
context of program
correctness. Proofs of correctness about computer programs have
been around since
the early days of computer science, but academic developments
were routinely ignored

by industry citing advances in research as impractical [4]. While


there are drastic differences between the properties of software and
the properties of hardware, namely the strict structure of hardware,
the inherently finite state of hardware, and the restricted size of
hardware [5]. While there are doubts about whether the anecdotal
success of formal verification of industrial hardware can be replicated
in the software sector, some progress has been made though
numerous challenges still remain [2].
Before embarking on the description of theorem proving and model
checking approaches in the context of verifying program correctness,
the correctness problem of software is formally defined. Verifying the
correctness of a program involves formulating a property to be
verified using a suitable logic such as first order logic or temporal logic
[6]. Sample properties typically take the form of a predicate over
variable values.
For example, a property stipulating that a variable x be positive and
that a variable y be strictly smaller than x can be formulated in the
following way:

Verification

You might also like