public static void finalizeSuperrelationLinks(Relation self) {
    { NamedDescription subdescription = Logic.getDescription(self);

      { Object old$Evaluationmode$000 = Logic.$EVALUATIONMODE$.get();
        Object old$FillingconstraintpropagationqueuesP$000 = Logic.$FILLINGCONSTRAINTPROPAGATIONQUEUESp$.get();

        try {
          Native.setSpecial(Logic.$EVALUATIONMODE$, Logic.KWD_EXTENSIONAL_ASSERTION);
          Native.setBooleanSpecial(Logic.$FILLINGCONSTRAINTPROPAGATIONQUEUESp$, false);
          { Object old$Module$000 = Stella.$MODULE$.get();
            Object old$Context$000 = Stella.$CONTEXT$.get();

            try {
              Native.setSpecial(Stella.$MODULE$, ((Module)(subdescription.homeContext)));
              Native.setSpecial(Stella.$CONTEXT$, ((Module)(Stella.$MODULE$.get())));
              { Relation renamed_Super = null;
                Iterator iter000 = Logic.directSuperrelations(self);

                while (iter000.nextP()) {
                  renamed_Super = ((Relation)(iter000.value));
                  if (((NamedDescription)(KeyValueList.dynamicSlotValue(renamed_Super.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTION, null))) != null) {
                    NamedDescription.assertImpliesLinkBetweenRelations(subdescription, Logic.getDescription(renamed_Super));
                  }
                }
              }

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

        } finally {
          Logic.$FILLINGCONSTRAINTPROPAGATIONQUEUESp$.set(old$FillingconstraintpropagationqueuesP$000);
          Logic.$EVALUATIONMODE$.set(old$Evaluationmode$000);
        }
      }
    }
  }