Difference between revisions of "Formal verification"

From Wiki @ Karl Jones dot com
Jump to: navigation, search
(Created page with "In the context of hardware and software systems, '''formal verification''' is the act of proving or disproving the correctness of intended algorithms underly...")
 
(See also)
 
(2 intermediate revisions by the same user not shown)
Line 14: Line 14:
 
Examples of mathematical objects often used to model systems include:  
 
Examples of mathematical objects often used to model systems include:  
  
* [[Finite state machine|Finite state machines]]
+
* [[Finite-state machine|Finite-state machines]]
 
* Labelled transition systems
 
* Labelled transition systems
 
* Petri nets
 
* Petri nets
Line 31: Line 31:
 
* [[Formal equivalence checking]]
 
* [[Formal equivalence checking]]
 
* [[Intelligent verification]]
 
* [[Intelligent verification]]
 +
* [[Language-theoretic security]]
 
* [[List of model checking tools]]
 
* [[List of model checking tools]]
 
* [[LURCH]]
 
* [[LURCH]]
Line 46: Line 47:
  
 
* [https://en.wikipedia.org/wiki/Formal_verification Formal verification] @ Wikipedia
 
* [https://en.wikipedia.org/wiki/Formal_verification Formal verification] @ Wikipedia
 +
* [https://www.quantamagazine.org/20160920-formal-verification-creates-hacker-proof-code/ Hacker-Proof Code Confirmed] - "Computer scientists can prove certain programs to be error-free with the same certainty that mathematicians prove theorems. The advances are being used to secure everything from unmanned drones to the internet."
  
  
 
[[Category:Software engineering]]
 
[[Category:Software engineering]]

Latest revision as of 07:41, 3 October 2016

In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics.

Description

Formal verification can be helpful in proving the correctness of systems such as:

  • Cryptographic protocols
  • Combinational circuits
  • Digital circuits with internal memory
  • Software expressed as source code.

The verification of these systems is done by providing a formal proof on an abstract mathematical model of the system, the correspondence between the mathematical model and the nature of the system being otherwise known by construction.

Examples of mathematical objects often used to model systems include:

  • Finite-state machines
  • Labelled transition systems
  • Petri nets
  • Vector addition systems
  • Timed automata
  • Hybrid automata
  • Process algebra
  • Formal semantics of programming languages such as operational semantics
  • Denotational semantics
  • Axiomatic semantics
  • Hoare logic

See also

External links

  • Formal verification @ Wikipedia
  • Hacker-Proof Code Confirmed - "Computer scientists can prove certain programs to be error-free with the same certainty that mathematicians prove theorems. The advances are being used to secure everything from unmanned drones to the internet."