public Microsoft.Dafny.Program ResolveProgram() { // _tacnyProgram.PrintBoogieProgram(); if (!_tacnyProgram.HasTacticApplications()) { return(_tacnyProgram.ParseProgram()); } foreach (var @class in _tacnyProgram.TopLevelClasses) { _tacnyProgram.CurrentTopLevelClass = @class; if (_tacnyProgram.CurrentTopLevelClass.Tactics.Count < 1) { continue; } Parallel.ForEach(_tacnyProgram.Members, (member) => { var res = LazyScanMemberBody(member.Value); if (res == null) { return; } lock (_solutionList) { _solutionList.Add(res); _solutionList.Fin(); } }); //foreach (var member in _tacnyProgram.Members) { // var res = LazyScanMemberBody(member.Value); // if (res == null) continue; // _solutionList.Add(res); // _solutionList.Fin(); //} } // temp hack List <Solution> final = new List <Solution>(); lock (_solutionList) { foreach (var solution in _solutionList.GetFinal()) { final.Add(solution[0]); } } Microsoft.Dafny.Program prog = _tacnyProgram.ParseProgram(); foreach (var solution in final) { solution.GenerateProgram(ref prog); } _tacnyProgram.DafnyProgram = prog; return(prog); }