- The proofs now also show a list of open goals at each step.

This commit is contained in:
ccremers 2004-08-20 09:53:44 +00:00
parent bf2cbb5540
commit baae7ef94a

View File

@ -694,6 +694,11 @@ select_goal ()
Binding best; Binding best;
float min_constrain; float min_constrain;
if (sys->output == PROOF)
{
indentPrint ();
eprintf ("Listing open goals that might be chosen: ");
}
min_constrain = 2; // 1 is the maximum, but we want to initialize it. min_constrain = 2; // 1 is the maximum, but we want to initialize it.
best = NULL; best = NULL;
bl = sys->bindings; bl = sys->bindings;
@ -712,16 +717,28 @@ select_goal ()
{ {
float cons; float cons;
if (sys->output == PROOF && best != NULL)
eprintf (", ");
cons = term_constrain_level (b->term); cons = term_constrain_level (b->term);
if (cons <= min_constrain) if (cons <= min_constrain)
{ {
min_constrain = cons; min_constrain = cons;
best = b; best = b;
if (sys->output == PROOF)
eprintf ("*");
} }
if (sys->output == PROOF)
termPrint (b->term);
} }
} }
bl = bl->next; bl = bl->next;
} }
if (sys->output == PROOF)
{
if (best == NULL)
eprintf ("none");
eprintf ("\n");
}
return best; return best;
} }
@ -1139,7 +1156,8 @@ prune_theorems ()
} }
return 1; return 1;
} }
if ( sys->match < 2 && ( term_encryption_level (b->term) > max_encryption_level)) if (sys->match < 2
&& (term_encryption_level (b->term) > max_encryption_level))
{ {
// Prune: we do not need to construct such terms // Prune: we do not need to construct such terms
if (sys->output == PROOF) if (sys->output == PROOF)
@ -1180,13 +1198,17 @@ prune_bounds ()
// This needs some foundation. Probably * 2^max_encryption_level // This needs some foundation. Probably * 2^max_encryption_level
//!@todo Fix this bound //!@todo Fix this bound
if ((sys->match < 2) && (num_intruder_runs > ((double) sys->switchRuns * max_encryption_level * 8))) if ((sys->match < 2)
&& (num_intruder_runs >
((double) sys->switchRuns * max_encryption_level * 8)))
{ {
// Hardcoded limit on iterations // Hardcoded limit on iterations
if (sys->output == PROOF) if (sys->output == PROOF)
{ {
indentPrint (); indentPrint ();
eprintf ("Pruned: %i intruder runs is too much. (max encr. level %i)\n", num_intruder_runs, max_encryption_level); eprintf
("Pruned: %i intruder runs is too much. (max encr. level %i)\n",
num_intruder_runs, max_encryption_level);
} }
return 1; return 1;
} }