Esempio n. 1
0
        public override Domain <E, V> Assume(APC pc, EdgeTag tag, V condition, Domain <E, V> data)
        {
            IExpressionContext <E, V> exprCtx = ContextProvider.ExpressionContext;
            E expr = exprCtx.Refine(pc, condition);

            return(exprCtx.Decode <Pair <bool, Domain <E, V> >, Domain <E, V>, ExpressionAssumeDecoder <E, V> >
                       (expr, new ExpressionAssumeDecoder <E, V> (ContextProvider),
                       new Pair <bool, Domain <E, V> > (tag != EdgeTag.False, data)));
        }
Esempio n. 2
0
        public ProofOutcome ValidateExplicitAssertion(APC pc, V value)
        {
            Domain <E, V> domain;

            if (PreStateLookup(pc, out domain) && !domain.NonNulls.IsBottom)
            {
                IExpressionContext <E, V> exprCtx = ContextProvider.ExpressionContext;
                return(exprCtx.Decode <bool, ProofOutcome, ExpressionAssertDischarger <E, V> > (exprCtx.Refine(pc, value), new ExpressionAssertDischarger <E, V> (this, pc), true));
            }
            return(ProofOutcome.Bottom);
        }