public static Proposition findMatchingNonDescriptiveProposition(Proposition self, KeyValueMap mapping) {
    if (!((BooleanWrapper)(KeyValueList.dynamicSlotValue(self.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTIVEp, Stella.FALSE_WRAPPER))).wrapperValue) {
      return (self);
    }
    { IntegerWrapper index = IntegerWrapper.wrapInteger(Proposition.propositionHashIndex(self, mapping, true));
      List bucket = ((List)(Logic.$STRUCTURED_OBJECTS_INDEX$.lookup(index)));

      if (bucket != null) {
        return (Logic.lookupMatchingPropositionInBucket(bucket, self, mapping));
      }
      else {
        return (null);
      }
    }
  }