public static void transferSynonyms(Stella_Object oldobject, Stella_Object newobject) {
    { List originatedprops = Logic.originatedPropositions(oldobject);

      { LogicObject synonym = null;
        Cons iter000 = Logic.getSynonyms(oldobject);

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          synonym = ((LogicObject)(iter000.value));
          { boolean foundP000 = false;

            { Proposition prop = null;
              Iterator iter001 = Logic.allTrueDependentPropositions(synonym, Logic.SGT_PL_KERNEL_KB_SYNONYM, false);

              loop001 : while (iter001.nextP()) {
                prop = ((Proposition)(iter001.value));
                if (Stella_Object.eqlP((prop.arguments.theArray)[0], oldobject) &&
                    (((prop.arguments.theArray)[1] == synonym) &&
                     (!originatedprops.membP(prop)))) {
                  foundP000 = true;
                  break loop001;
                }
              }
            }
            if (foundP000) {
              Logic.objectSurrogate(synonym).surrogateValue = newobject;
            }
            else {
              Logic.objectSurrogate(synonym).surrogateValue = null;
            }
          }
        }
      }
    }
  }