- Singular variables need to be bound as well (to ensure ordering is

correct w.r.t. e.g. nonces, if the intruder cannot construct them.)
This commit is contained in:
ccremers 2004-08-28 12:20:50 +00:00
parent 2ddd1eee13
commit acb89922f1

View File

@ -898,38 +898,31 @@ select_goal ()
b = (Binding) bl->data;
if (!b->done)
{
// We don't care about singular variables.
/**
* Note that to mirror the modelchecker semantics, we should check whether the type exists in M_0.
*/
if (!isTermVariable (b->term))
{
float cons;
float cons;
if (sys->output == PROOF && best != NULL)
eprintf (", ");
if (b->level >= max_level)
if (sys->output == PROOF && best != NULL)
eprintf (", ");
if (b->level >= max_level)
{
if (b->level > max_level)
{
if (b->level > max_level)
{
max_level = b->level;
min_constrain = 1; // 1 is the maximum
}
cons = term_constrain_level (b->term);
if (cons <= min_constrain)
{
min_constrain = cons;
best = b;
if (sys->output == PROOF)
eprintf ("*");
}
max_level = b->level;
min_constrain = 1; // 1 is the maximum
}
if (sys->output == PROOF)
cons = term_constrain_level (b->term);
if (cons <= min_constrain)
{
termPrint (b->term);
eprintf ("[%i]", b->level);
min_constrain = cons;
best = b;
if (sys->output == PROOF)
eprintf ("*");
}
}
if (sys->output == PROOF)
{
termPrint (b->term);
eprintf ("[%i]", b->level);
}
}
bl = bl->next;
}