Proof output improved for occurrences of the Athena problem.

This commit is contained in:
Cas Cremers 2007-09-18 15:36:11 +02:00
parent 59bcb18fec
commit 2107d76532
3 changed files with 18 additions and 8 deletions

View File

@ -2703,7 +2703,17 @@ isTriviallyKnownAfterArachne (const System sys, const Term t, const int run,
* Currently used in mgusubterm in mgu.c
*/
void
markNoFullProof ()
markNoFullProof (const Term tbig, const Term tsmall)
{
// Comment in proof
if (switches.output == PROOF)
{
indentPrint ();
eprintf ("Note: the pattern set will be incomplete, because ");
termPrint (tbig);
eprintf (" allows for infinitely many ways to subtermUnify ");
termPrint (tsmall);
eprintf (".\n");
}
sys->current_claim->complete = false;
}

View File

@ -35,6 +35,6 @@ void arachneOutputAttack ();
void printSemiState ();
int countIntruderActions ();
void role_name_print (const int run);
void markNoFullProof ();
void markNoFullProof (const Term tbig, const Term tsmall);
#endif

View File

@ -328,12 +328,12 @@ subtermUnify (Term tbig, Term tsmall, Termlist tl, Termlist keylist,
if (isOpenVariable (tbig))
{
// This one needs to be pursued by further constraint adding
/**
* Currently, this is not implemented yet. TODO.
* This is actually the main Athena problem that we haven't solved yet.
*/
// Mark that we don't have a full proof.
markNoFullProof ();
/**
* Currently, this is not implemented yet. TODO.
* This is actually the main Athena problem that we haven't solved yet.
*/
// Mark that we don't have a full proof, and possibly remark in proof output.
markNoFullProof (tbig, tsmall);
}
}