예제 #1
0
파일: DoomCheck.cs 프로젝트: omaragb/tlp182
        public void RespawnChecker(Implementation passive_impl, Checker check)
        {
            Contract.Requires(check != null);
            m_Check    = check;
            Label2Absy = new Dictionary <int, Absy>(); // This is only a dummy
            m_Evc      = new Evc(check);
            Dictionary <int, Absy> l2a = null;
            int    assertionCount; // compute and then ignore
            VCExpr vce = this.GenerateEVC(passive_impl, out l2a, check, out assertionCount);

            Contract.Assert(vce != null);
            Contract.Assert(l2a != null);
            Label2Absy = l2a;

            m_Evc.Initialize(vce);
        }
예제 #2
0
        public void RespawnChecker(Implementation passive_impl, Checker check)
        {
            Contract.Requires(check != null);
            m_Check = check;
            Label2Absy = new Dictionary<int, Absy>(); // This is only a dummy
            m_Evc = new Evc(check);
            Dictionary<int, Absy> l2a = null;
            int assertionCount;  // compute and then ignore
            VCExpr vce = this.GenerateEVC(passive_impl, out l2a, check, out assertionCount);
            Contract.Assert(vce != null);
            Contract.Assert(l2a != null);
            Label2Absy = l2a;

            m_Evc.Initialize(vce);            
        }
예제 #3
0
        public DoomCheck (Implementation passive_impl, Block unifiedExit, Checker check, List<Block> uncheckable, out int assertionCount) {
          Contract.Requires(passive_impl != null);
          Contract.Requires(check != null);
          Contract.Requires(uncheckable != null);
            m_Check = check;            

            int replaceThisByCmdLineOption = CommandLineOptions.Clo.DoomStrategy ;
            if (CommandLineOptions.Clo.DoomStrategy!=-1) Console.Write("Running experiments using {0} /", replaceThisByCmdLineOption);
            switch (replaceThisByCmdLineOption)
            {
                default:
                    {
                        if (CommandLineOptions.Clo.DoomStrategy != -1) Console.WriteLine("Path Cover specialK Strategy");
                        m_Order = new PathCoverStrategyK(passive_impl, unifiedExit, uncheckable);
                        break;
                    }
                case 1:
                    {
                        if (CommandLineOptions.Clo.DoomStrategy != -1) Console.WriteLine("Path Cover L Strategy");
                        m_Order = new PathCoverStrategy(passive_impl, unifiedExit, uncheckable);
                        break;
                    }
                case 2:
                    {
                        if (CommandLineOptions.Clo.DoomStrategy != -1) Console.WriteLine("hasse strategy");
                        m_Order = new HierachyStrategy(passive_impl, unifiedExit, uncheckable);

                        break;
                    }
                case 3:
                    {
                        if (CommandLineOptions.Clo.DoomStrategy != -1) Console.WriteLine("hasse+ce strategy");
                        m_Order = new HierachyCEStrategy(passive_impl, unifiedExit, uncheckable);
                        break;
                    }
                case 4:
                    {
                        if (CommandLineOptions.Clo.DoomStrategy != -1) Console.WriteLine("no strategy");
                        m_Order = new NoStrategy(passive_impl, unifiedExit, uncheckable);
                        break;
                    }
                    
            }

            Label2Absy = new Dictionary<int, Absy>(); // This is only a dummy
            m_Evc = new Evc(check);
            Dictionary<int, Absy> l2a = null;
            VCExpr vce = this.GenerateEVC(passive_impl, out l2a, check, out assertionCount);
            Contract.Assert(vce != null);
            Contract.Assert( l2a!=null);
            Label2Absy = l2a;
          
            m_Evc.Initialize(vce);
        }
예제 #4
0
파일: DoomCheck.cs 프로젝트: omaragb/tlp182
        public DoomCheck(Implementation passive_impl, Block unifiedExit, Checker check, List <Block> uncheckable, out int assertionCount)
        {
            Contract.Requires(passive_impl != null);
            Contract.Requires(check != null);
            Contract.Requires(uncheckable != null);
            m_Check = check;

            int replaceThisByCmdLineOption = CommandLineOptions.Clo.DoomStrategy;

            if (CommandLineOptions.Clo.DoomStrategy != -1)
            {
                Console.Write("Running experiments using {0} /", replaceThisByCmdLineOption);
            }
            switch (replaceThisByCmdLineOption)
            {
            default:
            {
                if (CommandLineOptions.Clo.DoomStrategy != -1)
                {
                    Console.WriteLine("Path Cover specialK Strategy");
                }
                m_Order = new PathCoverStrategyK(passive_impl, unifiedExit, uncheckable);
                break;
            }

            case 1:
            {
                if (CommandLineOptions.Clo.DoomStrategy != -1)
                {
                    Console.WriteLine("Path Cover L Strategy");
                }
                m_Order = new PathCoverStrategy(passive_impl, unifiedExit, uncheckable);
                break;
            }

            case 2:
            {
                if (CommandLineOptions.Clo.DoomStrategy != -1)
                {
                    Console.WriteLine("hasse strategy");
                }
                m_Order = new HierachyStrategy(passive_impl, unifiedExit, uncheckable);

                break;
            }

            case 3:
            {
                if (CommandLineOptions.Clo.DoomStrategy != -1)
                {
                    Console.WriteLine("hasse+ce strategy");
                }
                m_Order = new HierachyCEStrategy(passive_impl, unifiedExit, uncheckable);
                break;
            }

            case 4:
            {
                if (CommandLineOptions.Clo.DoomStrategy != -1)
                {
                    Console.WriteLine("no strategy");
                }
                m_Order = new NoStrategy(passive_impl, unifiedExit, uncheckable);
                break;
            }
            }

            Label2Absy = new Dictionary <int, Absy>(); // This is only a dummy
            m_Evc      = new Evc(check);
            Dictionary <int, Absy> l2a = null;
            VCExpr vce = this.GenerateEVC(passive_impl, out l2a, check, out assertionCount);

            Contract.Assert(vce != null);
            Contract.Assert(l2a != null);
            Label2Absy = l2a;

            m_Evc.Initialize(vce);
        }