b16023bf0e
implicitly, older goals are resolved first, if some goals have equal weights. This is encoded in the "w <=" comparison; if this is set to "w <", the heuristic becomes much less effective.
87 lines
3.3 KiB
C
87 lines
3.3 KiB
C
#ifndef SWITCHES
|
|
#define SWITCHES
|
|
|
|
#include "term.h"
|
|
#include "system.h"
|
|
|
|
void switchesInit ();
|
|
void switchesDone ();
|
|
|
|
//! Command-line switches structure
|
|
struct switchdata
|
|
{
|
|
// Command-line
|
|
int argc;
|
|
char **argv;
|
|
|
|
// Methods
|
|
int engine; //!< Engine type (POR_ENGINE,ARACHNE_ENGINE)
|
|
int match; //!< Matching type.
|
|
int clp; //!< Do we use clp?
|
|
int tupling; //!< Tupling is by default 0: right-associative, optionally 1: left-associative.
|
|
|
|
// Pruning and Bounding
|
|
int prune; //!< Type of pruning.
|
|
int maxproofdepth; //!< Maximum proof depth
|
|
int maxtracelength; //!< Maximum trace length allowed
|
|
int runs; //!< The number of runs as in the switch
|
|
Term filterClaim; //!< Which claim should be checked?
|
|
int maxAttacks; //!< When not 0, maximum number of attacks
|
|
|
|
// Modelchecker
|
|
int traverse; //!< Traversal method
|
|
int forceChoose; //!< Force chooses for each run, even if involved in first read
|
|
int chooseFirst; //!< Priority to chooses, implicit and explicit
|
|
int readSymmetries; //!< Enable read symmetry reduction
|
|
int agentSymmetries; //!< Enable agent symmetry reduction
|
|
int orderSymmetries; //!< Enable symmetry order reduction
|
|
int pruneNomoreClaims; //!< Enable no more claims cutter
|
|
int reduceEndgame; //!< Enable endgame cutter
|
|
int reduceClaims; //!< Symmetry reduction on claims (only works when switchAgentSymm is true)
|
|
// Parallellism
|
|
int scenario; //!< -1 to count, 0 for disable, 1-n to select the choose scenario
|
|
int scenarioSize; //!< Scenario size, also called fixed trace prefix length
|
|
|
|
// Arachne
|
|
int heuristic; //!< Goal selection method for Arachne engine
|
|
int maxIntruderActions; //!< Maximum number of intruder actions in the semitrace (encrypt/decrypt)
|
|
int agentTypecheck; //!< Check type of agent variables in all matching modes
|
|
int concrete; //!< Swap out variables at the end.
|
|
int extravert; //!< Disallow Alice talking to Alice
|
|
int intruder; //!< Enable intruder actions (default)
|
|
|
|
// Misc
|
|
int switchP; //!< A multi-purpose integer parameter, passed to the partial order reduction method selected.
|
|
int experimental; //!< Experimental stuff goes here until it moves into main stuff.
|
|
int removeclaims; //!< Remove any claims in the spdl file
|
|
int addreachableclaim; //!< Adds 'reachable' claims to each role
|
|
int addallclaims; //!< Adds all sorts of claims to the roles
|
|
int check; //!< Check protocol correctness
|
|
int expert; //!< Expert mode
|
|
|
|
// Output
|
|
int output; //!< From enum outputs: what should be produced. Default ATTACK.
|
|
int report;
|
|
int reportClaims; //!< Enable claims report
|
|
int xml; //!< xml output
|
|
int human; //!< human readable
|
|
int reportMemory; //!< Memory display switch.
|
|
int reportTime; //!< Time display switch.
|
|
int reportStates; //!< Progress display switch. (traversed states)
|
|
int countStates; //!< Count states
|
|
int extendNonReads; //!< Show further events in arachne xml output.
|
|
int extendTrivial; //!< Show further events in arachne xml output, based on knowledge underapproximation. (Includes at least the events of the nonreads extension)
|
|
int plain; //!< Disable color output
|
|
|
|
//! Latex output switch.
|
|
/**
|
|
* Obsolete. Use globalLatex instead.
|
|
*\sa globalLatex
|
|
*/
|
|
int latex;
|
|
};
|
|
|
|
extern struct switchdata switches; //!< pointer to switchdata structure
|
|
|
|
#endif
|