diff --git a/Src/Core/Common/Rules/CoreRule.cs b/Src/Core/Common/Rules/CoreRule.cs index dc03b4d..841870e 100644 --- a/Src/Core/Common/Rules/CoreRule.cs +++ b/Src/Core/Common/Rules/CoreRule.cs @@ -1452,6 +1452,32 @@ private bool ApplyMatch(SymExecuter facts, Matcher m, Term t, int bindingLevel) return false; } + foreach (var item in partitions) + { + var curr = item.Value; + List terms = new List(); + if (curr.Count > 2) + { + foreach (var term in curr) + { + if (term.Symbol is UserCnstSymb && term.Groundness == Groundness.Variable) + { + UserCnstSymb userCnstSymb = (UserCnstSymb)term.Symbol; + if (userCnstSymb.IsAutoGen && userCnstSymb.Name.StartsWith("pm@")) + { + terms.Add(term); + } + } + } + + for (int i = 0; i < terms.Count - 1; i++) + { + facts.PendEqualityConstraint(terms[i], terms[i + 1]); + } + } + + } + return true; }