Formal model
Real {contracts,programs} are large and complex. They are written in an unsuitable language for formal representation, e.g. {English,Python}.
To make it easier to test/reason about {contracts,programs}, we can build a model in some formal language. This model is a simplification of the underlying {contract,program}.
“All models are wrong, some are useful".
Languages in which to build models about contracts
- Logics:
- Deontic logic
- Propositional dynamic logic
- Lee (1988) A logic model for electronic contracting
- Peyton Jones and Eber (2003) How to write a financial contract A combinator library in Haskell for representing Financial contract#.
- Milosevic et al. (2004) Business Contract Language “A BCL contract consists of a set of roles along with a set of policies […] The roles define the parties involved in a contract, and the policies define the obligations and rights agreed upon by the parties. […] Governatori and Milosevic [36] later seek to formalise BCL by mapping it to a fragment of deontic logic extended with contrary-to-duty obligations. “
- Prisacariu, Schneider (2009): Contract Language “a logic for expressing electronic contracts based on a combination of deontic, dynamic, and temporal logics. “
- Martínez et al. (2010): C-O diagrams
- Gulliksson, Camilleri (2016): Simplified Contract Language
- Haeusler et al. (2010) Intuitionistic ALC (iALC) Explanation: ALC is one of the core Description Logics. ALC is extended with intuitionistic logic, because “Classical negation forces the negation of a proposition to be part of a concept, but in the context of “the law” the negation of a valid law does not have to be valid either. Besides the ontological complexity of dealing with legal statements together with non-legal ones by defining concepts that are outside jurisprudence, Classical negation can lead to unnecessary incoherent situations […]”