- Checks are now in. Untested though.

This commit is contained in:
ccremers 2004-08-27 15:02:33 +00:00
parent 68bbdc2794
commit 2decf44bd2

View File

@ -1318,6 +1318,44 @@ prune_bounds ()
return 0; return 0;
} }
//! Prune determination for specific properties
/**
* Sometimes, a property holds in part of the tree. Thus, we don't need to explore that part further if we want to find an attack.
*
*@returns true iff this state is invalid for some reason
*/
int
prune_claim_specifics ()
{
if (current_claim->type == CLAIM_Niagree)
{
if (arachne_claim_niagree (sys, current_claim->r, current_claim->ev))
{
current_claim->count = statesIncrease (current_claim->count);
if (sys->output == PROOF)
{
indentPrint ();
eprintf ("Pruned: niagree holds in this part of the proof tree.\n");
}
return 1;
}
}
if (current_claim->type == CLAIM_Nisynch)
{
if (arachne_claim_nisynch (sys, current_claim->r, current_claim->ev))
{
current_claim->count = statesIncrease (current_claim->count);
if (sys->output == PROOF)
{
indentPrint ();
eprintf ("Pruned: nisynch holds in this part of the proof tree.\n");
}
return 1;
}
}
return 0;
}
//! Setup system for specific claim test //! Setup system for specific claim test
add_claim_specifics (const Claimlist cl, const Roledef rd) add_claim_specifics (const Claimlist cl, const Roledef rd)
{ {
@ -1385,6 +1423,8 @@ iterate ()
flag = 1; flag = 1;
if (!prune_theorems ()) if (!prune_theorems ())
{
if (!prune_claim_specifics ())
{ {
if (!prune_bounds ()) if (!prune_bounds ())
{ {
@ -1429,6 +1469,7 @@ iterate ()
current_claim->complete = 0; current_claim->complete = 0;
} }
} }
}
#ifdef DEBUG #ifdef DEBUG
if (DEBUGL (5) && !flag) if (DEBUGL (5) && !flag)