Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 14

Formal Verification

Concepts to
execution-A brief
overview
Introduction & Agenda
 We will discuss
 Temporal Logic and it’s use in verification
 Static versus Dynamic Formal verification
 The REVIEW Of Properties & SVA
 Need For Formal Verification
 Qualifying Your IP
 The regions of evaluation
 Case Study
 What you will learn?
Temporal Logic
 Definition: It is a convenient formalism for verifying the properties of reactive
systems. Modalities in temporal logic are time abstract.
 Truth Changes over time , Not just when things are true and not just what is true

 Conceptual representation:
Let S be a sequence of states
 S[ 0 ]: first state; S[ j ]: jth state
 S[ j.. ] sequence starting from jth state
 S[ j..k ] sequence from j to k

 Linear Temporal Logic(LTL) : It is an infinite sequence of states where each point in


time has a unique successor based on a linear time perspective.
 Linear Temporal Property: It is a temporal logic formula that describes a set of
infinite sequences for which it is true
 Purpose: Translate the properties written in natural language into LTL using special
syntax and perform model checking.
LTL Operators
 LTL Formula is built upon:
 A finite set of atomic propositions: e.g. State label “a” ϵ AP in the transition system.
 Basic Logical Operators: ¬ (negation) , ∧ conjunction)
 Basic Temporal Operators: O (next) , U (until) , true , Eventual , and always (G)
 Three additional logical operators: ∨ (disjunction), →(implication),
↔(equivalence)
 By combining the temporal modalities ◊ and □, new temporal modalities are
obtained
LTL Satisfiability
Temporal Logic
 2 Main ways to represent temporal logic:
 LTL : Describes single possible time line. Tool available in SW
is SPIN. Already discussed , See example ahead.
 CTL(Computational Tree Logic): Branching Time -> Describes
all possible timelines. Here Tool available is SMV in SW
Domain
Example

 Automaton/machine produces state


sequence:
a b  abcabcabcabc…

 Sequence satisfies property:


c
 (a Þ b) and
 It’s always the case that a implies that
the next step will be b
 (a Þ ( a))
 It’s always the case that a implies that
the next step will eventually be an a.
CTL
 Most distributed, reactive systems are nondeterministic
 Cannot be represented by sequence of possible states or transitions
 Has a tree of possible computations
 Basic logic, then add in…
 Temporal expressions:
 Temporal operators are defined in pairs
 Path part:
A: means “all paths” (inevitably)
E: means “on some path” (possibly)
 Property part:
F : same as % For some
G : same as % Globally holds
X : same as % neXt
U : same as U
Sample expression forms:
AGp : On all paths, property p always holds
EGp : On some paths, property p always holds
AFp : On all paths, property p eventually holds
EFp : On some path, property p eventually holds
System satisfying EFp
System satisfying AGp
System satisfying AFp
Sample Specification Patterns

 Possible to get to started state, but ready does not hold


 EF(started) Ù (Ø ready))

 If a request occurs, then it will eventually be acknowledged


 AG (requested Þ AF acknowledged)

 Process is enabled infinitely often on every path


 AG (AF enabled)

 Whatever happens, a certain process will eventually be permanently deadlocked:


 AF (AG deadlocked)

 From any state, it is possible to get to a restart state


 AG (AF restart)
Tool Support

 Model checkers: check that system satisfies property


 Reachability analysis: describe paths of behavior of system
 Each tool uses different algorithms for optimization
purposes
 SPIN (Holzmann et al)
 SMV (Clarket et al)
 Nitpick (D. Jackson)
 COSPAN (Kurshan, mostly for HW)
 Verisoft
 FDR
 Etc.
Formal Verification
 Assertions and properties allow you to describe the behavior of a time
based system in a formal/rigorous manner that provides the
unambiguous and universal representation of the design’s intent.
Further , they can also be used to describe expected and prohibited
behavior using the concepts described earlier(TL).
 Static formal: An appropriate tool reads in the functional description of
the design (@RTL level of abstraction) and then exhaustively analyzes
the logic to ensure a particular condition never occur.
 Dynamic Formal: An appropriately augumented logic simulator will
sum up to a certain point , then pause, and then automatically invoke an
associated formal verification tool
 Properties can be associated with the design at any level , from
individual blocks , to interfaces linking blocks , to the entire system .
This leads to a very important point : Verification reuse.

You might also like