public static void collectFlatConjuncts(Proposition self, List flatconjuncts) {
    { Keyword testValue000 = self.kind;

      if (testValue000 == Logic.KWD_AND) {
        { Stella_Object arg = null;
          Vector vector000 = self.arguments;
          int index000 = 0;
          int length000 = vector000.length();

          for (;index000 < length000; index000 = index000 + 1) {
            arg = (vector000.theArray)[index000];
            Proposition.collectFlatConjuncts(((Proposition)(arg)), flatconjuncts);
          }
        }
        return;
      }
      else if (testValue000 == Logic.KWD_CONSTANT) {
        if (self.operator == Logic.SGT_STELLA_TRUE) {
          return;
        }
      }
      else {
        self.dependentPropositions.clear();
      }
    }
    { boolean foundP000 = false;

      { Proposition prop = null;
        Cons iter000 = flatconjuncts.theConsList;

        loop001 : for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
          prop = ((Proposition)(iter000.value));
          if (Proposition.duplicateAndOrArgumentsP(prop, self)) {
            foundP000 = true;
            break loop001;
          }
        }
      }
      if (!(foundP000)) {
        flatconjuncts.push(self);
      }
    }
  }