Publicidade

O Evangelho de Satoshi Nakamoto – Cap. 33 vers. 3

Por Leonardo Broering Jahn

Boa noite irmãos!

No versículo anterior: a segunda parte da tradução de “A Formal Language for Analyzing Contracts”. No de hoje a terceira.

CONTINUA APÓS A PUBLICIDADE

Uma sentença then nos permite avançar passo a passo. Se tivéssemos duas cláusulas escritas assim:

to Holder right1
also to Holder right2

CONTINUA APÓS A PUBLICIDADE

Elas poderiam ser executados em qualquer ordem – right2 pode ser executado primeiro, ou right1 pode ser, ou (provavelmente) o desempenho em ambos pode prosseguir no mesmo tempo. Várias instruções when aninhadas juntas no mesmo nível também têm also implícita, pois podem ser acionadas em qualquer ordem.

Visualize um duende dançarino que segue o aninhamento de cláusulas à medida que são executadas e de eventos à medida que são capturados. (Os programadores chamam esse elfo dançarino pelo nome chato de “ponteiro de instruções”). Pode haver mais de um elfo dançarino se houver um also ou mais de um quando a sentença for acionada enquanto outra estiver ativa, mas geralmente precisamos pensar apenas em um de cada vez. 

Se desejarmos adicionar a restrição de que right2 não pode ser executado até que right1 tenha sido, usamos then:

CONTINUA APÓS A PUBLICIDADE

to Holder right1
then to Holder right2

Os programadores tradicionais ficarão extremamente tentados a preencher seus contratos com as declarações then, imitando o estilo da programação procedural. Não fique! Aqueles com experiência em redação de contratos sabem que, em alguns casos, essa restrição é claramente apropriada e, em alguns casos, claramente não é, e é importante ser explícito ao adicionar restrições. Portanto, a seguinte sentença é ilegal e será rejeitada pelo computador e por qualquer redator que trabalhe sem um computador: 

# Do not do this! [não faça isso]
    to Holder right1
    to Holder right2

CONTINUA APÓS A PUBLICIDADE

Finalmente, já vimos esse tipo de cláusula:

to Holder right1
with to Holder right2

Isso significa que right1 e right2 devem ser executados simultaneamente – e ambos devem ser executados ou nenhum deles. No jargão dos cientistas da computação, deve ser uma transação “atômica”.

CONTINUA APÓS A PUBLICIDADE

O then terminate no final da cláusula nomeada garante que todos os direitos e obrigações sob o contrato sejam rescindidos após a execução. Não é acionado até que o corpo de uma linha do contrato futuro seja concluído. Bem como quaisquer cláusulas subordinadas pendentes com seus direitos e obrigações. Essa cláusula está implícita no final de cada cláusula nomeada, mas, desta vez, a tornamos explícita. Essa cláusula é frequentemente usada explicitamente quando o redator deseja garantir o término adequado de cláusulas não nomeadas aninhadas em uma cláusula nomeada.

Vamos agora prosseguir com o contrato futuro passo a passo, à medida que as cláusulas são ativadas e executadas. Uma fonte normal indica que a cláusula está inativa. Uma fonte em negrito indica um estado ativo – as cláusulas estão sendo executadas.

Quando as partes se comprometem com o contrato, suas primeiras cláusulas (as cláusulas no nível mais alto de indentação) são acordadas. Em nosso contrato futuro, temos apenas uma dessas cláusulas e, portanto, o when (mas não as cláusulas aninhadas abaixo) entram em um estado ativo, aguardando o evento withinPeriod ():

when withinPeriod(p)
    to Holder rightA   with to Counterparty rightB
then terminate

Quando o calendário avançou até o final da negociação no último dia de negociação de agosto, o evento withinPeriod (p) ocorre e o when ativa as cláusulas aninhadas no próximo nível interno. O when em si se torna inativo – não está mais aguardando um evento: 

when withinPeriod(p)
    to Holder rightA   with to Counterparty rightB
then terminate

O then faz com que o terminate espere pelo when e suas subcláusulas sejam executadas. Depois que a troca de direitos é realizada, as cláusulas executadas são convertidas em inatividade e o encerramento é acionado: 

when withinPeriod(p)
    to Holder rightA   with to Counterparty rightB
then terminate

É fácil generalizar em nossa linguagem. O contrato futuro genérico se parece com o seguinte:

future(rightA, rightB, p) =
    when withinPeriod(p)
        to Holder rightA   with to Counterparty rightB
    then terminate

Em vez de barrigas de porco, podemos trocar qualquer outro rightA por rightB, que pode ser uma grande variedade de coisas além do dinheiro. Os redatores podem especificar clichês gerais e preencher detalhes para contratos específicos posteriormente. 

Terminada a parte 3, no próximo versículo, a parte 4. Ricas bençãos!

Compartilhe este artigo
@leonardobjahn Natural de Florianópolis, SC 27 anos Evangelista Bitcoin Graduando Administração na UFSC Professor particular e tradutor de Inglês
Sair da versão mobile