Goal:
  
  G : t
  HI : invariants
  s0 : VSet.t
  s' : VSet.t
  x : V.t
  y : V.t
  z : V.t
  d : DisjointAdd x s0 s'
  x0 : Z
  i : EdgeSet.In (x, x0, y) (E G)
  p : SPath s0 y z
  H : VSet.In x (V G)
  IHp : VSet.In y (V G) -> VSet.In z (V G)
  ============================
   (VSet.In (x, x0, y)..s (V G) /\ VSet.In (x, x0, y)..t (V G) ->
    VSet.In y (V G))


DEBUG:Going to execute:
match goal with
           | H:_ /\ _ |- _ => exact H || (destruct_hyp H; use_hyps)
           | H:(_ * _)%nat |- _ => exact H || (destruct_hyp H; use_hyps)
           | H:_ |- _ => solve [ inversion H ]
           | _ => idtac
           end