public static bool HasInstantiationSources(Implementation impl)
        {
            var instanceChecker = new InstantiationSourceChecker();

            instanceChecker.VisitImplementation(impl);
            return(instanceChecker.hasInstances);
        }
        public static VCExpr Instantiate(Implementation impl, VCExpressionGenerator vcExprGen, Boogie2VCExprTranslator exprTranslator, VCExpr vcExpr)
        {
            if (!InstantiationSourceChecker.HasInstantiationSources(impl))
            {
                return(vcExpr);
            }
            var qiEngine = new QuantifierInstantiationEngine(vcExprGen, exprTranslator);

            return(qiEngine.Execute(impl, vcExpr));
        }