5.4 Programs
5.4.1 Validity
5.4.2 Modules
5.4.3 Steps
5.4.4 Local Steps
5.4.5 Consensus Steps
5.4.6 Computations
5.4.4 Local Steps
On this page:
5.4.4.1 Statements
5.4.4.2 Expressions
5.4.4.2.1 interact
interact
5.4.4.2.2 assume
assume
5.4.4.2.3 declassify
declassify
5.4.4.2.4 make  Commitment
make  Commitment
5.4.4 Local Steps

A Reach local step occurs in the body of only or each statements. It represents the actions taken by a single participant in an application.

5.4.4.1 Statements

Any statements valid for a computation are valid for a local step.

5.4.4.2 Expressions

Any expressions valid for a computation are valid for a local step. However, some additional expressions are allowed.

5.4.4.2.1 interact

interact.amount
interact.notify(handA, handB)
interact.chooseAmount(heap1, heap2) 

An interaction expression, written interact.METHOD(EXPR_0, ..., EXPR_n), where METHOD is an identifier bound in the participant interact interface to a function type, and EXPR_0 through EXPR_n are expressions that evaluates to the result of an interaction with a frontend that receives the evaluation of the n expressions and sends a value.

An interaction expression may also be written interact.KEY, where KEY is bound in the participant interact interface to a non-function type.

An interaction expression may only occur in a local step.

5.4.4.2.2 assume

assume( claim ) 

An assumption where claim evaluates to true with honest frontends. This may only appear in a local step.

5.4.4.2.3 declassify

declassify( arg ) 

The declassify primitive performs a declassification of the given argument.

5.4.4.2.4 makeCommitment

makeCommitment( interact, x ) 

Returns two values, [ commitment, salt ], where salt is the result of calling interact.random(), and commitment is the digest of salt and x.