private double GetProbability(Production production, Dictionary<Nonterminal, ICollection<Production>> productionsByNonterminal) { var sum = productionsByNonterminal.LookupEnumerable(production.Lhs).Sum((p) => p.Weight); return production.Weight / sum; }