public static void deriveDeferredContrapositiveSatelliteRules(Description self) {
    if (Logic.$LAZY_SATELLITE_RULESp$) {
      if (BooleanWrapper.coerceWrappedBooleanToBoolean(self.deferredContrapositivesP())) {
        { Proposition masterproposition = null;
          List queuedrules = List.newList();

          { Proposition prop = null;
            Iterator iter000 = Logic.unfilteredDependentImpliesPropositions(self).allocateIterator();

            while (iter000.nextP()) {
              prop = ((Proposition)(iter000.value));
              if (prop.kind == Logic.KWD_IMPLIES) {
                masterproposition = ((Proposition)(KeyValueList.dynamicSlotValue(prop.dynamicSlots, Logic.SYM_LOGIC_MASTER_PROPOSITION, null)));
                if ((masterproposition != null) &&
                    (!masterproposition.deletedP())) {
                  queuedrules.insertNew(masterproposition);
                }
              }
            }
          }
          { Proposition forallprop = null;
            Cons iter001 = queuedrules.theConsList;

            for (;!(iter001 == Stella.NIL); iter001 = iter001.rest) {
              forallprop = ((Proposition)(iter001.value));
              Proposition.deriveSatelliteRulesForGoalP(forallprop, self, Logic.KWD_CONTRAPOSITIVE, false);
            }
          }
        }
      }
    }
  }