Formal methods
In computer science, specifically software engineering and hardware engineering, formal methods are a particular kind of mathematically based techniques for the specification, development and verifica...
Formal methods - Wikipedia
Sneak circuit analysis
Sneak Peek of upcoming solution for Power Delivery Network analysis of Printed Circuit Boards.
Abstract data type
In computer science, an abstract data type (ADT) is a mathematical model for a certain class of data structures that have similar behaviour; or for certain data types of one or more programming langua...
Automated theorem proving
Automated theorem proving (also known as ATP or automated deduction) is a subfield of automated reasoning and mathematical logic dealing with proving mathematical theorems by computer programs. Autom...
Automated theorem proving - Wikipedia
Model checking
In computer science, model checking or property checking refers to the following problem:Given a model of a system, exhaustively and automatically check whether this model meets a given specification....
Model checking - Wikipedia
Model of computation
In computability theory and computational complexity theory, a model of computation is the definition of the set of allowable operations used in computation and their respective costs. It is used for ...
Program analysis
In computer science, program analysis is the process of automatically analyzing the behavior of computer programs regarding a property such as correctness, robustness, safety and liveness. Program ana...
Logic programming
Logic programming is a programming paradigm based on formal logic. A program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some proble...
Formal specification
In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze...
Turing machine
A Turing machine is a hypothetical device that manipulates symbols on a strip of tape according to a table of rules. Despite its simplicity, a Turing machine can be adapted to simulate the logic of an...
Turing machine - Wikipedia
Z notation
The Z notation /ˈzɛd/ is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems ...
Z notation - Wikipedia
Proof-carrying code
Proof-carrying code (PCC) is a software mechanism that allows a host system to verify properties about an application via a formal proof that accompanies the application's executable code. The host s...
Bisimulation
In theoretical computer science a bisimulation is a binary relation between state transition systems, associating systems that behave in the same way in the sense that one system simulates the other a...
Liskov substitution principle
Substitutability is a principle in object-oriented programming. It states that, in a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e., obje...
Undecidable problem
In computability theory and computational complexity theory, an undecidable problem is a decision problem for which it is known to be impossible to construct a single algorithm that always leads to a ...
Promela
PROMELA (Process or Protocol Meta Language) is a verification modeling language introduced by Gerard J. Holzmann. The language allows for the dynamic creation of concurrent processes to model, for exa...
Negation as failure
Negation as failure (NAF, for short) is a non-monotonic inference rule in logic programming, used to derive (i.e. that is assumed not to hold) from failure to derive . Note that can be different f...
B-Method
The B method is a method of software development based on B, a tool-supported formal method based around an abstract machine notation, used in the development of computer software. It was originally d...