public static boolean elaborationRuleP(Proposition consequentproposition, Proposition forwardrule, Vector arguments) {
    { boolean testValue000 = false;

      testValue000 = Proposition.predicationP(consequentproposition);
      if (testValue000) {
        testValue000 = Proposition.assertedAsTrueP(forwardrule);
        if (testValue000) {
          { boolean alwaysP000 = true;

            { Stella_Object arg = null;
              Vector vector000 = consequentproposition.arguments;
              int index000 = 0;
              int length000 = vector000.length();

              loop000 : for (;index000 < length000; index000 = index000 + 1) {
                arg = (vector000.theArray)[index000];
                if (!arguments.memberP(arg)) {
                  alwaysP000 = false;
                  break loop000;
                }
              }
            }
            testValue000 = alwaysP000;
          }
        }
      }
      { boolean value000 = testValue000;

        return (value000);
      }
    }
  }