public static void transferLogicInformationFromRelationHook(List relationslist) {
    { Relation oldrelation = ((Relation)(relationslist.first()));
      Relation newrelation = ((Relation)(relationslist.second()));
      NamedDescription olddescription = ((NamedDescription)(KeyValueList.dynamicSlotValue(oldrelation.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null)));
      NamedDescription newdescription = ((NamedDescription)(KeyValueList.dynamicSlotValue(newrelation.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null)));

      if (olddescription != null) {
        NamedDescription.retractRelationAxioms(olddescription);
        if (newdescription != null) {
          {
            Logic.transferPropositionsAndBacklinks(((NamedDescription)(KeyValueList.dynamicSlotValue(oldrelation.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null))), ((NamedDescription)(KeyValueList.dynamicSlotValue(newrelation.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null))));
            Logic.destroyInstance(olddescription);
          }
        }
        else {
          {
            KeyValueList.setDynamicSlotValue(newrelation.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, olddescription, null);
            olddescription.nativeRelationSetter(newrelation);
            Logic.finalizeSuperrelationLinks(newrelation);
          }
        }
        KeyValueList.setDynamicSlotValue(oldrelation.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null, null);
      }
      if (Surrogate.subtypeOfClassP(Stella_Object.safePrimaryType(oldrelation))) {
        { Stella_Class oldrelation000 = ((Stella_Class)(oldrelation));

          KeyValueList.setDynamicSlotValue(((Stella_Class)(newrelation)).dynamicSlots, Logic.SYM_STELLA_CLASS_EXTENSION, ((ClassExtension)(KeyValueList.dynamicSlotValue(oldrelation000.dynamicSlots, Logic.SYM_STELLA_CLASS_EXTENSION, null))), null);
          KeyValueList.setDynamicSlotValue(oldrelation000.dynamicSlots, Logic.SYM_STELLA_CLASS_EXTENSION, null, null);
        }
      }
      else {
      }
    }
  }