- Applied mathematics
- >
- Theoretical computer science
- >
- Mathematics of computing
- >
- Formal methods

- Fields of mathematics
- >
- Applied mathematics
- >
- Theoretical computer science
- >
- Formal methods

Loop variant

In computer science, a loop variant is a mathematical function defined on the state space of a computer program whose value is monotonically decreased with respect to a (strict) well-founded relation

Satisfiability modulo theories

In computer science and mathematical logic, satisfiability modulo theories (SMT) is the problem of determining whether a mathematical formula is satisfiable. It generalizes the Boolean satisfiability

Formal equivalence checking

Formal equivalence checking process is a part of electronic design automation (EDA), commonly used during the development of digital integrated circuits, to formally prove that two representations of

Production equipment control

Production equipment control involves production equipment that resides in the shop floor of a manufacturing company and its purpose is to produce goods of a wanted quality when provided with of a req

PlusCal

PlusCal (formerly called +CAL) is a formal specification language created by Leslie Lamport, which transpiles to TLA+. In contrast to TLA+'s action-oriented focus on distributed systems, PlusCal most

Lambda calculus

Lambda calculus (also written as λ-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution.

McCarthy 91 function

The McCarthy 91 function is a recursive function, defined by the computer scientist John McCarthy as a test case for formal verification within computer science. The McCarthy 91 function is defined as

State space enumeration

In computer science, state space enumeration are methods that consider each reachable program state to determine whether a program satisfies a given property. As programs increase in size and complexi

Formal verification

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 spe

Extended static checking

Extended static checking (ESC) is a collective name in computer science for a range of techniques for statically checking the correctness of various program constraints. ESC can be thought of as an ex

Retrenchment (computing)

Retrenchment is a technique associated with Formal Methods that was introduced to address some of the perceived limitations of formal, model based refinement, for situations in which refinement might

Language Of Temporal Ordering Specification

In computer science Language Of Temporal Ordering Specification (LOTOS) is a formal specification language based on temporal ordering of events. LOTOS is used for communications protocol specification

Runtime verification

Runtime verification is a computing system analysis and execution approach based on extracting information from a running system and using it to detect and possibly react to observed behaviors satisfy

Process qualification

Process qualification is the qualification of manufacturing and production processes to confirm they are able to operate at a certain standard during sustained commercial manufacturing. Data covering

Software verification and validation

In software project management, software testing, and software engineering, verification and validation (V&V) is the process of checking that a software system meets specifications and requirements so

Safety-critical system

A safety-critical system (SCS) or life-critical system is a system whose failure or malfunction may result in one (or more) of the following outcomes:
* death or serious injury to people
* loss or s

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 sy

Static timing analysis

Static timing analysis (STA) is a simulation method of computing the expected timing of a synchronous digital circuit without requiring a simulation of the full circuit. High-performance integrated ci

Boolean satisfiability problem

In logic and computer science, the Boolean satisfiability problem (sometimes called propositional satisfiability problem and abbreviated SATISFIABILITY, SAT or B-SAT) is the problem of determining if

Turing machine

A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is

Event-B

No description available.

Regulated rewriting

Regulated rewriting is a specific area of formal languages studying grammatical systems which are able to take some kind of control over the production applied in a derivation step. For this reason, t

And-inverter graph

An and-inverter graph (AIG) is a directed, acyclic graph that represents a structural implementation of the logical functionality of a circuit or network. An AIG consists of two-input nodes representi

SAT solver

In computer science and formal methods, a SAT solver is a computer program which aims to solve the Boolean satisfiability problem. On input a formula over Boolean variables, such as "(x or y) and (x o

Business process validation

Business Process Validation (BPV) is the act of verifying that a set of end-to-end business processes function as intended. If there are problems in one or more business applications that support a bu

B-Method

The B method is a method of software development based on B, a tool-supported formal method based on an abstract machine notation, used in the development of computer software.

UML state machine

UML state machine, also known as UML statechart, is an extension of the mathematical concept of a finite automaton in computer science applications as expressed in the Unified Modeling Language (UML)

Syntactic methods

In software engineering, syntactic methods are techniques for developing correct software programs. The techniques attempt to detect, and thus prevent, certain kinds of defects (bugs) by examining the

Assertion (software development)

In computer programming, specifically when using the imperative programming paradigm, an assertion is a predicate (a Boolean-valued function over the state space, usually expressed as a logical propos

Applicative universal grammar

Applicative universal grammar, or AUG, is a universal semantic metalanguage intended for studying the semantic processes in particular languages. This is a linguistic theory that views the formation o

TLA+

TLA+ is a formal specification language developed by Leslie Lamport. It is used for designing, modelling, documentation, and verification of programs, especially concurrent systems and distributed sys

Algorithm characterizations

Algorithm characterizations are attempts to formalize the word algorithm. Algorithm does not have a generally accepted formal definition. Researchers are actively working on this problem. This article

High- and low-level

High-level and low-level, as technical terms, are used to classify, describe and point to specific goals of a systematic operation; and are applied in a wide range of contexts, such as, for instance,

Stuttering equivalence

In theoretical computer science, stuttering equivalence, a relation written as , can be seen as a partitioning of path and into blocks, so that states in the block of one path are labeled the same as

Critical process parameters

Critical process parameters (CPP) in pharmaceutical manufacturing are key variables affecting the production process. CPPs are attributes that are monitored to detect deviations in standardized produc

Homotopy type theory

In mathematical logic and computer science, homotopy type theory (HoTT /hɒt/) refers to various lines of development of intuitionistic type theory, based on the interpretation of types as objects to w

International Conference on Software Engineering and Formal Methods

The International Conference on Software Engineering and Formal Methods (SEFM) is an international academic conference in the field of software engineering.

DREAM (software)

The Distributed Real-time Embedded Analysis Method (DREAM) is a platform-independent open-source tool for the verification and analysis of distributed real-time and embedded (DRE) systems which focuse

Verification and validation of computer simulation models

Verification and validation of computer simulation models is conducted during the development of a simulation model with the ultimate goal of producing an accurate and credible model. "Simulation mode

Binary moment diagram

A binary moment diagram (BMD) is a generalization of the binary decision diagram (BDD) to linear functions over domains such as booleans (like BDDs), but also to integers or to real numbers. They can

Design space verification

Design space verification is defined by the European Medicines Agency as the verification that material inputs and processes are able to scale to commercial manufacturing levels while maintaining a st

Process performance qualification protocol

Process performance qualification protocol is a component of process validation: process qualification. This step is vital in maintaining ongoing production quality by recording and having available f

Statistical static timing analysis

Conventional static timing analysis (STA) has been a stock analysis algorithm for the design of digital circuits over the last 30 years. However, in recent years the increased variation in semiconduct

Strict function

In computer science and computer programming, a function f is said to be strict if, when applied to a non-terminating expression, it also fails to terminate. A strict function in the denotational sema

Vienna Development Method

The Vienna Development Method (VDM) is one of the longest-established formal methods for the development of computer-based systems. Originating in work done at the IBM Laboratory Vienna in the 1970s,

Abstract machine notation

No description available.

Hindley–Milner type system

A Hindley–Milner (HM) type system is a classical type system for the lambda calculus with parametric polymorphism. It is also known as Damas–Milner or Damas–Hindley–Milner. It was first described by J

Predicate transformer semantics

Predicate transformer semantics were introduced by Edsger Dijkstra in his seminal paper "Guarded commands, nondeterminacy and formal derivation of programs". They define the semantics of an imperative

Categorical set theory

Categorical set theory is any one of several versions of set theory developed from or treated in the context of mathematical category theory.

Direct function

A direct function (dfn, pronounced "dee fun") is an alternative way to define a function and operator (a higher-order function) in the programming language APL. A direct operator can also be called a

Dependability

In systems engineering, dependability is a measure of a system's availability, reliability, maintainability, and in some cases, other characteristics such as durability, safety and security. In real-t

Extended finite-state machine

In a conventional finite state machine, the transition is associated with a set of input Boolean conditions and a set of output Boolean functions. In an extended finite state machine (EFSM) model, the

Precondition

In computer programming, a precondition is a condition or predicate that must always be true just prior to the execution of some section of code or before an operation in a formal specification. If a

Postcondition

In computer programming, a postcondition is a condition or predicate that must always be true just after the execution of some section of code or after an operation in a formal specification. Postcond

Set theory

Set theory is the branch of mathematical logic that studies sets, which can be informally described as collections of objects. Although objects of any kind can be collected into a set, set theory, as

Algebraic specification

Algebraic specification is a software engineering technique for formally specifying system behavior. It was a very active subject of computer science research around 1980.

Semantics (computer science)

In programming language theory, semantics is the rigorous mathematical study of the meaning of programming languages. Semantics assigns computational meaning to valid strings in a programming language

Knowledge Based Software Assistant

The Knowledge Based Software Assistant (KBSA) was a research program funded by the United States Air Force. The goal of the program was to apply concepts from artificial intelligence to the problem of

Bigraph

A bigraph can be modelled as the superposition of a graph (the link graph) and a set of trees (the place graph). Each node of the bigraph is part of a graph and also part of some tree that describes h

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. Automa

Logic in computer science

Logic in computer science covers the overlap between the field of logic and that of computer science. The topic can essentially be divided into three main areas:
* Theoretical foundations and analysi

SIGNAL (programming language)

SIGNAL is a programming language based on synchronized data-flow (flows + synchronization): a process is a set of equations on elementary flows describing both data and control. The SIGNAL formal mode

Model-based specification

Model-based specification is an approach to formal specification where the system specification is expressed as a system state model. This state model is constructed using well-understood mathematical

Computer-assisted proof

A computer-assisted proof is a mathematical proof that has been at least partially generated by computer. Most computer-aided proofs to date have been implementations of large proofs-by-exhaustion of

Gödel logic

In mathematical logic, a first-order Gödel logic is a member of a family of finite- or infinite-valued logics in which the sets of truth values V are closed subsets of the interval [0,1] containing bo

Predicative programming

Predicative programming is the original name of a formal method for program specification and refinement, more recently called a Practical Theory of Programming, invented by Eric Hehner. The central i

QED manifesto

The QED manifesto was a proposal for a computer-based database of all mathematical knowledge, strictly formalized and with all proofs having been checked automatically. (Q.E.D. means quod erat demonst

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

SLAM project

The SLAM project, which was started in 1999 by and of Microsoft Research, aimed at verifying software safety properties using model checking techniques. It was implemented in OCaml, and has been used

Abstract state machine

In computer science, an abstract state machine (ASM) is a state machine operating on states that are arbitrary data structures (structure in the sense of mathematical logic, that is a nonempty set tog

Loop invariant

In computer science, a loop invariant is a property of a program loop that is true before (and after) each iteration. It is a logical assertion, sometimes checked within the code by an assertion call.

Dynamic timing verification

Dynamic timing verification refers to verifying that an ASIC design is fast enough to run without errors at the targeted clock rate. This is accomplished by simulating the design files used to synthes

Rational Unified Process

The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete presc

Invariant (computer science)

No description available.

Construction and Analysis of Distributed Processes

CADP (Construction and Analysis of Distributed Processes) is a toolbox for the design of communication protocols and distributed systems. CADP is developed by the CONVECS team (formerly by the VASY te

Verification condition generator

A verification condition generator is a common sub-component of an automated program verifier that synthesizes formal verification conditions by analyzing a program's source code using a method based

Symbolic simulation

In computer science, a simulation is a computation of the execution of some appropriately modelled state-transition system. Typically this process models the complete state of the system at individual

E-LOTOS

In computer science E-LOTOS (Enhanced LOTOS) is a formal specification language designed between 1993 and 1999, and standardized by ISO in 2001. E-LOTOS was initially intended to be a revision of the

Concurrency semantics

In computer science, concurrency semantics is a way to give meaning to concurrent systems in a mathematically rigorous way. Concurrency semantics is often based on mathematical theories of concurrency

Provably Secure Operating System

No description available.

CompCert

CompCert is a formally verified optimizing compiler for a large subset of the C99 programming language (known as Clight) which currently targets PowerPC, ARM, RISC-V, x86 and x86-64 architectures. Thi

Oracle Unified Method

The Oracle Unified Method (OUM), first released by Oracle Corporation in 2006, is a with roots in the Unified Process (UP). OUM is business-process and use-case driven and includes support for the Uni

ABZ Conference

No description available.

Asynchronous system

The primary focus of this article is asynchronous control in digital electronic systems. In a synchronous system, operations (instructions, calculations, logic, etc.) are coordinated by one, or more,

Bisimulation

In theoretical computer science a bisimulation is a binary relation between state transition systems, associating systems that behave in the same way in that one system simulates the other and vice ve

Formal methods

In computer science, formal methods are mathematically rigorous techniques for the specification, development, and verification of software and hardware systems. The use of formal methods for software

Interference freedom

In computer science, interference freedom is a technique for proving partial correctness ofconcurrent programs with shared variables. Hoare logic had been introduced earlierto prove correctness of seq

Liskov substitution principle

The Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called strong behavioral subtyping, that was initially introduced by Barbara Liskov in a 1988 conference key

Continued process verification

Continued process verification (CPV) is the collection and analysis of end-to-end production components and processes data to ensure product outputs are within predetermined quality limits. In 2011 th

RCOS (computer sciences)

rCOS stands for refinement of object and component systems. It is a formal method providing component-based model-driven software development.

Algebraic semantics (computer science)

In computer science, algebraic semantics is a form of axiomatic semantics based on algebraic laws for describing and reasoning about program specifications in a formal manner.

Lustre (programming language)

Lustre is a formally defined, declarative, and synchronous dataflow programming language for programming reactive systems. It began as a research project in the early 1980s. A formal presentation of t

Process validation

Process validation is the analysis of data gathered throughout the design and manufacturing of a product in order to confirm that the process can reliably output products of a determined standard. Reg

Refinement calculus

The refinement calculus is a formalized approach to stepwise refinement for program construction. The required behaviour of the final executable program is specified as an abstract and perhaps non-exe

Robbins algebra

In abstract algebra, a Robbins algebra is an algebra containing a single binary operation, usually denoted by , and a single unary operation usually denoted by . These operations satisfy the following

POPLmark challenge

In programming language theory, the POPLmark challenge (from "Principles of Programming Languages benchmark", formerly Mechanized Metatheory for the Masses!) (Aydemir, 2005) is a set of benchmarks des

Mondex

Mondex was a smart card electronic cash system, implemented as a stored-value card and owned by Mastercard. Pioneered by two bankers from NatWest in 1990, it was spun-off to a separate consortium late

Invariant-based programming

Invariant-based programming is a programming methodology where specifications and invariants are written before the actual program statements. Writing down the invariants during the programming proces

Retiming

Retiming is the technique of moving the structural location of latches or registers in a digital circuit to improve its performance, area, and/or power characteristics in such a way that preserves its

© 2023 Useful Links.