An abstract domain encapsulates the basic abstract properties and transformers for analyzing program properties. Numerical abstract domains are related to properties of integer/float values computed by programs.

The primary application of abstract interpretation is to static
program analysis undrstood as a static approximation of the dynmic
properties of programs, as formalized by a collecting semantics.
A priori approximations are formalized by Galois connections and
numerous variants while on the fly approximations are formalized
by acceleration of the convergence of fixpoint computations
by widening/narrowing.

Code contracts are program specifications inlined in the code source (pre/post-conditions, class invariants, ...) that can be checked by abstract interpretation or even infered from the language and programmer assertions.

Program transformation is a syntactic approximation of a transformation of the semantics of the original program which can be formalized by abstract interpretation. This includes compiler optimization, partial evaluation, refactoring, etc.

Commercially available software to prove the absence of runtime errors in safety/mission-critical synchronous real-time control/command embedded software and experiences of use in an industrila context.