Boa noite amigos!
No ultimo versículo vimos a nona parte da tradução de “A Formal Language for Analyzing Contracts”. Hoje a décima.
Mais Alguns Exemplos Avançados
Nesta seção, examinaremos maneiras de construir acordos multipartidários, distinguir eventos ambientais de lançados, e examinar uma série de outros recursos mais avançados ou maneiras de usar nossa linguagem.
Concluiremos o ciclo de vida da opção americana que elaboramos acima “escrevendo” a opção – criando-a a partir de uma security subjacente rightA e vendendo-a por rightX. Aqui, o Titular (a mesma parte que o Titular acima, neste caso a pessoa que comprará a opção por escrito) primeiro verifica que a Contraparte realmente detém a security subjacente (rightA) junto à Corretora. O Titular confia no Corretor para garantir que a Contraparte continue mantendo o valor mobiliário até que a opção seja exercida ou expirada. O contrato entre o Corretor e o Titular é escrowRight ().)
Como a Contraparte, o criador da opção, não está pagando nada antecipadamente por uma opção à rightB, esse direito não precisa ser garantido.
escrowRight(right, escrow, newHolder, currentHolder,
newHolderReleaseEvents, currentHolderReleaseEvents) =
to escrow right
then
when (holderReleaseEvents)
to rightHolder right then terminate
when (counterpartyReleaseEvents)
to currentHolder right then terminate
writeCallOptionAmerican(rightA, rightB, rightX, time) =
escrowRight(rightA, Holder, Counterparty,
(optionExercised), (optionExpired))
then
to Counterparty callOptionAmercian(rightA, rightB, time)
with to Holder rightX
Agora, reformulamos a opção em si para tirar proveito do escrow [garantia]. rightA é transferido para o Titular pelo throw [lance] após o exercício ou de volta à Contraparte se a opção expirar.
callOptionAmerican(escrowRight, rightB, time) =
when beforeTime(time)
when choiceOf(Holder)
{ throw optionExercised at escrowRight }
with to Counterparty rightB
then terminate
when afterTime(time)
throw optionExpired at escrowRight
then terminate
Podemos pensar nos eventos como sendo de dois tipos. Os primeiros, eventos ambientais, ocorrem espontaneamente no ambiente ou são gerados por uma entidade externa à nossa especificação, como um usuário ou um cronograma. O segundo, eventos lançados, são eventos que lançamos explicitamente como acima.
Neste manual, expressei cláusulas contratuais em termos de direitos. Freqüentemente, a linguagem do contrato é expressa em termos de obrigações, o que pode ser feito como uma imagem espelhada –to Holder right é o mesmo que from Counterparty obligation e vice-versa. Use from para distinguir uma obrigação.
Fim da décima parte, no próximo versículo vemos a parte 11. Abraços!