public static boolean synonymSurrogateP(Surrogate name) {
    { Object old$Module$000 = Stella.$MODULE$.get();
      Object old$Context$000 = Stella.$CONTEXT$.get();

      try {
        Native.setSpecial(Stella.$MODULE$, name.homeModule());
        Native.setSpecial(Stella.$CONTEXT$, ((Module)(Stella.$MODULE$.get())));
        { Stella_Object value = name.surrogateValue;
          Surrogate valuename = Logic.objectSurrogate(value);

          { boolean testValue000 = false;

            testValue000 = valuename != null;
            if (testValue000) {
              testValue000 = !(name == valuename);
              if (testValue000) {
                { boolean foundP000 = false;

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

                    loop000 : for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
                      synonym = ((LogicObject)(iter000.value));
                      if (synonym.surrogateValueInverse == name) {
                        foundP000 = true;
                        break loop000;
                      }
                    }
                  }
                  testValue000 = foundP000;
                }
              }
            }
            { boolean value000 = testValue000;

              return (value000);
            }
          }
        }

      } finally {
        Stella.$CONTEXT$.set(old$Context$000);
        Stella.$MODULE$.set(old$Module$000);
      }
    }
  }