private void ProcessRetractedFact(NameVerbValueFact fact)
{
IList<Rule> newretracted = new List<Rule>();
foreach (var rule in this.fired)
if (rule.Conditions.Any(c => c is NameVerbValueFact && ((NameVerbValueFact)c).Name == fact.Name))
if (rule.RetractIfNotReady(this))
newretracted.Add(rule);
foreach (var rule in newretracted)
{
this.fired.Remove(rule);
this.notfired.Add(rule);
}
}