public static HyperEquation operator +(HyperEquation v, Abc shift)
        {
            var he = new HyperEquation();

            //foreach(var vi in v) he.Add(vi[shift - vi.AbcShift].GetShiftedObj()[shift + vi.AbcShift]);
            foreach (var vi in v)
            {
                he.Add(vi.GetShiftedObj(shift));
            }
            he.FromEquations = v.FromEquations;
            return(he);
        }
        public HyperEquation Simplify()
        {
            var he = new HyperEquation();

            foreach (var c in this)
            {
                he.Add(c.Simplify());
            }
            var cm = Expression.CommonMultiplier(he._cfs.ToArray(m => m.Data.StrFunc));

            if (cm[0] != '-' && he._cfs.Data.StrFunc.StartsWith("-", StringComparison.OrdinalIgnoreCase))
            {
                cm = "-" + cm;
            }
            foreach (var c in he._cfs)
            {
                c.Data = (c.Data / new Coef(cm, c.Data.AbcShift)).Simplify();
            }
            he.FromEquations = FromEquations;
            return(he);
        }