static ResultCounter VerifyFiles(List <string> fileNames) { Contract.Requires(cce.NonNullElements(fileNames)); Program program = GVUtil.IO.ParseBoogieProgram(fileNames, false); if (program == null) { return(ResultCounter.GetNewCounterWithInputError()); } KernelAnalyser.PipelineOutcome oc = KernelAnalyser.ResolveAndTypecheck(program, fileNames[fileNames.Count - 1]); if (oc != KernelAnalyser.PipelineOutcome.ResolvedAndTypeChecked) { return(ResultCounter.GetNewCounterWithInputError()); } KernelAnalyser.EliminateDeadVariables(program); KernelAnalyser.Inline(program); KernelAnalyser.CheckForQuantifiersAndSpecifyLogic(program); CommandLineOptions.Clo.PrintUnstructured = 2; if (CommandLineOptions.Clo.LoopUnrollCount != -1) { Debug.Assert(!CommandLineOptions.Clo.ContractInfer); program.UnrollLoops(CommandLineOptions.Clo.LoopUnrollCount, CommandLineOptions.Clo.SoundLoopUnrolling); } return(VerifyProgram(program)); }