public static Keyword tryContainedByProof(ControlFrame upframe) {
    { Proposition upproposition = upframe.proposition;
      Stella_Object subcollection = Logic.argumentBoundTo((upproposition.arguments.theArray)[0]);
      Stella_Object supercollection = Logic.argumentBoundTo((upproposition.arguments.theArray)[1]);
      Proposition containedbyprop = Logic.createProposition(Logic.SYM_LOGIC_CONTAINED_BY, 2);
      Description description = (Stella_Object.isaP(subcollection, Logic.SGT_LOGIC_DESCRIPTION) ? ((Description)(subcollection)) : ((Description)(supercollection)));
      int arity = description.arity();
      List bridgearguments = List.newList();
      ControlFrame containedbyframe = ControlFrame.createDownFrame(upframe, containedbyprop);

      if (upframe.reversePolarityP) {
        return (Logic.KWD_FAILURE);
      }
      { int i = Stella.NULL_INTEGER;
        int iter000 = 0;
        PatternVariable vbl = null;
        Vector vector000 = description.ioVariables;
        int index000 = 0;
        int length000 = vector000.length();

        for (;index000 < length000; iter000 = iter000 + 1, index000 = index000 + 1) {
          i = iter000;
          vbl = ((PatternVariable)((vector000.theArray)[index000]));
          { PatternVariable bridgevbl = PatternVariable.newPatternVariable();

            bridgevbl.boundToOffset = i;
            bridgevbl.skolemName = vbl.skolemName;
            bridgevbl.skolemType = vbl.skolemType;
            bridgearguments.insertLast(bridgevbl);
          }
        }
      }
      containedbyframe.state = Logic.KWD_CONTAINED_BY;
      containedbyframe.proposition = containedbyprop;
      (containedbyprop.arguments.theArray)[0] = (Logic.createContainedByArgument(subcollection, bridgearguments));
      (containedbyprop.arguments.theArray)[1] = (Logic.createContainedByArgument(supercollection, bridgearguments));
      ControlFrame.createPatternRecord(containedbyframe, null, null);
      PatternRecord.activatePatternRecord(containedbyframe.patternRecord, arity);
      return (Logic.KWD_MOVE_DOWN);
    }
  }