Removed unused functions.
This commit is contained in:
parent
1a7aa73b26
commit
739f59174f
103
src/arachne.c
103
src/arachne.c
@ -1188,108 +1188,6 @@ bind_old_goal (const Binding b_new)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Create a new intruder run to generate knowledge from m0
|
|
||||||
int
|
|
||||||
bind_goal_new_m0 (const Binding b)
|
|
||||||
{
|
|
||||||
Termlist m0tl, tl;
|
|
||||||
int flag;
|
|
||||||
int found;
|
|
||||||
|
|
||||||
|
|
||||||
flag = 1;
|
|
||||||
found = 0;
|
|
||||||
m0tl = knowledgeSet (sys->know);
|
|
||||||
tl = m0tl;
|
|
||||||
while (flag && tl != NULL)
|
|
||||||
{
|
|
||||||
Term m0t;
|
|
||||||
Termlist subst;
|
|
||||||
|
|
||||||
m0t = tl->term;
|
|
||||||
subst = termMguTerm (b->term, m0t); //! @todo This needs to be replace by the iterator one, but works for now
|
|
||||||
if (subst != MGUFAIL)
|
|
||||||
{
|
|
||||||
int run;
|
|
||||||
|
|
||||||
I_M->roledef->message = m0t;
|
|
||||||
run = semiRunCreate (INTRUDER, I_M);
|
|
||||||
proof_suppose_run (run, 0, 1);
|
|
||||||
sys->runs[run].height = 1;
|
|
||||||
{
|
|
||||||
indentDepth++;
|
|
||||||
if (goal_bind (b, run, 0))
|
|
||||||
{
|
|
||||||
found++;
|
|
||||||
proof_suppose_binding (b);
|
|
||||||
if (switches.output == PROOF)
|
|
||||||
{
|
|
||||||
indentPrint ();
|
|
||||||
eprintf ("* I.e. retrieving ");
|
|
||||||
termPrint (b->term);
|
|
||||||
eprintf (" from the initial knowledge.\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
// Now we also want to add bindings to have this run before all other runs
|
|
||||||
void wrapRunOrders (const int otherrun)
|
|
||||||
{
|
|
||||||
if (otherrun < 0)
|
|
||||||
{
|
|
||||||
// No more runs to do
|
|
||||||
flag = flag && iterate ();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (otherrun != run)
|
|
||||||
{
|
|
||||||
if (dependPushEvent (run, 0, otherrun, 0))
|
|
||||||
{
|
|
||||||
wrapRunOrders (otherrun - 1);
|
|
||||||
dependPopEvent ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
wrapRunOrders (otherrun - 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wrapRunOrders (sys->maxruns - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
goal_unbind (b);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
proof_cannot_bind (b, run, 0);
|
|
||||||
}
|
|
||||||
indentDepth--;
|
|
||||||
}
|
|
||||||
semiRunDestroy ();
|
|
||||||
|
|
||||||
|
|
||||||
termlistSubstReset (subst);
|
|
||||||
termlistDelete (subst);
|
|
||||||
}
|
|
||||||
|
|
||||||
tl = tl->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (found == 0 && switches.output == PROOF)
|
|
||||||
{
|
|
||||||
indentPrint ();
|
|
||||||
eprintf ("Term ");
|
|
||||||
termPrint (b->term);
|
|
||||||
eprintf (" cannot be constructed from the initial knowledge.\n");
|
|
||||||
}
|
|
||||||
termlistDelete (m0tl);
|
|
||||||
|
|
||||||
|
|
||||||
return flag;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Bind an intruder goal by intruder composition construction
|
//! Bind an intruder goal by intruder composition construction
|
||||||
/**
|
/**
|
||||||
* Handles the case where the intruder constructs a composed term himself.
|
* Handles the case where the intruder constructs a composed term himself.
|
||||||
@ -1405,7 +1303,6 @@ bind_goal_new_intruder_run (const Binding b)
|
|||||||
eprintf (" from a new intruder run?\n");
|
eprintf (" from a new intruder run?\n");
|
||||||
}
|
}
|
||||||
indentDepth++;
|
indentDepth++;
|
||||||
//flag = bind_goal_new_m0 (b);
|
|
||||||
//flag = flag && bind_goal_new_encrypt (b);
|
//flag = flag && bind_goal_new_encrypt (b);
|
||||||
flag = bind_goal_new_encrypt (b);
|
flag = bind_goal_new_encrypt (b);
|
||||||
indentDepth--;
|
indentDepth--;
|
||||||
|
@ -193,41 +193,6 @@ goal_unbind (const Binding b)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Bind a goal as a dummy (block)
|
|
||||||
/**
|
|
||||||
* Especially made for tuple expansion
|
|
||||||
*
|
|
||||||
* @TODO Weird that this returns a value (always true, otherwise error)
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
binding_block (Binding b)
|
|
||||||
{
|
|
||||||
if (!b->blocked)
|
|
||||||
{
|
|
||||||
b->blocked = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
error ("Trying to block a goal again.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Unblock a binding
|
|
||||||
/*
|
|
||||||
* @TODO Weird that this returns a value (always true, otherwise error)
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
binding_unblock (Binding b)
|
|
||||||
{
|
|
||||||
if (b->blocked)
|
|
||||||
{
|
|
||||||
b->blocked = false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
error ("Trying to unblock a non-blocked goal.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//! Add a goal
|
//! Add a goal
|
||||||
/**
|
/**
|
||||||
* The int parameter 'level' is just to store additional info. Here, it stores priorities for a goal.
|
* The int parameter 'level' is just to store additional info. Here, it stores priorities for a goal.
|
||||||
|
@ -27,6 +27,9 @@
|
|||||||
//! Binding structure
|
//! Binding structure
|
||||||
/*
|
/*
|
||||||
* Idea is the ev_from *has to* precede the ev_to
|
* Idea is the ev_from *has to* precede the ev_to
|
||||||
|
*
|
||||||
|
* @TODO: blocked is no longer used. For evaluations, it may be considered
|
||||||
|
* false (no binding is ever blocked).
|
||||||
*/
|
*/
|
||||||
struct binding
|
struct binding
|
||||||
{
|
{
|
||||||
|
@ -217,24 +217,6 @@ iterate_interesting (const System sys, const Term goalterm, int (*func) ())
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Determine whether a goal might be interesting from the viewpoint of hide levels (the highest minimum is best)
|
|
||||||
int
|
|
||||||
hidelevelInteresting (const System sys, const Term goalterm)
|
|
||||||
{
|
|
||||||
int uninteresting (unsigned int l, unsigned int lmin, unsigned int lprot,
|
|
||||||
unsigned int lknow)
|
|
||||||
{
|
|
||||||
if (lmin > 0)
|
|
||||||
{
|
|
||||||
// anything higher than usual is interesting :)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return !iterate_interesting (sys, goalterm, uninteresting);
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Determine whether a goal is impossible to satisfy because of the hidelevel lemma.
|
//! Determine whether a goal is impossible to satisfy because of the hidelevel lemma.
|
||||||
int
|
int
|
||||||
hidelevelImpossible (const System sys, const Term goalterm)
|
hidelevelImpossible (const System sys, const Term goalterm)
|
||||||
|
@ -39,7 +39,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
void hidelevelCompute (const System sys);
|
void hidelevelCompute (const System sys);
|
||||||
int hidelevelInteresting (const System sys, const Term goalterm);
|
|
||||||
int hidelevelImpossible (const System sys, const Term goalterm);
|
int hidelevelImpossible (const System sys, const Term goalterm);
|
||||||
unsigned int hidelevelFlag (const System sys, const Term goalterm);
|
unsigned int hidelevelFlag (const System sys, const Term goalterm);
|
||||||
|
|
||||||
|
@ -316,26 +316,6 @@ inKnowledge (const Knowledge know, Term term)
|
|||||||
return 0; /* unrecognized term type, weird */
|
return 0; /* unrecognized term type, weird */
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Compare two knowledge sets.
|
|
||||||
/**
|
|
||||||
* This does not check currently for equivalence of inverse sets, which it should.
|
|
||||||
*@return True iff both knowledge sets are equal.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
isKnowledgeEqual (Knowledge know1, Knowledge know2)
|
|
||||||
{
|
|
||||||
if (know1 == NULL || know2 == NULL)
|
|
||||||
{
|
|
||||||
if (know1 == NULL && know2 == NULL)
|
|
||||||
return 1;
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (!isTermlistEqual (know1->encrypt, know2->encrypt))
|
|
||||||
return 0;
|
|
||||||
return isTermlistEqual (know1->basic, know2->basic);
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Print a knowledge set.
|
//! Print a knowledge set.
|
||||||
void
|
void
|
||||||
knowledgePrint (Knowledge know)
|
knowledgePrint (Knowledge know)
|
||||||
@ -449,21 +429,6 @@ knowledgeGetInverses (const Knowledge know)
|
|||||||
return know->inverses;
|
return know->inverses;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Get all basic elements in the knowledge
|
|
||||||
/**
|
|
||||||
* This function is used by match_basic, to determine all basic elements in the knowledge set.
|
|
||||||
* Most of the time this doesn't even change, so it might become a parameter of knowledge.
|
|
||||||
* For now, this will have to do.
|
|
||||||
*
|
|
||||||
*@todo Investigate whether the basics in the knowledge set should be a parameter of knowledge, as it doesn't change very often.
|
|
||||||
*/
|
|
||||||
__inline__ Termlist
|
|
||||||
knowledgeGetBasics (const Knowledge know)
|
|
||||||
{
|
|
||||||
return termlistAddBasics (termlistAddBasics (NULL, know->basic),
|
|
||||||
know->encrypt);
|
|
||||||
}
|
|
||||||
|
|
||||||
//! check whether any substitutions where made in a knowledge set.
|
//! check whether any substitutions where made in a knowledge set.
|
||||||
/**
|
/**
|
||||||
* Typically, when a substitution is made, a knowledge set has to be reconstructed.
|
* Typically, when a substitution is made, a knowledge set has to be reconstructed.
|
||||||
@ -518,52 +483,3 @@ knowledgeSubstDo (const Knowledge know)
|
|||||||
/* otherwise a copy (for deletion) is returned. */
|
/* otherwise a copy (for deletion) is returned. */
|
||||||
return knowledgeReconstruction (know);
|
return knowledgeReconstruction (know);
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Undo substitutions that were not propagated yet.
|
|
||||||
/**
|
|
||||||
* Undo the substitutions just made. Note that this does not work anymore after knowledgeSubstDo()
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
knowledgeSubstUndo (const Knowledge know)
|
|
||||||
{
|
|
||||||
Termlist tl;
|
|
||||||
|
|
||||||
tl = know->vars;
|
|
||||||
while (tl != NULL)
|
|
||||||
{
|
|
||||||
tl->term->subst = NULL;
|
|
||||||
tl = tl->next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Yield the minimal set of terms that are in some knowledge, but not in some other set.
|
|
||||||
/**
|
|
||||||
* Yield a termlist (or NULL) that represents the reduced items that are
|
|
||||||
* in the new set, but not in the old one.
|
|
||||||
*@param oldk The old knowledge.
|
|
||||||
*@param newk The new knowledge, possibly with new terms.
|
|
||||||
*@return A termlist of miminal terms in newk, but not in oldk.
|
|
||||||
*/
|
|
||||||
|
|
||||||
Termlist
|
|
||||||
knowledgeNew (const Knowledge oldk, const Knowledge newk)
|
|
||||||
{
|
|
||||||
Termlist newtl;
|
|
||||||
|
|
||||||
void addNewStuff (Termlist tl)
|
|
||||||
{
|
|
||||||
while (tl != NULL)
|
|
||||||
{
|
|
||||||
if (!inKnowledge (oldk, tl->term))
|
|
||||||
{
|
|
||||||
newtl = termlistAdd (newtl, tl->term);
|
|
||||||
}
|
|
||||||
tl = tl->next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
newtl = NULL;
|
|
||||||
addNewStuff (newk->basic);
|
|
||||||
addNewStuff (newk->encrypt);
|
|
||||||
return newtl;
|
|
||||||
}
|
|
||||||
|
@ -63,14 +63,10 @@ int inKnowledge (const Knowledge know, Term term);
|
|||||||
void knowledgePrint (Knowledge know);
|
void knowledgePrint (Knowledge know);
|
||||||
void knowledgePrintShort (const Knowledge know);
|
void knowledgePrintShort (const Knowledge know);
|
||||||
void knowledgeInversesPrint (Knowledge know);
|
void knowledgeInversesPrint (Knowledge know);
|
||||||
int isKnowledgeEqual (Knowledge know1, Knowledge know2);
|
|
||||||
Termlist knowledgeSet (const Knowledge know);
|
Termlist knowledgeSet (const Knowledge know);
|
||||||
Termlist knowledgeGetInverses (const Knowledge know);
|
Termlist knowledgeGetInverses (const Knowledge know);
|
||||||
Termlist knowledgeGetBasics (const Knowledge know);
|
|
||||||
int knowledgeSubstNeeded (const Knowledge know);
|
int knowledgeSubstNeeded (const Knowledge know);
|
||||||
Knowledge knowledgeSubstDo (const Knowledge know);
|
Knowledge knowledgeSubstDo (const Knowledge know);
|
||||||
void knowledgeSubstUndo (const Knowledge know);
|
|
||||||
Termlist knowledgeNew (const Knowledge oldk, const Knowledge newk);
|
|
||||||
|
|
||||||
//! Harnass macro for recursive procedures.
|
//! Harnass macro for recursive procedures.
|
||||||
#define mindwipe(k,recurse) \
|
#define mindwipe(k,recurse) \
|
||||||
|
@ -221,6 +221,7 @@ main (int argc, char **argv)
|
|||||||
knowledgeDestroy (sys->know);
|
knowledgeDestroy (sys->know);
|
||||||
systemDone (sys);
|
systemDone (sys);
|
||||||
colorDone ();
|
colorDone ();
|
||||||
|
switchesDone ();
|
||||||
compilerDone ();
|
compilerDone ();
|
||||||
|
|
||||||
/* done symbols */
|
/* done symbols */
|
||||||
|
@ -32,7 +32,6 @@
|
|||||||
*/
|
*/
|
||||||
#define MGUFAIL (Termlist) -1
|
#define MGUFAIL (Termlist) -1
|
||||||
|
|
||||||
Termlist termMguTerm (Term t1, Term t2);
|
|
||||||
void termlistSubstReset (Termlist tl);
|
void termlistSubstReset (Termlist tl);
|
||||||
int checkRoletermMatch (const Term t1, const Term t2, const Termlist tl);
|
int checkRoletermMatch (const Term t1, const Term t2, const Termlist tl);
|
||||||
|
|
||||||
|
15
src/states.c
15
src/states.c
@ -31,21 +31,6 @@ statesIncrease (const states_t states)
|
|||||||
return states + 1;
|
return states + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
__inline__ double
|
|
||||||
statesDouble (const states_t states)
|
|
||||||
{
|
|
||||||
return (double) states;
|
|
||||||
}
|
|
||||||
|
|
||||||
__inline__ int
|
|
||||||
statesSmallerThan (const states_t states, unsigned long int reflint)
|
|
||||||
{
|
|
||||||
if (states < (states_t) reflint)
|
|
||||||
return 1;
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Sensible output for number of states/claims
|
//! Sensible output for number of states/claims
|
||||||
/**
|
/**
|
||||||
* Acts like a modified form of %g
|
* Acts like a modified form of %g
|
||||||
|
@ -32,9 +32,6 @@ typedef unsigned long int states_t;
|
|||||||
#define STATES0 0
|
#define STATES0 0
|
||||||
|
|
||||||
__inline__ states_t statesIncrease (const states_t states);
|
__inline__ states_t statesIncrease (const states_t states);
|
||||||
__inline__ double statesDouble (const states_t states);
|
|
||||||
__inline__ int statesSmallerThan (const states_t states,
|
|
||||||
unsigned long int reflint);
|
|
||||||
__inline__ void statesFormat (const states_t states);
|
__inline__ void statesFormat (const states_t states);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
112
src/system.c
112
src/system.c
@ -185,21 +185,6 @@ systemDone (const System sys)
|
|||||||
systemDestroy (sys);
|
systemDestroy (sys);
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Print a short version of the number of states.
|
|
||||||
void
|
|
||||||
statesPrintShort (const System sys)
|
|
||||||
{
|
|
||||||
statesFormat (sys->states);
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Print the number of states.
|
|
||||||
void
|
|
||||||
statesPrint (const System sys)
|
|
||||||
{
|
|
||||||
statesFormat (sys->states);
|
|
||||||
eprintf (" states traversed.\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Destroy a system memory block and system::runs
|
//! Destroy a system memory block and system::runs
|
||||||
/**
|
/**
|
||||||
* Ignores any other substructes.
|
* Ignores any other substructes.
|
||||||
@ -803,21 +788,6 @@ systemStart (const System sys)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Activate indenting.
|
|
||||||
void
|
|
||||||
indentActivate ()
|
|
||||||
{
|
|
||||||
indentState = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Set indent depth.
|
|
||||||
void
|
|
||||||
indentSet (int i)
|
|
||||||
{
|
|
||||||
if (indentState)
|
|
||||||
indentDepth = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Print the prefix of a line suitable for the current indent level.
|
//! Print the prefix of a line suitable for the current indent level.
|
||||||
void
|
void
|
||||||
indent ()
|
indent ()
|
||||||
@ -957,64 +927,6 @@ isRunTrusted (const System sys, const int run)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Yield the maximum length of a trace by analysing the runs in the system.
|
|
||||||
int
|
|
||||||
getMaxTraceLength (const System sys)
|
|
||||||
{
|
|
||||||
Roledef rd;
|
|
||||||
int maxlen;
|
|
||||||
int run;
|
|
||||||
|
|
||||||
maxlen = 0;
|
|
||||||
for (run = 0; run < sys->maxruns; run++)
|
|
||||||
{
|
|
||||||
rd = runPointerGet (sys, run);
|
|
||||||
while (rd != NULL)
|
|
||||||
{
|
|
||||||
rd = rd->next;
|
|
||||||
maxlen++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return maxlen;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Nicely format the role and agents we think we're talking to.
|
|
||||||
void
|
|
||||||
agentsOfRunPrint (const System sys, const int run)
|
|
||||||
{
|
|
||||||
Term role = sys->runs[run].role->nameterm;
|
|
||||||
Termlist roles = sys->runs[run].protocol->rolenames;
|
|
||||||
int notfirst;
|
|
||||||
|
|
||||||
termPrint (role);
|
|
||||||
eprintf (":");
|
|
||||||
termPrint (agentOfRunRole (sys, run, role));
|
|
||||||
eprintf (" (");
|
|
||||||
notfirst = 0;
|
|
||||||
while (roles != NULL)
|
|
||||||
{
|
|
||||||
if (!isTermEqual (role, roles->term))
|
|
||||||
{
|
|
||||||
if (notfirst)
|
|
||||||
eprintf (", ");
|
|
||||||
termPrint (roles->term);
|
|
||||||
eprintf (":");
|
|
||||||
termPrint (agentOfRunRole (sys, run, roles->term));
|
|
||||||
notfirst = 1;
|
|
||||||
}
|
|
||||||
roles = roles->next;
|
|
||||||
}
|
|
||||||
eprintf (")");
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Explain a violated claim at point i in the trace.
|
|
||||||
|
|
||||||
void
|
|
||||||
violatedClaimPrint (const System sys, const int i)
|
|
||||||
{
|
|
||||||
eprintf ("Claim stuk");
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
commandlinePrint (FILE * stream)
|
commandlinePrint (FILE * stream)
|
||||||
{
|
{
|
||||||
@ -1077,30 +989,6 @@ compute_roleeventmax (const System sys)
|
|||||||
return maxev;
|
return maxev;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Print the role, agents of a run
|
|
||||||
void
|
|
||||||
runInstancePrint (const System sys, const int run)
|
|
||||||
{
|
|
||||||
termPrint (sys->runs[run].role->nameterm);
|
|
||||||
termlistPrint (sys->runs[run].rho);
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Print an instantiated scenario (chooses and such)
|
|
||||||
void
|
|
||||||
scenarioPrint (const System sys)
|
|
||||||
{
|
|
||||||
int run;
|
|
||||||
|
|
||||||
for (run = 0; run < sys->maxruns; run++)
|
|
||||||
{
|
|
||||||
runInstancePrint (sys, run);
|
|
||||||
if (run < sys->maxruns - 1)
|
|
||||||
{
|
|
||||||
eprintf ("\t");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Determine whether we don't need any more attacks
|
//! Determine whether we don't need any more attacks
|
||||||
/**
|
/**
|
||||||
* Returns 1 (true) iff no more attacks are needed for this claim.
|
* Returns 1 (true) iff no more attacks are needed for this claim.
|
||||||
|
@ -162,8 +162,6 @@ System systemInit ();
|
|||||||
void systemReset (const System sys);
|
void systemReset (const System sys);
|
||||||
void systemRuns (const System sys);
|
void systemRuns (const System sys);
|
||||||
System systemDuplicate (const System fromsys);
|
System systemDuplicate (const System fromsys);
|
||||||
void statesPrint (const System sys);
|
|
||||||
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);
|
||||||
@ -175,8 +173,6 @@ void roleInstance (const System sys, const Protocol protocol, const Role role,
|
|||||||
const Termlist paramlist, Termlist substlist);
|
const Termlist paramlist, Termlist substlist);
|
||||||
void roleInstanceDestroy (const System sys);
|
void roleInstanceDestroy (const System sys);
|
||||||
void systemStart (const System sys);
|
void systemStart (const System sys);
|
||||||
void indentActivate ();
|
|
||||||
void indentSet (int i);
|
|
||||||
void indent ();
|
void indent ();
|
||||||
|
|
||||||
Protocol protocolCreate (Term nameterm);
|
Protocol protocolCreate (Term nameterm);
|
||||||
@ -184,15 +180,11 @@ void locVarPrint (Termlist tl);
|
|||||||
void protocolPrint (Protocol p);
|
void protocolPrint (Protocol p);
|
||||||
void protocolsPrint (Protocol p);
|
void protocolsPrint (Protocol p);
|
||||||
int untrustedAgent (const System sys, Termlist agents);
|
int untrustedAgent (const System sys, Termlist agents);
|
||||||
int getMaxTraceLength (const System sys);
|
|
||||||
void agentsOfRunPrint (const System sys, const int run);
|
|
||||||
void violatedClaimPrint (const System sys, int i);
|
|
||||||
void commandlinePrint (FILE * stream);
|
void commandlinePrint (FILE * stream);
|
||||||
|
|
||||||
int compute_rolecount (const System sys);
|
int compute_rolecount (const System sys);
|
||||||
int compute_roleeventmax (const System sys);
|
int compute_roleeventmax (const System sys);
|
||||||
|
|
||||||
void scenarioPrint (const System sys);
|
|
||||||
int isAgentTrusted (const System sys, Term agent);
|
int isAgentTrusted (const System sys, Term agent);
|
||||||
int isAgentlistTrusted (const System sys, Termlist agents);
|
int isAgentlistTrusted (const System sys, Termlist agents);
|
||||||
int isRunTrusted (const System sys, const int run);
|
int isRunTrusted (const System sys, const int run);
|
||||||
|
@ -71,15 +71,6 @@ tacCreate (int op)
|
|||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
Tac
|
|
||||||
tacString (char *s)
|
|
||||||
{
|
|
||||||
Tac t;
|
|
||||||
t = tacCreate (TAC_STRING);
|
|
||||||
t->t1.str = s;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
Tac
|
Tac
|
||||||
tacJoin (int op, Tac t1, Tac t2, Tac t3)
|
tacJoin (int op, Tac t1, Tac t2, Tac t3)
|
||||||
{
|
{
|
||||||
|
@ -762,40 +762,6 @@ termlistContained (const Termlist tlbig, Termlist tlsmall)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Check substitution validity
|
|
||||||
/**
|
|
||||||
* Determine whether a variable has been substituted with something with
|
|
||||||
* the right type.
|
|
||||||
*@param term The closed variable term.
|
|
||||||
*@return True iff the substitution is valid in the current mode.
|
|
||||||
*\sa system::match
|
|
||||||
*/
|
|
||||||
|
|
||||||
int
|
|
||||||
validSubst (const Term term)
|
|
||||||
{
|
|
||||||
if (!realTermVariable (term) || term->subst == NULL)
|
|
||||||
return 1;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
switch (switches.match)
|
|
||||||
{
|
|
||||||
case 0: /* real type match */
|
|
||||||
return realTermLeaf (term->subst)
|
|
||||||
&& termlistContained (term->stype, term->subst->stype);
|
|
||||||
case 1: /* basic type match */
|
|
||||||
/* subst must be a leaf */
|
|
||||||
/* TODO: what about functions? */
|
|
||||||
return realTermLeaf (term->subst);
|
|
||||||
case 2: /* no type match */
|
|
||||||
/* anything goes */
|
|
||||||
return 1;
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Yield the result of f(x)
|
//! Yield the result of f(x)
|
||||||
/**
|
/**
|
||||||
* This function interpretes two termlists as the domain and range of a function,
|
* This function interpretes two termlists as the domain and range of a function,
|
||||||
|
35
src/type.c
35
src/type.c
@ -148,41 +148,6 @@ checkTypeTerm (const Term tvar)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Check types of a list
|
|
||||||
/**
|
|
||||||
* Empty list implies true.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
checkTypeTermlist (Termlist tl)
|
|
||||||
{
|
|
||||||
while (tl != NULL)
|
|
||||||
{
|
|
||||||
if (!checkTypeTerm (tl->term))
|
|
||||||
return false;
|
|
||||||
tl = tl->next;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Check whether all local variables are instantiated correctly.
|
|
||||||
int
|
|
||||||
checkTypeLocals (const System sys)
|
|
||||||
{
|
|
||||||
int run;
|
|
||||||
|
|
||||||
run = 0;
|
|
||||||
while (run < sys->maxruns)
|
|
||||||
{
|
|
||||||
if (sys->runs[run].protocol != INTRUDER)
|
|
||||||
{
|
|
||||||
if (!checkTypeTermlist (sys->runs[run].locals))
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
run++;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Check whether a typelist is a strict agent type list
|
//! Check whether a typelist is a strict agent type list
|
||||||
int
|
int
|
||||||
isAgentType (Termlist typelist)
|
isAgentType (Termlist typelist)
|
||||||
|
@ -24,8 +24,6 @@
|
|||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
||||||
int checkTypeTerm (const Term t);
|
int checkTypeTerm (const Term t);
|
||||||
int checkTypeTermlist (Termlist tl);
|
|
||||||
int checkTypeLocals (const System sys);
|
|
||||||
Termlist typelistConjunct (Termlist typelist1, Termlist Typelist2);
|
Termlist typelistConjunct (Termlist typelist1, Termlist Typelist2);
|
||||||
int checkAllSubstitutions (const System sys);
|
int checkAllSubstitutions (const System sys);
|
||||||
int isAgentType (Termlist typelist);
|
int isAgentType (Termlist typelist);
|
||||||
|
@ -915,12 +915,6 @@ xmlOutRuns (const System sys)
|
|||||||
* Publicly available functions
|
* Publicly available functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//! Output for a concrete trace (from modelchecker)
|
|
||||||
void
|
|
||||||
xmlOutTrace (const System sys)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Output for a semitrace (from arachne method)
|
//! Output for a semitrace (from arachne method)
|
||||||
/**
|
/**
|
||||||
* Note: Uses get_trace_length(), which is defined for the arachne method
|
* Note: Uses get_trace_length(), which is defined for the arachne method
|
||||||
|
@ -27,7 +27,6 @@ void xmlOutInit (void);
|
|||||||
void xmlOutDone (void);
|
void xmlOutDone (void);
|
||||||
|
|
||||||
void xmlOutSemitrace (const System sys);
|
void xmlOutSemitrace (const System sys);
|
||||||
void xmlOutTrace (const System sys);
|
|
||||||
void xmlOutClaim (const System sys, Claimlist cl);
|
void xmlOutClaim (const System sys, Claimlist cl);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user