Goal:
  
  G : t
  x : V.t
  y : V.t
  z : V.t
  e : EdgeOf x y
  p : PathOf y z
  IHp : SPath (nodes p) y z
  ============================
   ((fun b : bool =>
     VSet.mem x (snodes IHp) = b -> SPath (VSet.add x (nodes p)) x z)
      (VSet.mem x (snodes IHp)))


DEBUG:Going to execute:
case x
DEBUG LTAC Evaluated term: (VSet.mem x (snodes IHp))

Goals:
  
  G : t
  x : V.t
  y : V.t
  z : V.t
  e : EdgeOf x y
  p : PathOf y z
  IHp : SPath (nodes p) y z
  ============================
   (VSet.mem x (snodes IHp) = true -> SPath (VSet.add x (nodes p)) x z)

  
  G : t
  x : V.t
  y : V.t
  z : V.t
  e : EdgeOf x y
  p : PathOf y z
  IHp : SPath (nodes p) y z
  ============================
   (VSet.mem x (snodes IHp) = false -> SPath (VSet.add x (nodes p)) x z)


DEBUG:Going to execute:
intro Hx
DEBUG LTAC Evaluated term: (VSet.mem x (snodes IHp))