public static void postToForwardChainingQueue(Proposition self, World world) {
    if (Proposition.unknownP(self) &&
        (!(self.kind == Logic.KWD_FUNCTION))) {
      return;
    }
    if (world == null) {
      world = ((World)(((Context)(Stella.$CONTEXT$.get()))));
    }
    { PropagationEnvironment environment = Logic.getPropagationEnvironment(world);
      NamedDescription description = null;

      { Keyword testValue000 = self.kind;

        if ((testValue000 == Logic.KWD_ISA) ||
            ((testValue000 == Logic.KWD_PREDICATE) ||
             (testValue000 == Logic.KWD_FUNCTION))) {
          if (environment.forwardChainingSet.memberP(self)) {
            return;
          }
          description = Logic.getDescription(((Surrogate)(self.operator)));
          if ((description != null) &&
              Description.hasForwardChainingRulesP(description, self)) {
            environment.forwardChainingSet.insert(self);
            environment.forwardChainingQueue.insert(self);
          }
        }
        else {
        }
      }
    }
  }