The process of checking whether system design and the underlying algorithms are correct and satisfy the given requirements and properties. It is based on the formal methods of mathematics and is an integral part of IOG research. The core parts of Cardano are written in Haskell.