- Moved some parts of runs.c into roles.c
This commit is contained in:
		
							parent
							
								
									1c234e3cee
								
							
						
					
					
						commit
						3ac2a8d9bb
					
				
							
								
								
									
										239
									
								
								src/roles.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								src/roles.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,239 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file roles.c 
 | 
				
			||||||
 | 
					 * \brief role related logic.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <limits.h>
 | 
				
			||||||
 | 
					#include "terms.h"
 | 
				
			||||||
 | 
					#include "termlists.h"
 | 
				
			||||||
 | 
					#include "knowledge.h"
 | 
				
			||||||
 | 
					#include "runs.h"
 | 
				
			||||||
 | 
					#include "memory.h"
 | 
				
			||||||
 | 
					#include "constraints.h"
 | 
				
			||||||
 | 
					#include "debug.h"
 | 
				
			||||||
 | 
					#include "output.h"
 | 
				
			||||||
 | 
					#include "tracebuf.h"
 | 
				
			||||||
 | 
					#include "roles.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int globalLatex;		// from runs.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Allocate memory the size of a roledef struct.
 | 
				
			||||||
 | 
					Roledef
 | 
				
			||||||
 | 
					makeRoledef ()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return (Roledef) memAlloc (sizeof (struct roledef));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Print a role event list.
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					roledefPrint (Roledef rd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (rd == NULL)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      printf ("[Empty roledef]\n");
 | 
				
			||||||
 | 
					      return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  if (rd->type == READ && rd->internal)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      /* special case: internal read == choose ! */
 | 
				
			||||||
 | 
					      printf ("CHOOSE(");
 | 
				
			||||||
 | 
					      termPrint (rd->message);
 | 
				
			||||||
 | 
					      printf (")");
 | 
				
			||||||
 | 
					      return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  if (rd->type == READ)
 | 
				
			||||||
 | 
					    printf ("READ");
 | 
				
			||||||
 | 
					  if (rd->type == SEND)
 | 
				
			||||||
 | 
					    printf ("SEND");
 | 
				
			||||||
 | 
					  if (rd->type == CLAIM)
 | 
				
			||||||
 | 
					    printf ("CLAIM");
 | 
				
			||||||
 | 
					  if (rd->label != NULL)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      if (globalLatex)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						  printf ("$_{");
 | 
				
			||||||
 | 
						  termPrint (rd->label);
 | 
				
			||||||
 | 
						  printf ("}$");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						  printf ("_");
 | 
				
			||||||
 | 
						  termPrint (rd->label);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  if (globalLatex)
 | 
				
			||||||
 | 
					    printf ("$");
 | 
				
			||||||
 | 
					  printf ("(");
 | 
				
			||||||
 | 
					  termPrint (rd->from);
 | 
				
			||||||
 | 
					  printf (",");
 | 
				
			||||||
 | 
					  if (rd->type == CLAIM)
 | 
				
			||||||
 | 
					    printf (" ");
 | 
				
			||||||
 | 
					  termPrint (rd->to);
 | 
				
			||||||
 | 
					  printf (", ");
 | 
				
			||||||
 | 
					  termPrint (rd->message);
 | 
				
			||||||
 | 
					  printf (" )");
 | 
				
			||||||
 | 
					  if (globalLatex)
 | 
				
			||||||
 | 
					    printf ("$");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Duplicate a single role event node.
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *\sa roledefDelete()
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					Roledef
 | 
				
			||||||
 | 
					roledefDuplicate1 (const Roledef rd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  Roledef newrd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (rd == NULL)
 | 
				
			||||||
 | 
					    return NULL;
 | 
				
			||||||
 | 
					  newrd = makeRoledef ();
 | 
				
			||||||
 | 
					  memcpy (newrd, rd, sizeof (struct roledef));
 | 
				
			||||||
 | 
					  newrd->next = NULL;
 | 
				
			||||||
 | 
					  return newrd;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					//! Duplicate a role event list.
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *\sa roledefDelete()
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					Roledef
 | 
				
			||||||
 | 
					roledefDuplicate (Roledef rd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  Roledef newrd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (rd == NULL)
 | 
				
			||||||
 | 
					    return NULL;
 | 
				
			||||||
 | 
					  newrd = roledefDuplicate1 (rd);
 | 
				
			||||||
 | 
					  newrd->next = roledefDuplicate (rd->next);
 | 
				
			||||||
 | 
					  return newrd;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Delete a role event or event list.
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *\sa roledefDuplicate()
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					roledefDelete (Roledef rd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (rd == NULL)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  roledefDelete (rd->next);
 | 
				
			||||||
 | 
					  memFree (rd, sizeof (struct roledef));
 | 
				
			||||||
 | 
					  return;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Destroy a role event or event list.
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					roledefDestroy (Roledef rd)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (rd == NULL)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  roledefDestroy (rd->next);
 | 
				
			||||||
 | 
					  termDelete (rd->from);
 | 
				
			||||||
 | 
					  termDelete (rd->to);
 | 
				
			||||||
 | 
					  termDelete (rd->message);
 | 
				
			||||||
 | 
					  memFree (rd, sizeof (struct roledef));
 | 
				
			||||||
 | 
					  return;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Make a new role event with the specified parameters.
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *@return A pointer to a new role event with the given parameters.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					Roledef
 | 
				
			||||||
 | 
					roledefInit (int type, Term label, Term from, Term to, Term msg, Claimlist cl)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  Roledef newEvent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  newEvent = makeRoledef ();
 | 
				
			||||||
 | 
					  newEvent->internal = 0;
 | 
				
			||||||
 | 
					  newEvent->type = type;
 | 
				
			||||||
 | 
					  newEvent->label = label;
 | 
				
			||||||
 | 
					  newEvent->from = from;
 | 
				
			||||||
 | 
					  newEvent->to = to;
 | 
				
			||||||
 | 
					  newEvent->message = msg;
 | 
				
			||||||
 | 
					  newEvent->forbidden = NULL;	// no forbidden stuff
 | 
				
			||||||
 | 
					  newEvent->knowPhase = -1;	// we haven't explored any knowledge yet
 | 
				
			||||||
 | 
					  newEvent->claiminfo = cl;	// only for claims
 | 
				
			||||||
 | 
					  newEvent->next = NULL;
 | 
				
			||||||
 | 
					  return newEvent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Add a role event to an existing list, with the given parameters.
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *\sa roledefInit()
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					Roledef
 | 
				
			||||||
 | 
					roledefAdd (Roledef rd, int type, Term label, Term from, Term to, Term msg, Claimlist cl)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  Roledef scan;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (rd == NULL)
 | 
				
			||||||
 | 
					    return roledefInit (type, label, from, to, msg, cl);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  scan = rd;
 | 
				
			||||||
 | 
					  while (scan->next != NULL)
 | 
				
			||||||
 | 
					    scan = scan->next;
 | 
				
			||||||
 | 
					  scan->next = roledefInit (type, label, from, to, msg, cl);
 | 
				
			||||||
 | 
					  return rd;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Create an empty role structure with a name.
 | 
				
			||||||
 | 
					Role
 | 
				
			||||||
 | 
					roleCreate (Term name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  Role r;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  r = memAlloc (sizeof (struct role));
 | 
				
			||||||
 | 
					  r->nameterm = name;
 | 
				
			||||||
 | 
					  r->next = NULL;
 | 
				
			||||||
 | 
					  r->locals = NULL;
 | 
				
			||||||
 | 
					  r->roledef = NULL;
 | 
				
			||||||
 | 
					  return r;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Print a role.
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					rolePrint (Role r)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  Roledef rd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (r == NULL)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  indent ();
 | 
				
			||||||
 | 
					  printf ("[[Role : ");
 | 
				
			||||||
 | 
					  termPrint (r->nameterm);
 | 
				
			||||||
 | 
					  printf ("]]\n");
 | 
				
			||||||
 | 
					  locVarPrint (r->locals);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  rd = r->roledef;
 | 
				
			||||||
 | 
					  while (rd != NULL)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      roledefPrint (rd);
 | 
				
			||||||
 | 
					      printf ("\n");
 | 
				
			||||||
 | 
					      rd = rd->next;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Print a list of roles.
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					rolesPrint (Role r)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (r == NULL)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      printf ("Empty role.");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      while (r != NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						  rolePrint (r);
 | 
				
			||||||
 | 
						  r = r->next;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										117
									
								
								src/roles.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								src/roles.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,117 @@
 | 
				
			|||||||
 | 
					#ifndef ROLES
 | 
				
			||||||
 | 
					#define ROLES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "terms.h"
 | 
				
			||||||
 | 
					#include "termmaps.h"
 | 
				
			||||||
 | 
					#include "termlists.h"
 | 
				
			||||||
 | 
					#include "knowledge.h"
 | 
				
			||||||
 | 
					#include "constraints.h"
 | 
				
			||||||
 | 
					#include "states.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	READ	1
 | 
				
			||||||
 | 
					#define SEND	2
 | 
				
			||||||
 | 
					#define CLAIM	3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! The container for the claim info list
 | 
				
			||||||
 | 
					struct claimlist
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  //! The term element for this node.
 | 
				
			||||||
 | 
					  Term label;
 | 
				
			||||||
 | 
					  //! The name of the role in which it occurs.
 | 
				
			||||||
 | 
					  Term rolename;
 | 
				
			||||||
 | 
					  //! Number of occurrences in system exploration.
 | 
				
			||||||
 | 
					  states_t count;
 | 
				
			||||||
 | 
					  //! Number of occurrences that failed.
 | 
				
			||||||
 | 
					  states_t failed;
 | 
				
			||||||
 | 
					  int r;	//!< role number for mapping
 | 
				
			||||||
 | 
					  int ev;	//!< event index in role
 | 
				
			||||||
 | 
					  //! Preceding label list
 | 
				
			||||||
 | 
					  Termlist prec;
 | 
				
			||||||
 | 
					  //! Next node pointer or NULL for the last element of the function.
 | 
				
			||||||
 | 
					  struct claimlist *next;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Shorthand for claimlist pointers.
 | 
				
			||||||
 | 
					typedef struct claimlist *Claimlist;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Structure for a role event node or list.
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *\sa role
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					struct roledef
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  //! flag for internal actions.
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Typically, this is true to signify internal reads (e.g. variable choices)
 | 
				
			||||||
 | 
					   * as opposed to a normal read.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int internal;
 | 
				
			||||||
 | 
					  //! Type of event.
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   *\sa READ, SEND, CLAIM
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int type;
 | 
				
			||||||
 | 
					  //! Event label.
 | 
				
			||||||
 | 
					  Term label;
 | 
				
			||||||
 | 
					  //! Event sender.
 | 
				
			||||||
 | 
					  Term from;
 | 
				
			||||||
 | 
					  //! Event target.
 | 
				
			||||||
 | 
					  Term to;
 | 
				
			||||||
 | 
					  //! Event message.
 | 
				
			||||||
 | 
					  Term message;
 | 
				
			||||||
 | 
					  //! Pointer to next roledef node.
 | 
				
			||||||
 | 
					  struct roledef *next;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /*
 | 
				
			||||||
 | 
					   * Substructure for reads
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  //! Illegal injections for this event.
 | 
				
			||||||
 | 
					  Knowledge forbidden;
 | 
				
			||||||
 | 
					  //! knowledge transitions counter.
 | 
				
			||||||
 | 
					  int knowPhase;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /*
 | 
				
			||||||
 | 
					   * Substructure for claims
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  //! Pointer to claim type info
 | 
				
			||||||
 | 
					  Claimlist claiminfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* evt runid for synchronisation, but that is implied in the
 | 
				
			||||||
 | 
					     base array */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Shorthand for roledef pointer.
 | 
				
			||||||
 | 
					typedef struct roledef *Roledef;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Role definition.
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *\sa roledef
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					struct role
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  //! Name of the role encoded in a term.
 | 
				
			||||||
 | 
					  Term nameterm;
 | 
				
			||||||
 | 
					  //! List of role events.
 | 
				
			||||||
 | 
					  Roledef roledef;
 | 
				
			||||||
 | 
					  //! Local constants for this role.
 | 
				
			||||||
 | 
					  Termlist locals;
 | 
				
			||||||
 | 
					  //! Pointer to next role definition.
 | 
				
			||||||
 | 
					  struct role *next;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//! Shorthand for role pointer.
 | 
				
			||||||
 | 
					typedef struct role *Role;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void roledefPrint (Roledef rd);
 | 
				
			||||||
 | 
					Roledef roledefDuplicate1 (const Roledef rd);
 | 
				
			||||||
 | 
					Roledef roledefDuplicate (Roledef rd);
 | 
				
			||||||
 | 
					void roledefDelete (Roledef rd);
 | 
				
			||||||
 | 
					void roledefDestroy (Roledef rd);
 | 
				
			||||||
 | 
					Roledef roledefInit (int type, Term label, Term from, Term to, Term msg, Claimlist cl);
 | 
				
			||||||
 | 
					Roledef roledefAdd (Roledef rd, int type, Term label, Term from, Term to, Term msg, Claimlist cl);
 | 
				
			||||||
 | 
					Role roleCreate (Term nameterm);
 | 
				
			||||||
 | 
					void rolePrint (Role r);
 | 
				
			||||||
 | 
					void rolesPrint (Role r);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										227
									
								
								src/runs.c
									
									
									
									
									
								
							
							
						
						
									
										227
									
								
								src/runs.c
									
									
									
									
									
								
							@ -1,9 +1,6 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * @file runs.c 
 | 
					 * @file system.c 
 | 
				
			||||||
 * \brief run related logic.
 | 
					 * \brief system related logic.
 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Originally contained only procedures related to runs, but has grown
 | 
					 | 
				
			||||||
 * somewhat over time.
 | 
					 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
@ -17,6 +14,7 @@
 | 
				
			|||||||
#include "debug.h"
 | 
					#include "debug.h"
 | 
				
			||||||
#include "output.h"
 | 
					#include "output.h"
 | 
				
			||||||
#include "tracebuf.h"
 | 
					#include "tracebuf.h"
 | 
				
			||||||
 | 
					#include "roles.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* from compiler.o */
 | 
					/* from compiler.o */
 | 
				
			||||||
extern Term TERM_Type;
 | 
					extern Term TERM_Type;
 | 
				
			||||||
@ -39,12 +37,7 @@ makeRun ()
 | 
				
			|||||||
  return (Run) memAlloc (sizeof (struct run));
 | 
					  return (Run) memAlloc (sizeof (struct run));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//! Allocate memory the size of a roledef struct.
 | 
					
 | 
				
			||||||
Roledef
 | 
					 | 
				
			||||||
makeRoledef ()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  return (Roledef) memAlloc (sizeof (struct roledef));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
//! Initialise a system structure.
 | 
					//! Initialise a system structure.
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -244,58 +237,6 @@ ensureValidRun (const System sys, int run)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//! Print a role event list.
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
roledefPrint (Roledef rd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  if (rd == NULL)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      printf ("[Empty roledef]\n");
 | 
					 | 
				
			||||||
      return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  if (rd->type == READ && rd->internal)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      /* special case: internal read == choose ! */
 | 
					 | 
				
			||||||
      printf ("CHOOSE(");
 | 
					 | 
				
			||||||
      termPrint (rd->message);
 | 
					 | 
				
			||||||
      printf (")");
 | 
					 | 
				
			||||||
      return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  if (rd->type == READ)
 | 
					 | 
				
			||||||
    printf ("READ");
 | 
					 | 
				
			||||||
  if (rd->type == SEND)
 | 
					 | 
				
			||||||
    printf ("SEND");
 | 
					 | 
				
			||||||
  if (rd->type == CLAIM)
 | 
					 | 
				
			||||||
    printf ("CLAIM");
 | 
					 | 
				
			||||||
  if (rd->label != NULL)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      if (globalLatex)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	  printf ("$_{");
 | 
					 | 
				
			||||||
	  termPrint (rd->label);
 | 
					 | 
				
			||||||
	  printf ("}$");
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
      else
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	  printf ("_");
 | 
					 | 
				
			||||||
	  termPrint (rd->label);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  if (globalLatex)
 | 
					 | 
				
			||||||
    printf ("$");
 | 
					 | 
				
			||||||
  printf ("(");
 | 
					 | 
				
			||||||
  termPrint (rd->from);
 | 
					 | 
				
			||||||
  printf (",");
 | 
					 | 
				
			||||||
  if (rd->type == CLAIM)
 | 
					 | 
				
			||||||
    printf (" ");
 | 
					 | 
				
			||||||
  termPrint (rd->to);
 | 
					 | 
				
			||||||
  printf (", ");
 | 
					 | 
				
			||||||
  termPrint (rd->message);
 | 
					 | 
				
			||||||
  printf (" )");
 | 
					 | 
				
			||||||
  if (globalLatex)
 | 
					 | 
				
			||||||
    printf ("$");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Print a run.
 | 
					//! Print a run.
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
runPrint (Roledef rd)
 | 
					runPrint (Roledef rd)
 | 
				
			||||||
@ -368,67 +309,6 @@ agentOfRun (const System sys, const int run)
 | 
				
			|||||||
  return agentOfRunRole(sys,run,sys->runs[run].role->nameterm);
 | 
					  return agentOfRunRole(sys,run,sys->runs[run].role->nameterm);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//! Duplicate a single role event node.
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 *\sa roledefDelete()
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
Roledef
 | 
					 | 
				
			||||||
roledefDuplicate1 (const Roledef rd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  Roledef newrd;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (rd == NULL)
 | 
					 | 
				
			||||||
    return NULL;
 | 
					 | 
				
			||||||
  newrd = makeRoledef ();
 | 
					 | 
				
			||||||
  memcpy (newrd, rd, sizeof (struct roledef));
 | 
					 | 
				
			||||||
  newrd->next = NULL;
 | 
					 | 
				
			||||||
  return newrd;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
//! Duplicate a role event list.
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 *\sa roledefDelete()
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
Roledef
 | 
					 | 
				
			||||||
roledefDuplicate (Roledef rd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  Roledef newrd;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (rd == NULL)
 | 
					 | 
				
			||||||
    return NULL;
 | 
					 | 
				
			||||||
  newrd = roledefDuplicate1 (rd);
 | 
					 | 
				
			||||||
  newrd->next = roledefDuplicate (rd->next);
 | 
					 | 
				
			||||||
  return newrd;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Delete a role event or event list.
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 *\sa roledefDuplicate()
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
roledefDelete (Roledef rd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  if (rd == NULL)
 | 
					 | 
				
			||||||
    return;
 | 
					 | 
				
			||||||
  roledefDelete (rd->next);
 | 
					 | 
				
			||||||
  memFree (rd, sizeof (struct roledef));
 | 
					 | 
				
			||||||
  return;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Destroy a role event or event list.
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
roledefDestroy (Roledef rd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  if (rd == NULL)
 | 
					 | 
				
			||||||
    return;
 | 
					 | 
				
			||||||
  roledefDestroy (rd->next);
 | 
					 | 
				
			||||||
  termDelete (rd->from);
 | 
					 | 
				
			||||||
  termDelete (rd->to);
 | 
					 | 
				
			||||||
  termDelete (rd->message);
 | 
					 | 
				
			||||||
  memFree (rd, sizeof (struct roledef));
 | 
					 | 
				
			||||||
  return;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * A new run is created; now we want to know if it depends on any previous run.
 | 
					 * A new run is created; now we want to know if it depends on any previous run.
 | 
				
			||||||
 * This occurs when there is a smaller runid with an identical protocol role, with the 
 | 
					 * This occurs when there is a smaller runid with an identical protocol role, with the 
 | 
				
			||||||
@ -679,48 +559,6 @@ roleInstance (const System sys, const Protocol protocol, const Role role,
 | 
				
			|||||||
  runs[rid].firstNonAgentRead = firstNonAgentRead (sys, rid);	// symmetry reduction type II
 | 
					  runs[rid].firstNonAgentRead = firstNonAgentRead (sys, rid);	// symmetry reduction type II
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//! Make a new role event with the specified parameters.
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 *@return A pointer to a new role event with the given parameters.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
Roledef
 | 
					 | 
				
			||||||
roledefInit (int type, Term label, Term from, Term to, Term msg, Claimlist cl)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  Roledef newEvent;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  newEvent = makeRoledef ();
 | 
					 | 
				
			||||||
  newEvent->internal = 0;
 | 
					 | 
				
			||||||
  newEvent->type = type;
 | 
					 | 
				
			||||||
  newEvent->label = label;
 | 
					 | 
				
			||||||
  newEvent->from = from;
 | 
					 | 
				
			||||||
  newEvent->to = to;
 | 
					 | 
				
			||||||
  newEvent->message = msg;
 | 
					 | 
				
			||||||
  newEvent->forbidden = NULL;	// no forbidden stuff
 | 
					 | 
				
			||||||
  newEvent->knowPhase = -1;	// we haven't explored any knowledge yet
 | 
					 | 
				
			||||||
  newEvent->claiminfo = cl;	// only for claims
 | 
					 | 
				
			||||||
  newEvent->next = NULL;
 | 
					 | 
				
			||||||
  return newEvent;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Add a role event to an existing list, with the given parameters.
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 *\sa roledefInit()
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
Roledef
 | 
					 | 
				
			||||||
roledefAdd (Roledef rd, int type, Term label, Term from, Term to, Term msg, Claimlist cl)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  Roledef scan;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (rd == NULL)
 | 
					 | 
				
			||||||
    return roledefInit (type, label, from, to, msg, cl);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  scan = rd;
 | 
					 | 
				
			||||||
  while (scan->next != NULL)
 | 
					 | 
				
			||||||
    scan = scan->next;
 | 
					 | 
				
			||||||
  scan->next = roledefInit (type, label, from, to, msg, cl);
 | 
					 | 
				
			||||||
  return rd;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
//! Initialise the second system phase.
 | 
					//! Initialise the second system phase.
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -813,21 +651,8 @@ protocolCreate (Term name)
 | 
				
			|||||||
  return p;
 | 
					  return p;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//! Create an empty role structure with a name.
 | 
					 | 
				
			||||||
Role
 | 
					 | 
				
			||||||
roleCreate (Term name)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  Role r;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  r = memAlloc (sizeof (struct role));
 | 
					 | 
				
			||||||
  r->nameterm = name;
 | 
					 | 
				
			||||||
  r->next = NULL;
 | 
					 | 
				
			||||||
  r->locals = NULL;
 | 
					 | 
				
			||||||
  r->roledef = NULL;
 | 
					 | 
				
			||||||
  return r;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Print all local terms in a term list.
 | 
					//! Print all local terms in a term list.
 | 
				
			||||||
 | 
					//@todo What is this doing here? This should be in termlists.c!
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
locVarPrint (Termlist tl)
 | 
					locVarPrint (Termlist tl)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -884,48 +709,6 @@ protocolsPrint (Protocol p)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//! Print a role.
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
rolePrint (Role r)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  Roledef rd;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (r == NULL)
 | 
					 | 
				
			||||||
    return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  indent ();
 | 
					 | 
				
			||||||
  printf ("[[Role : ");
 | 
					 | 
				
			||||||
  termPrint (r->nameterm);
 | 
					 | 
				
			||||||
  printf ("]]\n");
 | 
					 | 
				
			||||||
  locVarPrint (r->locals);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  rd = r->roledef;
 | 
					 | 
				
			||||||
  while (rd != NULL)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      roledefPrint (rd);
 | 
					 | 
				
			||||||
      printf ("\n");
 | 
					 | 
				
			||||||
      rd = rd->next;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Print a list of roles.
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
rolesPrint (Role r)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  if (r == NULL)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      printf ("Empty role.");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      while (r != NULL)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	  rolePrint (r);
 | 
					 | 
				
			||||||
	  r = r->next;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Determine whether there is an untrusted agent.
 | 
					//! Determine whether there is an untrusted agent.
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 *@param sys The system, containing system::untrusted.
 | 
					 *@param sys The system, containing system::untrusted.
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										109
									
								
								src/runs.h
									
									
									
									
									
								
							
							
						
						
									
										109
									
								
								src/runs.h
									
									
									
									
									
								
							@ -1,5 +1,5 @@
 | 
				
			|||||||
#ifndef RUNS
 | 
					#ifndef SYSTEM
 | 
				
			||||||
#define RUNS
 | 
					#define SYSTEM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "terms.h"
 | 
					#include "terms.h"
 | 
				
			||||||
#include "termmaps.h"
 | 
					#include "termmaps.h"
 | 
				
			||||||
@ -7,104 +7,11 @@
 | 
				
			|||||||
#include "knowledge.h"
 | 
					#include "knowledge.h"
 | 
				
			||||||
#include "constraints.h"
 | 
					#include "constraints.h"
 | 
				
			||||||
#include "states.h"
 | 
					#include "states.h"
 | 
				
			||||||
 | 
					#include "roles.h"
 | 
				
			||||||
#define	READ	1
 | 
					 | 
				
			||||||
#define SEND	2
 | 
					 | 
				
			||||||
#define CLAIM	3
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define runPointerGet(sys,run)		sys->runs[run].index
 | 
					#define runPointerGet(sys,run)		sys->runs[run].index
 | 
				
			||||||
#define runPointerSet(sys,run,newp)	sys->runs[run].index = newp
 | 
					#define runPointerSet(sys,run,newp)	sys->runs[run].index = newp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//! The container for the claim info list
 | 
					 | 
				
			||||||
struct claimlist
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  //! The term element for this node.
 | 
					 | 
				
			||||||
  Term label;
 | 
					 | 
				
			||||||
  //! The name of the role in which it occurs.
 | 
					 | 
				
			||||||
  Term rolename;
 | 
					 | 
				
			||||||
  //! Number of occurrences in system exploration.
 | 
					 | 
				
			||||||
  states_t count;
 | 
					 | 
				
			||||||
  //! Number of occurrences that failed.
 | 
					 | 
				
			||||||
  states_t failed;
 | 
					 | 
				
			||||||
  int r;	//!< role number for mapping
 | 
					 | 
				
			||||||
  int ev;	//!< event index in role
 | 
					 | 
				
			||||||
  //! Preceding label list
 | 
					 | 
				
			||||||
  Termlist prec;
 | 
					 | 
				
			||||||
  //! Next node pointer or NULL for the last element of the function.
 | 
					 | 
				
			||||||
  struct claimlist *next;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Shorthand for claimlist pointers.
 | 
					 | 
				
			||||||
typedef struct claimlist *Claimlist;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Structure for a role event node or list.
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 *\sa role
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
struct roledef
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  //! flag for internal actions.
 | 
					 | 
				
			||||||
  /**
 | 
					 | 
				
			||||||
   * Typically, this is true to signify internal reads (e.g. variable choices)
 | 
					 | 
				
			||||||
   * as opposed to a normal read.
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
  int internal;
 | 
					 | 
				
			||||||
  //! Type of event.
 | 
					 | 
				
			||||||
  /**
 | 
					 | 
				
			||||||
   *\sa READ, SEND, CLAIM
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
  int type;
 | 
					 | 
				
			||||||
  //! Event label.
 | 
					 | 
				
			||||||
  Term label;
 | 
					 | 
				
			||||||
  //! Event sender.
 | 
					 | 
				
			||||||
  Term from;
 | 
					 | 
				
			||||||
  //! Event target.
 | 
					 | 
				
			||||||
  Term to;
 | 
					 | 
				
			||||||
  //! Event message.
 | 
					 | 
				
			||||||
  Term message;
 | 
					 | 
				
			||||||
  //! Pointer to next roledef node.
 | 
					 | 
				
			||||||
  struct roledef *next;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
   * Substructure for reads
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
  //! Illegal injections for this event.
 | 
					 | 
				
			||||||
  Knowledge forbidden;
 | 
					 | 
				
			||||||
  //! knowledge transitions counter.
 | 
					 | 
				
			||||||
  int knowPhase;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					 | 
				
			||||||
   * Substructure for claims
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
  //! Pointer to claim type info
 | 
					 | 
				
			||||||
  Claimlist claiminfo;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /* evt runid for synchronisation, but that is implied in the
 | 
					 | 
				
			||||||
     base array */
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Shorthand for roledef pointer.
 | 
					 | 
				
			||||||
typedef struct roledef *Roledef;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Role definition.
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 *\sa roledef
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
struct role
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  //! Name of the role encoded in a term.
 | 
					 | 
				
			||||||
  Term nameterm;
 | 
					 | 
				
			||||||
  //! List of role events.
 | 
					 | 
				
			||||||
  Roledef roledef;
 | 
					 | 
				
			||||||
  //! Local constants for this role.
 | 
					 | 
				
			||||||
  Termlist locals;
 | 
					 | 
				
			||||||
  //! Pointer to next role definition.
 | 
					 | 
				
			||||||
  struct role *next;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Shorthand for role pointer.
 | 
					 | 
				
			||||||
typedef struct role *Role;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//! Protocol definition.
 | 
					//! Protocol definition.
 | 
				
			||||||
struct protocol
 | 
					struct protocol
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -275,31 +182,21 @@ void statesPrintShort (const System sys);
 | 
				
			|||||||
void systemDestroy (const System sys);
 | 
					void systemDestroy (const System sys);
 | 
				
			||||||
void systemDone (const System sys);
 | 
					void systemDone (const System sys);
 | 
				
			||||||
void ensureValidRun (const System sys, int run);
 | 
					void ensureValidRun (const System sys, int run);
 | 
				
			||||||
void roledefPrint (Roledef rd);
 | 
					 | 
				
			||||||
void runPrint (Roledef rd);
 | 
					void runPrint (Roledef rd);
 | 
				
			||||||
void runsPrint (const System sys);
 | 
					void runsPrint (const System sys);
 | 
				
			||||||
Term agentOfRunRole (const System sys, const int run, const Term role);
 | 
					Term agentOfRunRole (const System sys, const int run, const Term role);
 | 
				
			||||||
Term agentOfRun (const System sys, const int run);
 | 
					Term agentOfRun (const System sys, const int run);
 | 
				
			||||||
Roledef roledefDuplicate1 (const Roledef rd);
 | 
					 | 
				
			||||||
Roledef roledefDuplicate (Roledef rd);
 | 
					 | 
				
			||||||
void roledefDelete (Roledef rd);
 | 
					 | 
				
			||||||
void roledefDestroy (Roledef rd);
 | 
					 | 
				
			||||||
void roleInstance (const System sys, const Protocol protocol, const Role role,
 | 
					void roleInstance (const System sys, const Protocol protocol, const Role role,
 | 
				
			||||||
		   const Termlist tolist);
 | 
							   const Termlist tolist);
 | 
				
			||||||
Roledef roledefInit (int type, Term label, Term from, Term to, Term msg, Claimlist cl);
 | 
					 | 
				
			||||||
Roledef roledefAdd (Roledef rd, int type, Term label, Term from, Term to, Term msg, Claimlist cl);
 | 
					 | 
				
			||||||
void systemStart (const System sys);
 | 
					void systemStart (const System sys);
 | 
				
			||||||
void indentActivate ();
 | 
					void indentActivate ();
 | 
				
			||||||
void indentSet (int i);
 | 
					void indentSet (int i);
 | 
				
			||||||
void indent ();
 | 
					void indent ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Protocol protocolCreate (Term nameterm);
 | 
					Protocol protocolCreate (Term nameterm);
 | 
				
			||||||
Role roleCreate (Term nameterm);
 | 
					 | 
				
			||||||
void locVarPrint (Termlist tl);
 | 
					void locVarPrint (Termlist tl);
 | 
				
			||||||
void protocolPrint (Protocol p);
 | 
					void protocolPrint (Protocol p);
 | 
				
			||||||
void protocolsPrint (Protocol p);
 | 
					void protocolsPrint (Protocol p);
 | 
				
			||||||
void rolePrint (Role r);
 | 
					 | 
				
			||||||
void rolesPrint (Role r);
 | 
					 | 
				
			||||||
int untrustedAgent (const System sys, Termlist agents);
 | 
					int untrustedAgent (const System sys, Termlist agents);
 | 
				
			||||||
int getMaxTraceLength (const System sys);
 | 
					int getMaxTraceLength (const System sys);
 | 
				
			||||||
void agentsOfRunPrint (const System sys, const int run);
 | 
					void agentsOfRunPrint (const System sys, const int run);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user