anchor.diff:          let arr = Array.create (Seq.length outgoing) eArray.[0] in
           for i in 0 .. (Seq.length outgoing - 1) do
               let e = Seq.item i outgoing in
  -            let eVar = Map.find e eMap in
  +            let eVar = Map.find (e.Source, e.Target) eMap in
               Array.set arr i eArray.[eVar];
  -        let exp = ctx.MkAtMost(arr, 1) in
  +        let exp = ctx.MkAtMost(arr, 1u) in
           condSet <- Set.add exp condSet;
   
       // relationship between nodes with the same topological location
  
positive.code:     s.Assert(Set.toArray condSet);
      while (s.Check() = Status.SATISFIABLE) do
        let mutable solnSet = Set.empty in
        for i in 0 .. (Seq.length edges - 1) do
          if (s.Model.ConstInterp(eArray.[i]).IsTrue) then
              solnSet <- Set.add eArray.[i] solnSet;
          else
              ();
        let negSoln = ctx.MkNot(ctx.MkAnd(Set.toArray solnSet)) in
        condSet <- Set.add negSoln condSet;
        s.Assert(Set.toArray condSet);
  
negative.code:         let ends = ctx.MkAnd arr in
          let exp = ctx.MkImplies (eArray.[i], ends) in
          condSet <- Set.add exp condSet;
  
      // if a vertex is true, atleast one incoming edge is true, and atleast one outgoign edge
      for i in 0 .. (Seq.length vertices - 1) do
          // find vertices at the start and end of an edge for implication between edges and vertices for connectivity
  