public static Keyword executeProofStrategy(ControlFrame frame) {
    { Keyword testValue000 = frame.currentStrategy;

      if (testValue000 == Logic.KWD_SPECIALIST) {
        return (ControlFrame.continueSpecialistProof(frame, Logic.KWD_DOWN));
      }
      else if (testValue000 == Logic.KWD_LOOKUP_GOAL_CACHES) {
        return (ControlFrame.tryGoalCachesProof(frame));
      }
      else if (testValue000 == Logic.KWD_LOOKUP_ASSERTIONS) {
        return (ControlFrame.tryLookupGroundAssertionsProof(frame));
      }
      else if (testValue000 == Logic.KWD_SCAN_PROPOSITIONS) {
        return (ControlFrame.tryScanPropositionsProof(frame));
      }
      else if (testValue000 == Logic.KWD_SCAN_PARTIAL_PROPOSITIONS) {
        return (ControlFrame.tryScanPartialPropositionsProof(frame));
      }
      else if (testValue000 == Logic.KWD_SCAN_COLLECTION) {
        return (ControlFrame.tryScanCollectionProof(frame));
      }
      else if (testValue000 == Logic.KWD_SHALLOW_DISPROOF) {
        return (ControlFrame.tryShallowDisproof(frame));
      }
      else if (testValue000 == Logic.KWD_SCAN_FOR_VALUE_CLASH) {
        return (ControlFrame.tryScanForValueClashProof(frame));
      }
      else if (testValue000 == Logic.KWD_MANUFACTURE_SKOLEM) {
        return (ControlFrame.tryManufactureSkolemProof(frame));
      }
      else if (testValue000 == Logic.KWD_ALL_SUBGOAL_STRATEGIES) {
        return (ControlFrame.trySubgoalStrategiesProof(frame));
      }
      else if (testValue000 == Logic.KWD_ANTECEDENTS) {
        if (frame.partialMatchFrame != null) {
          return (frame.partialMatchFrame.continuePartialAntecedentsProof(Logic.KWD_DOWN));
        }
        else {
          return (ControlFrame.continueAntecedentsProof(frame, Logic.KWD_DOWN));
        }
      }
      else if (testValue000 == Logic.KWD_FULL_SUBQUERY) {
        return (ControlFrame.tryFullSubqueryProof(frame));
      }
      else if (testValue000 == Logic.KWD_GOAL_COMPLEMENT) {
        return (ControlFrame.tryGoalComplementProof(frame));
      }
      else if (testValue000 == Logic.KWD_CONDITIONAL_ANTECEDENT) {
        return (ControlFrame.continueConditionalAntecedentProof(frame, Logic.KWD_DOWN));
      }
      else if (testValue000 == Logic.KWD_FORWARD_GOALS) {
        return (ControlFrame.tryForwardGoalsProof(frame));
      }
      else if (testValue000 == Logic.KWD_IMPLIES) {
        return (ControlFrame.tryImpliesProof(frame));
      }
      else if (testValue000 == Logic.KWD_CONTAINED_BY) {
        return (ControlFrame.tryContainedByProof(frame));
      }
      else if (testValue000 == Logic.KWD_EQUIVALENCE) {
        return (ControlFrame.tryEquivalenceProof(frame));
      }
      else if (testValue000 == Logic.KWD_CLUSTERED_CONJUNCTION) {
        return (ControlFrame.continueClusteredConjunctionProof(frame, Logic.KWD_DOWN));
      }
      else if (testValue000 == Logic.KWD_DISJUNCTIVE_IMPLICATION_INTRODUCTION) {
        return (ControlFrame.tryDisjunctiveImplicationProof(frame));
      }
      else if (testValue000 == Logic.KWD_UNIVERSAL_INTRODUCTION) {
        return (ControlFrame.tryUniversalIntroductionProof(frame));
      }
      else if (testValue000 == Logic.KWD_SUBSUMPTION_TEST) {
        return (ControlFrame.trySubsumptionTest(frame));
      }
      else if (testValue000 == Logic.KWD_REFUTATION) {
        return (ControlFrame.tryRefutationProof(frame));
      }
      else if (testValue000 == Logic.KWD_SELECT_PARALLEL_THREAD) {
        return (ControlFrame.tryParallelThreadProof(frame));
      }
      else {
        { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

          stream000.nativeStream.print("`" + testValue000 + "' is not a valid case option");
          throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
        }
      }
    }
  }