static void LessThanRefinement <TEnv, TVar, TExpr, TInterval> (Rational successor, TEnv env, TInterval leftIntv, TInterval rightIntv, TVar leftVar, TVar rightVar, ref InferenceResult <TVar, TInterval> result) where TEnv : IIntervalEnvironment <TVar, TExpr, TInterval, Rational> where TInterval : IntervalBase <TInterval, Rational> where TVar : IEquatable <TVar> { TInterval refined; if (TryRefineKLessThanRight <TEnv, TVar, TExpr, TInterval> (leftIntv, rightVar, successor, env, out refined)) { result = result.AddConstraintFor(rightVar, refined); } if (TryRefineLessThan <TEnv, TVar, TExpr, TInterval> (leftVar, rightIntv, env, out refined)) { result = result.AddConstraintFor(leftVar, refined); } }