public static Stella_Object equivalentValueOf(Stella_Object self) {
    if (self == null) {
      return (null);
    }
    if (Surrogate.subtypeOfP(Stella_Object.safePrimaryType(self), Logic.SGT_LOGIC_LOGIC_OBJECT)) {
      { LogicObject self000 = ((LogicObject)(self));

        if (((Description)(Stella_Object.accessInContext(KeyValueList.dynamicSlotValue(self000.dynamicSlots, Logic.SYM_LOGIC_EQUIVALENT_VALUE, null), self000.homeContext, false))) != null) {
          return (Logic.equivalentValueOf(((Description)(Stella_Object.accessInContext(KeyValueList.dynamicSlotValue(self000.dynamicSlots, Logic.SYM_LOGIC_EQUIVALENT_VALUE, null), self000.homeContext, false)))));
        }
        else {
          return (self000);
        }
      }
    }
    else {
      return (self);
    }
  }