Concepts inUsing SMT solvers to verify high-integrity programs
Satisfiability Modulo Theories
In computer science and mathematical logic, the Satisfiability Modulo Theories (SMT) problem is a decision problem for logical formulas with respect to combinations of background theories expressed in classical first-order logic with equality. Examples of theories typically used in computer science are the theory of real numbers, the theory of integers, and the theories of various data structures such as lists, arrays, bit vectors and so on.
more from Wikipedia
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 specification or property, using formal methods of mathematics . Complete formal verification is the only known way to guarantee that a system is free of programming errors. “ ” From abstract of paper presented to ACM symposium
more from Wikipedia
Arithmetic
Arithmetic or arithmetics is the oldest and most elementary branch of mathematics, used by almost everyone, for tasks ranging from simple day-to-day counting to advanced science and business calculations. It involves the study of quantity, especially as the result of operations that combine numbers. In common usage, it refers to the simpler properties when using the traditional operations of addition, subtraction, multiplication and division with smaller values of numbers.
more from Wikipedia
Axiom
An axiom is a premise or starting point of reasoning. As classically conceived, an axiom is a premise so evident as to be accepted as true without controversy. The word comes from the Greek ἀξίωμα 'that which is thought worthy or fit,' or 'that which commends itself as evident. ' As used in modern logic, an axiom is simply a premise or starting point for reasoning, and equivalent to what Aristotle calls a definition. Axioms define and delimit the realm of analysis.
more from Wikipedia
Loop invariant
In computer science, a loop invariant is an invariant used to prove properties of loops. Informally, a loop invariant is a statement of the conditions that should be true on entry into a loop and that are guaranteed to remain true on every iteration of the loop. This means that on exit from the loop both the loop invariant and the loop termination condition can be guaranteed.
more from Wikipedia
Altran Praxis
Altran Praxis (formerly known as Praxis High Integrity Systems and Praxis Critical Systems) is a British software house that specialises in critical systems. They are based in Manvers Street, Bath, England, close to Bath Spa railway station, and also have offices in London, Loughborough, Paris, Sophia Antipolis, and Bangalore. The company Praxis Systems Limited was founded by Martyn Thomas and David Bean in 1983. It was incorporated on June 1, 1983 and commenced business on July 1, 1983.
more from Wikipedia
Division (mathematics)
In mathematics, especially in elementary arithmetic, division (÷) is an arithmetic operation. Specifically, if b times c equals a, written: where b is not zero, then a divided by b equals c, written: a ÷ b = c For instance, 6 ÷ 3 = 2 since 6 = 3 * 2 In the expression a ÷ b = c, a is called the dividend, b the divisor and c the quotient. Conceptually, division describes two distinct but related settings. Partitioning involves taking a set of size a and forming b groups that are equal in size.
more from Wikipedia
Ada (programming language)
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages. It has strong built-in language support for explicit concurrency, offering tasks, synchronous message passing (via guarded task entries), protected objects (a monitor-like construct with additional guards as in conditional critical regions), and nondeterminism (via select statements).
more from Wikipedia