packages feed

cpsa-4.4.1: coq/Examples/Yahalom_role.v

(** Protocol: yahalom (yahalom.scm:7:1) *)

Require Import String List Alg Role.
Import List.ListNotations.
Open Scope list_scope.
Open Scope string.

(** Role: init (yahalom.scm:9:3) *)

Definition init_role: role :=
  mkRole
  [Sd 6 (Pr (Nm 0) (Tx 3));
   Rv 7 (Pr (En (Pr (Nm 1) (Pr (Sk (Sv 2)) (Pr (Tx 3) (Tx 4))))
                (Sk (Lt 0 8))) (Mg 5));
   Sd 6 (Pr (Mg 5) (En (Tx 4) (Sk (Sv 2))))]
  [Tx 3]
  [Ch 6; Ch 7; Nm 0; Nm 1; Sk (Lt 0 8)]
  [Sk (Sv 2)].

(** Role: resp (yahalom.scm:23:3) *)

Definition resp_role: role :=
  mkRole
  [Rv 5 (Pr (Nm 0) (Tx 3));
   Sd 6 (Pr (Nm 1) (En (Pr (Nm 0) (Pr (Tx 3) (Tx 4))) (Sk (Lt 1 7))));
   Rv 5 (Pr (En (Pr (Nm 0) (Sk (Sv 2))) (Sk (Lt 1 7)))
            (En (Tx 4) (Sk (Sv 2))))]
  [Tx 4]
  [Ch 5; Ch 6; Nm 1; Sk (Lt 1 7)]
  [Nm 0; Sk (Sv 2)].

(** Role: serv-init (yahalom.scm:36:3) *)

Definition serv_init_role: role :=
  mkRole
  [Rv 4 (Pr (Nm 1) (En (Pr (Nm 0) (Pr (Tx 2) (Tx 3))) (Sk (Lt 1 5))))]
  []
  [Ch 4; Nm 1; Sk (Lt 1 5)]
  [Nm 0; Tx 2; Tx 3].

(** Role: serv-complete (yahalom.scm:45:3) *)

Definition serv_complete_role: role :=
  mkRole
  [Sd 5 (Pr (En (Pr (Nm 1) (Pr (Sk (Sv 2)) (Pr (Tx 3) (Tx 4))))
                (Sk (Lt 0 6)))
            (En (Pr (Nm 0) (Sk (Sv 2))) (Sk (Lt 1 6))))]
  [Sk (Sv 2)]
  [Ch 5; Nm 0; Nm 1; Sk (Lt 0 6); Sk (Lt 1 6); Tx 3; Tx 4]
  [Sk (Sv 2)].