fsp quick reference

Upload: agnes-ong

Post on 06-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 FSP Quick Reference

    1/3

    FSP Quick Reference

    1. Processes

    A process is defined by one or more local processes separated by commas. The

    definition is terminated by a full stop. STOP and ERROR are primitive localprocesses.

    Example

    Process = (a -> Local),Local = (b -> STOP).

    Action Prefix -> Ifx is an action and P a process then (x -> P) describesa process that initially engages in the action x and thenbehaves exactly as described by P.

    Choice | Ifx and y are actions then (x -> P | y -> Q) describesa process which initially engages in either of the actions xory. After the first action has occurred, the subsequentbehavior is described by P if the first action was x and Qif the first action was y.

    Guarded ActionWhen

    The choice (when B x -> P | y -> Q) means thatwhen the guard B is true then the actions x and y are botheligible to be chosen, otherwise ifB is false then theaction x cannot be chosen.

    Alphabet

    Extension +The alphabet of a process is the set of actions in which it

    can engage. P + S extends the alphabet of the process Pwith the actions in the set S.

    Table 1: Process operators

    2. Composite Processes

    A composite process is the parallel composition of one or more processes. The

    definition of a composite process is preceded by ||.

    Example

    ||Composite = (P || Q).

  • 8/3/2019 FSP Quick Reference

    2/3

    Parallel

    Composition ||IfP and Q are processes then (P || Q) represents theconcurrent execution ofP and Q.

    Replicator

    Forallforall[i:1..N] P(i) is the parallel composition(P(1) || ... || P(N))

    Process

    Labeling :a:P prefixes each label in the alphabet ofP with a.

    ProcessSharing ::

    {a1,..,ax}::P replaces every label n in the alphabet ofPwith the labels a1.n,...,ax.n. Further, every transition (n-> Q) in the definition ofP is replaced with the transitions({a1.n,...,ax.n} -> Q).

    Priority High

    ||C=(P || Q) >> {a1,...,an} specifies a composition inwhich the actions a1,...,an have lower priority than anyother action in the alphabet ofP || Q including the silentaction tau. In any choice in this system which has one ormore transitions not labeled by a1,...,an, the transitionslabeled by a1,...,an are discarded.

    Table 2: Composite Process Operators

    3. Common Operators

    The operators in Table 3 may be used in the definition of both processes and

    composite processes.

    Conditionalif then else

    The process ifB then P else Q behaves as the processP if the condition B is true otherwise it behaves as Q. Ifthe else Q is omitted and B is false, then the processbehaves as STOP.

    Re-labeling / Re-labeling is applied to a process to change the names ofaction labels. The general form of re-labeling is:

    /{newlabel_1/oldlabel_1,...newlabel_n/oldlabel_n}.

    Hiding \ When applied to a process P, the hiding operator \{a1..ax} removes the action names a1..ax from thealphabet ofP and makes these concealed actions "silent".These silent actions are labeled tau. Silent actions indifferent processes are not shared.

    Interface @ When applied to a process P, the interface operator

  • 8/3/2019 FSP Quick Reference

    3/3

    @{a1..ax} hides all actions in the alphabet of P notlabeled in the set a1..ax.

    Table 3: Common Process Operators4. Properties

    Safetyproperty A safety propertyP defines a deterministic process thatasserts that any trace including actions in the alphabet ofP,is accepted by P.

    ProgressProgress

    ProgressP = {a1,a2..an} defines a progress propertyP which asserts that in an infinite execution of a targetsystem, at least one of the actions a1,a2..an will beexecuted infinitely often.

    Table 4: Safety and Progress Properties