Goal:
  
  G : t
  HI : invariants G
  HG : acyclic_no_loop G
  n : Z
  x : V.t
  y : V.t
  Vy : ~ VSet.In y (V G)
  K := Z.succ (- n - n) : Z
  G' := G' (s G) x K : t
  e : y = y
  Hy : x <> y
  Hle : Z.of_nat
          (if is_left (right Hy)
           then Z.to_nat (- n)
           else to_label (lsp G' (s G) x)) + n <=
        Z.of_nat
          (if is_left (left e)
           then Z.to_nat (- n)
           else to_label (lsp G' (s G) y))
  nneg : n <= 0
  n0 : x <> y
  Hxs : lsp G x (s G) = None
  Vx : VSet.In x (V G)
  H : x <> s G
  X : correct_labelling G (fun x : V.t => to_label (lsp G' (s G) x))
  HI' : invariants G'
  HG' : acyclic_no_loop G'
  XX : correct_labelling G
         (fun z : V.t =>
          if is_left (V.eq_dec z y)
          then Z.to_nat (- n)
          else to_label (lsp G' (s G) z))
  YY : (Some
          (sweight
             (spath_step G' (VSet.remove (s G) (V G)) 
                (V G) (s G) x x
                (DisjointAdd_remove1 (unkeyed (source_vertex G)))
                (K;
                let H0 :
                  forall (s : EdgeSet.t) (x y : EdgeSet.elt),
                  y = x \/ EdgeSet.In y s -> EdgeSet.In y (EdgeSet.add x s) :=
                  fun (s : EdgeSet.t) (x y : EdgeSet.elt) =>
                  match EdgeSet.add_spec s x y with
                  | conj _ x1 => x1
                  end in
                H0 (E G) (s G, K, x) (s G, K, x) (or_introl eq_refl))
                (spath_refl G' (VSet.remove (s G) (V G)) x))) <=
        lsp0 G' (V G) (s G) x)%nbar
  ============================
   False


DEBUG:Going to execute:
simpl in YY