Exemplo n.º 1
0
    public ProofOutcome AddObjectInvariants(ProofObligation obl, IEnumerable<BoxedExpression> objectInvariants, ProofOutcome originalOutcome)
    {
      Contract.Requires(obl != null);
      Contract.Requires(objectInvariants != null);

      return ProofOutcome.Top;
    }
    public bool TryInferConditions(ProofObligation obl, ICodeFixesManager codefixesManager, out InferredConditions preConditions)
    {
      preConditions = null;
      foreach (var inferencer in this.inferencers)
      {
        if (inferencer == null)
          continue;

        InferredConditions tmp;
        if (inferencer.TryInferConditions(obl, codefixesManager, out tmp))
        {
          Contract.Assert(tmp != null);
          if (preConditions == null)
          {
            preConditions = tmp;
          }
          else
          {
            preConditions.AddRange(tmp);
          }
        }
      }

      return preConditions != null;
    }
Exemplo n.º 3
0
        public IEnumerable<WarningContext> AddCalleeAssumes(ProofObligation obl, IEnumerable<IInferredCondition> assumes)
        {
            Contract.Requires(obl != null);
            Contract.Requires(assumes != null);

            Contract.Ensures(Contract.Result<IEnumerable<WarningContext>>() != null);

            return null;
        }
Exemplo n.º 4
0
        public void Add(ProofObligation obl, BoxedExpression exp, ProofOutcome outcome)
        {
            Contract.Requires(obl != null);
            Contract.Requires(exp != null);

            this.inferred.Add(new Tuple <BoxedExpression, string, ProofOutcome, List <ProofObligation> >(exp, exp.ToString(), outcome, new List <ProofObligation>()
            {
                obl
            }));

            // we added a new condition, let us discare the previous ones
            this.preconditions = null;
        }
Exemplo n.º 5
0
        public ProofOutcome AddPreconditionOrAssume(ProofObligation obl, IEnumerable<BoxedExpression> conditions, ProofOutcome outcome = ProofOutcome.Top)
        {
            Contract.Requires(conditions != null);
            Contract.Requires(obl != null);

            if (this.CanAddPreconditions)
            {
                Contract.Assume(this.PreCondition.Dispatch != null);
                return this.PreCondition.Dispatch.AddPreconditions(obl, conditions, outcome);
            }
            else
            {
                this.Assumptions.AddEntryAssumes(obl, conditions);
                this.OverriddenMethodPreconditionDispatcher.AddPotentialPreconditions(obl, conditions);

                return outcome;
            }
        }
Exemplo n.º 6
0
    public bool TryLookUp(ProofObligation obl, BoxedExpression exp, out ProofOutcome outcome)
    {
      Contract.Requires(obl != null);
      Contract.Requires(exp != null);

      var expStr = exp.ToString();
      foreach (var quad in this.inferred)
      {
        if (quad.Item2 == expStr)
        {
          quad.Item4.Add(obl);
          outcome = quad.Item3;
          return true;
        }
      }
      outcome = ProofOutcome.Top;

      return false;
    }
Exemplo n.º 7
0
        public bool TryLookUp(ProofObligation obl, BoxedExpression exp, out ProofOutcome outcome)
        {
            Contract.Requires(obl != null);
            Contract.Requires(exp != null);

            var expStr = exp.ToString();

            foreach (var quad in this.inferred)
            {
                if (quad.Item2 == expStr)
                {
                    quad.Item4.Add(obl);
                    outcome = quad.Item3;
                    return(true);
                }
            }
            outcome = ProofOutcome.Top;

            return(false);
        }
Exemplo n.º 8
0
 public ProofOutcome AddObjectInvariants(ProofObligation obl, IEnumerable<BoxedExpression> objectInvariants, ProofOutcome originalOutcome)
 {
   generated += objectInvariants.Count();
   return this.inner.AddObjectInvariants(obl, objectInvariants, originalOutcome);
 }
 public void AddPotentialPreconditions(ProofObligation obl, IEnumerable<BoxedExpression> assumes)
 {
     generated += assumes.Count();
     inner.AddPotentialPreconditions(obl, assumes);
 }
 public void AddPotentialPreconditions(ProofObligation obl, IEnumerable<BoxedExpression> assumes)
 {
     Contract.Requires(obl != null);
     Contract.Requires(assumes != null);
 }
Exemplo n.º 11
0
    public void Add(ProofObligation obl, BoxedExpression exp, ProofOutcome outcome)
    {
      Contract.Requires(obl != null);
      Contract.Requires(exp != null);

      this.inferred.Add(new Tuple<BoxedExpression, string, ProofOutcome, List<ProofObligation>>(exp, exp.ToString(), outcome, new List<ProofObligation>() { obl }));

      // we added a new condition, let us discare the previous ones
      this.preconditions = null; 
    }
Exemplo n.º 12
0
 public void AddEntryAssumes(ProofObligation obl, IEnumerable<BoxedExpression> assumes)
 {
     Contract.Requires(obl != null);
     Contract.Requires(assumes != null);
 }
Exemplo n.º 13
0
 public IEnumerable<WarningContext> AddCalleeAssumes(ProofObligation obl, IEnumerable<IInferredCondition> assumes)
 {
     calleeAssumeStatistics.Generated += assumes.Count();
     return inner.AddCalleeAssumes(obl, assumes);
 }
Exemplo n.º 14
0
 public void AddEntryAssumes(ProofObligation obl, IEnumerable<BoxedExpression> assumes)
 {
     entryAssumeStatistics.Generated += assumes.Count();
     inner.AddEntryAssumes(obl, assumes);
 }