/// <summary>
 /// Must be called only once !
 /// </summary>
 public static void SetWitness(this IClousotCache @this, Outcome outcome, Witness witness, BijectiveMap <Subroutine, int> subroutineLocalIds)
 {
     if (@outcome.OutcomeContexts.Any())
     {
         throw new InvalidOperationException();
     }
     @outcome.ProofOutcome = witness.Outcome;
     @outcome.WarningType  = witness.Warning;
     @this.SetAPC(outcome, witness.PC, subroutineLocalIds);
     foreach (var c in witness.Context)
     {
         @this.AddNewOutcomeContext(outcome, c);
     }
 }
 public OutcomeContext AddNewOutcomeContext(Outcome outcome, WarningContext warningContext)
 {
     return(underlying.AddNewOutcomeContext(outcome, warningContext));
 }