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)
  H0 : 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:
destruct_hyp H
Level 2: Backtrace:

In environment
G : t
HI : invariants
s0, s' : VSet.t
x, y, 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)
H0 : VSet.In (x, x0, y)..s (V G) /\ VSet.In (x, x0, y)..t (V G)
The term "H0" has type
 "VSet.In (x, x0, y)..s (V G) /\ VSet.In (x, x0, y)..t (V G)"
while it is expected to have type "VSet.In y (V G)".
Level 2: Backtrace:

In environment
G : t
HI : invariants
s0, s' : VSet.t
x, y, 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)
H0 : VSet.In (x, x0, y)..s (V G) /\ VSet.In (x, x0, y)..t (V G)
The term "H0" has type
 "VSet.In (x, x0, y)..s (V G) /\ VSet.In (x, x0, y)..t (V G)"
while it is expected to have type "VSet.In y (V G)".