示例#1
0
 internal Counterexample(List <Block> trace, List <object> augmentedTrace, Model model, VC.ModelViewInfo mvInfo, ProverContext context)
 {
     Contract.Requires(trace != null);
     Contract.Requires(context != null);
     this.Trace                 = trace;
     this.AugmentedTrace        = augmentedTrace;
     this.Model                 = model;
     this.MvInfo                = mvInfo;
     this.Context               = context;
     this.calleeCounterexamples = new Dictionary <TraceLocation, CalleeCounterexampleInfo>();
 }
示例#2
0
 internal Counterexample(List <Block> trace, Model model, VC.ModelViewInfo mvInfo, ProverContext context)
 {
     Contract.Requires(trace != null);
     Contract.Requires(context != null);
     this.Trace                 = trace;
     this.Model                 = model;
     this.MvInfo                = mvInfo;
     this.Context               = context;
     this.relatedInformation    = new List <string>();
     this.calleeCounterexamples = new Dictionary <TraceLocation, CalleeCounterexampleInfo>();
 }
示例#3
0
 public ReturnCounterexample(List <Block> trace, List <object> augmentedTrace, TransferCmd failingReturn, Ensures failingEnsures, Model model,
                             VC.ModelViewInfo mvInfo, ProverContext context, byte[] checksum)
     : base(trace, augmentedTrace, model, mvInfo, context)
 {
     Contract.Requires(trace != null);
     Contract.Requires(context != null);
     Contract.Requires(failingReturn != null);
     Contract.Requires(failingEnsures != null);
     Contract.Requires(!failingEnsures.Free);
     this.FailingReturn  = failingReturn;
     this.FailingEnsures = failingEnsures;
     this.checksum       = checksum;
 }
示例#4
0
 internal Counterexample(List <Block> trace, List <object> augmentedTrace, Model model, VC.ModelViewInfo mvInfo, ProverContext context)
 {
     Contract.Requires(trace != null);
     Contract.Requires(context != null);
     this.Trace   = trace;
     this.Model   = model;
     this.MvInfo  = mvInfo;
     this.Context = context;
     this.calleeCounterexamples = new Dictionary <TraceLocation, CalleeCounterexampleInfo>();
     // the call to instance method GetModelValue in the following code requires the fields Model and Context to be initialized
     this.AugmentedTrace = augmentedTrace
                           .Select(elem => elem is IdentifierExpr identifierExpr ? GetModelValue(identifierExpr.Decl) : elem).ToList();
 }
示例#5
0
 public CallCounterexample(List <Block> trace, List <object> augmentedTrace, CallCmd failingCall, Requires failingRequires, Model model,
                           VC.ModelViewInfo mvInfo, ProverContext context, byte[] checksum = null)
     : base(trace, augmentedTrace, model, mvInfo, context)
 {
     Contract.Requires(!failingRequires.Free);
     Contract.Requires(trace != null);
     Contract.Requires(context != null);
     Contract.Requires(failingCall != null);
     Contract.Requires(failingRequires != null);
     this.FailingCall        = failingCall;
     this.FailingRequires    = failingRequires;
     this.checksum           = checksum;
     this.SugaredCmdChecksum = failingCall.Checksum;
 }
示例#6
0
 public AssertCounterexample(List <Block> trace, List <object> augmentedTrace, AssertCmd failingAssert, Model model, VC.ModelViewInfo mvInfo,
                             ProverContext context)
     : base(trace, augmentedTrace, model, mvInfo, context)
 {
     Contract.Requires(trace != null);
     Contract.Requires(failingAssert != null);
     Contract.Requires(context != null);
     this.FailingAssert = failingAssert;
 }