anchor.diff:                 printfn "  was able to prove the 3rd"
                  match findMin enc e2 with
                  | Some k -> 
  -                  if k > kA' then 
  -                     learned.[u] <- (kS, k)
  -                     printfn "     adding: %s to the stack" (Topology.router u.Node.Loc ti)
  -                     push u
  -               | None -> ()
  +                  let m = 
  +                     if !first then k
  +                     else min k kA
  +                  if m > kA' then 
  +                     learned.[u] <- (kS, m)
  +                     printfn "     adding: %s to the stack" (Topology.router u.Node.Loc ti)
  +                     push u
  +               | None -> ()
  +      first := false
         debugLearned learned ti
      None
  
positive.code:                printfn "   Rule 1-2"
                 match findMin enc e1 with
                 | Some k -> 
                    if k > kS' then 
                       learned.[u] <- (k, kA)
                       printfn "     adding: %s to the stack" (Topology.router u.Node.Loc ti)
                       push u
                 | None -> ()
  
negative.code:                match findMin enc e1 with
                 | Some k -> 
                    printfn "   found min: %d" k
                    let m = 
                       if !first then k
                       else min k kS
                    if m > kS' then 
                       learned.[u] <- (m, kA)
                       printfn "     adding: %s to the stack" (Topology.router u.Node.Loc ti)
                       push u
                 | None -> ()
  