public static ICollection <IReference> MostSpecificRefinement(this IClass scope, IReference reference) { var decompositions = scope.Decompose(reference); var result = new List <IReference>(); foreach (var att in decompositions) { if (!decompositions.Any(a => a.Refines == att)) { result.Add(att); } } return(result); }