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