public static void removeDependentPropositionLink(Stella_Object self, Proposition proposition) {
    { Surrogate testValue000 = Stella_Object.safePrimaryType(self);

      if (Surrogate.subtypeOfP(testValue000, Logic.SGT_LOGIC_PROPOSITION)) {
        { Proposition self000 = ((Proposition)(self));

          self000.dependentPropositions.remove(proposition);
        }
      }
      else if (Surrogate.subtypeOfP(testValue000, Logic.SGT_LOGIC_LOGIC_OBJECT)) {
        { LogicObject self000 = ((LogicObject)(self));

          BacklinksIndex.helpRemoveDependentProposition(Logic.getBacklinksIndex(self000), proposition);
        }
      }
      else if (Surrogate.subtypeOfWrapperP(testValue000)) {
        { Wrapper self000 = ((Wrapper)(self));

          { BacklinksIndex index = Logic.getBacklinksIndex(self000);

            if (index != null) {
              BacklinksIndex.helpRemoveDependentProposition(index, proposition);
            }
          }
        }
      }
      else if (Surrogate.subtypeOfP(testValue000, Logic.SGT_STELLA_THING)) {
        { Thing self000 = ((Thing)(self));

          BacklinksIndex.helpRemoveDependentProposition(Logic.getBacklinksIndex(self000), proposition);
        }
      }
      else {
      }
    }
  }