BUGFIX: Use name as reference point, not after deVar.
This is not a real bug but only in the sense that the heuristic didn't always work as intended for choosing names.
This commit is contained in:
parent
b0e5128e23
commit
277bb0a256
@ -1849,12 +1849,12 @@ chooseBestCandidate (Termlist candidatelist, Term var)
|
|||||||
* - seen is a termlist that contains newly generated terms (usage: seen = createNewTerm(seen,.. )
|
* - seen is a termlist that contains newly generated terms (usage: seen = createNewTerm(seen,.. )
|
||||||
* - typeterm is the type name term (e.g., "Agent" term, "Data" in case not clear.)
|
* - typeterm is the type name term (e.g., "Agent" term, "Data" in case not clear.)
|
||||||
* - isagent is a boolean that is true iff we are looking for an agent name from the initial knowledge for a role
|
* - isagent is a boolean that is true iff we are looking for an agent name from the initial knowledge for a role
|
||||||
* - var is the variable term
|
* - var is the variable term of which we use the name
|
||||||
*
|
*
|
||||||
* Output: the first element of the returned list, which is otherwise equal to seen.
|
* Output: the first element of the returned list, which is otherwise equal to seen.
|
||||||
*/
|
*/
|
||||||
Termlist
|
Termlist
|
||||||
createNewTerm (Termlist seen, Term typeterm, int isagent, Term var)
|
createNewTerm (Termlist seen, Term typeterm, int isagent, Term nameterm)
|
||||||
{
|
{
|
||||||
/* Does if have an explicit type?
|
/* Does if have an explicit type?
|
||||||
* If so, we try to find a fresh name from the intruder knowledge first.
|
* If so, we try to find a fresh name from the intruder knowledge first.
|
||||||
@ -1868,7 +1868,7 @@ createNewTerm (Termlist seen, Term typeterm, int isagent, Term var)
|
|||||||
{
|
{
|
||||||
Term t;
|
Term t;
|
||||||
|
|
||||||
t = chooseBestCandidate (candidatelist, var);
|
t = chooseBestCandidate (candidatelist, nameterm);
|
||||||
termlistDelete (candidatelist);
|
termlistDelete (candidatelist);
|
||||||
return termlistPrepend (seen, t);
|
return termlistPrepend (seen, t);
|
||||||
}
|
}
|
||||||
@ -1943,7 +1943,8 @@ makeTraceConcrete (const System sys)
|
|||||||
}
|
}
|
||||||
// We should turn this into an actual term
|
// We should turn this into an actual term
|
||||||
tlnew =
|
tlnew =
|
||||||
createNewTerm (tlnew, name, isAgentType (var->stype), var);
|
createNewTerm (tlnew, name, isAgentType (var->stype),
|
||||||
|
tl->term);
|
||||||
var->subst = tlnew->term;
|
var->subst = tlnew->term;
|
||||||
|
|
||||||
// Store for undo later
|
// Store for undo later
|
||||||
|
Loading…
Reference in New Issue
Block a user