Documentation

VCVio.Interaction.Concurrent.Examples

Concurrent interaction examples #

This file gives small definitional examples for the current concurrent layer.

The examples are intentionally focused on:

They are meant to exercise the current expressivity surface before later layers such as fairness or richer execution semantics are added.

Three parties for the toy concurrent examples: two honest parties and a network adversary.

Instances For

    One atomic message-delivery step whose payload is a pair of a public header and a private payload bit.

    Instances For

      A profile where Alice originates the payload, Bob sees the whole message, and the adversary sees only the public header.

      Instances For

        A second atomic node that only Bob fully observes, while the adversary learns nothing.

        Instances For

          Local observations for the acknowledgement node.

          Instances For

            A concurrent system where delivery and acknowledgement are both live.

            Instances For

              The corresponding concurrent observation profile.

              Instances For

                Control ownership for the delivery step: Alice chooses the payload.

                Instances For

                  Control ownership for the acknowledgement step: Bob chooses the bit.

                  Instances For

                    The adversary controls scheduling between the two concurrently live subsystems, while Alice and Bob still control their respective atomic nodes.

                    Instances For

                      A concrete structural trace where the adversary schedules delivery first and the remaining acknowledgement second.

                      Instances For

                        The dynamic process compiled from the structural tree frontend.

                        Instances For

                          The packaged initial structural state of the in-flight system.

                          Instances For

                            A concrete structural trace where the adversary schedules the acknowledgement before the delivery event.

                            Instances For

                              When both sides of a live par are available, prefer the left branch.

                              Instances For

                                When both sides of a live par are available, prefer the right branch.

                                Instances For

                                  A three-way concurrent system used to illustrate recursive independence inside one branch of a larger parallel spec.

                                  Instances For

                                    Node semantics for a tiny looping process: the adversary actively chooses the boolean step, Bob observes it, and Alice is hidden from it.

                                    Instances For

                                      A tiny one-state looping process used to exercise runs, tickets, fairness, and refinement.

                                      Instances For

                                        A ticketed view of loopProcess using the chosen boolean as the stable ticket.

                                        Instances For

                                          A simple always-true infinite run of loopProcess.

                                          Instances For

                                            A trivial system wrapper around loopProcess.

                                            Instances For

                                              The specification-side run obtained by matching trueRun through loopSim.

                                              Instances For

                                                The specification-side run obtained by matching trueRun through loopObsSimBob.

                                                Instances For