public static Cons updateNativeSlotProposition(Proposition proposition, Keyword updatemode) {
    { Relation slot = Logic.surrogateToDescription(((Surrogate)(proposition.operator))).nativeRelation();
      Stella_Object renamed_Object = Logic.valueOf((proposition.arguments.theArray)[0]);
      Stella_Object value = Logic.valueOf((proposition.arguments.theArray)[1]);

      if (updatemode == Logic.KWD_ASSERT_TRUE) {
        if (((Boolean)(Logic.$CLIPPINGENABLEDp$.get())).booleanValue()) {
          Logic.clearNativeSlotValue(((Thing)(renamed_Object)), ((StorageSlot)(slot)));
        }
        Proposition.assignNativeSlotValue(proposition, ((Thing)(renamed_Object)), ((StorageSlot)(slot)), value);
      }
      else if (updatemode == Logic.KWD_RETRACT_TRUE) {
        Logic.dropNativeSlotValue(((Thing)(renamed_Object)), ((StorageSlot)(slot)), value);
      }
      else {
        {
          Stella.STANDARD_WARNING.nativeStream.println("Warning: Illegal update to native slot value.  Mode:  `" + updatemode + "'");
          Stella.STANDARD_WARNING.nativeStream.println("   Proposition:  `" + proposition + "'");
          Stella.STANDARD_WARNING.nativeStream.println();
        }
;
      }
      return (Stella.NIL);
    }
  }