FCL: A Formal Language for Writing Contracts

beSpacific 2017-10-16

Farmer W.M., Hu Q. (2018) FCL: A Formal Language for Writing Contracts. In: Rubin S., Bouabana-Tebibel T. (eds) Quality Software Through Reuse and Integration. FMI 2016, IRI 2016 2016. Advances in Intelligent Systems and Computing, vol 561. Springer, Cham

“A contract is an artifact that records an agreement made by the parties of the contract. Although contracts are considered to be legally binding and can be very complex, they are usually expressed in an informal language that does not have a precise semantics. As a result, it is often not clear what a contract is intended to say. This is particularly true for contracts, like financial derivatives, that express agreements that depend on certain things that can be observed over time such as actions taken of the parties, events that happen, and values (like a stock price) that fluctuate with respect to time. As the complexity of the world and human interaction grows, contracts are naturally becoming more complex. Continuing to write complex contracts in natural language is not sustainable if we want the contracts to be understandable and analyzable. A better approach is to write contracts in a formal language with a precise semantics. Contracts expressed in such a language have a mathematically precise meaning and can be manipulated by software. The formal language thus provides a basis for integrating formal methods into contracts. This paper outlines fcl, a formal language with a precise semantics for expressing general contracts that may depend on temporally based conditions. We present the syntax and semantics of fcl and give two detailed examples of contracts expressed in fcl. We also sketch a reasoning system for fcl. We argue that the language is more effective for writing and analyzing contracts than previously proposed formal contract languages.”