Exemplo n.º 1
0
            public Term VisitBvOp(VCExprNAry node, LineariserOptions options)
            {
                Contract.Requires(options != null);
                Contract.Requires(node != null);
                List <int> args = new List <int>();

                foreach (VCExpr e in node)
                {
                    VCExprIntLit literal = e as VCExprIntLit;
                    System.Diagnostics.Debug.Assert(literal != null);
                    args.Add(literal.Val.ToInt);
                }
                System.Diagnostics.Debug.Assert(args.Count == 1);
                return(ExprLineariser.cm.z3.MkNumeral(args[0], ExprLineariser.cm.z3.MkBvSort((uint)node.Type.BvBits)));
            }
Exemplo n.º 2
0
        ////////////////////////////////////////////////////////////////////////////

        public override VCExpr Visit(VCExprLiteral node, bool arg)
        {
            Contract.Requires(node != null);
            Contract.Ensures(Contract.Result <VCExpr>() != null);
            VCExprIntLit intLit = node as VCExprIntLit;

            if (intLit != null)
            {
                if (NegConstantDistance > intLit.Val || intLit.Val > ConstantDistance)
                {
                    return(Represent(intLit.Val));
                }
            }
            return(node);
        }