Goal:
  
  G1 : t
  G2 : t
  H : invariants G1
  ext := EdgeSet.diff (E G2) (E G1) : EdgeSet.t
  bs := border_set G1 ext : VSet.t
  s : VSet.t
  y : V.t
  z : V.t
  p : SPath G2 s y z
  _s_ : VSet.t
  _x_ : V.t
  _x1_ : V.t
  _projT1_ : Z
  _hz_ : VSet.In _x_ (V G1)
  e := (_x1_, _projT1_, _x_) : (V.t × Z) × V.t
  _he_ : EdgeSet.In e ext
  ============================
   (EdgeSet.In e ext /\ (_x_ = e..s \/ _x_ = e..t) /\ VSet.In _x_ (V G1))


DEBUG:Going to execute:
fun => <coq-core.plugins.ltac::split@0>

Goals:
  
  G1 : t
  G2 : t
  H : invariants G1
  ext := EdgeSet.diff (E G2) (E G1) : EdgeSet.t
  bs := border_set G1 ext : VSet.t
  s : VSet.t
  y : V.t
  z : V.t
  p : SPath G2 s y z
  _s_ : VSet.t
  _x_ : V.t
  _x1_ : V.t
  _projT1_ : Z
  _hz_ : VSet.In _x_ (V G1)
  e := (_x1_, _projT1_, _x_) : (V.t × Z) × V.t
  _he_ : EdgeSet.In e ext
  ============================
   (EdgeSet.In e ext)

  
  G1 : t
  G2 : t
  H : invariants G1
  ext := EdgeSet.diff (E G2) (E G1) : EdgeSet.t
  bs := border_set G1 ext : VSet.t
  s : VSet.t
  y : V.t
  z : V.t
  p : SPath G2 s y z
  _s_ : VSet.t
  _x_ : V.t
  _x1_ : V.t
  _projT1_ : Z
  _hz_ : VSet.In _x_ (V G1)
  e := (_x1_, _projT1_, _x_) : (V.t × Z) × V.t
  _he_ : EdgeSet.In e ext
  ============================
   ((_x_ = e..s \/ _x_ = e..t) /\ VSet.In _x_ (V G1))


DEBUG:Going to execute:
<Coq.Init.Tauto.not_dep_intros>

Goals:
  
  G1 : t
  G2 : t
  H : invariants G1
  ext := EdgeSet.diff (E G2) (E G1) : EdgeSet.t
  bs := border_set G1 ext : VSet.t
  s : VSet.t
  y : V.t
  z : V.t
  p : SPath G2 s y z
  _s_ : VSet.t
  _x_ : V.t
  _x1_ : V.t
  _projT1_ : Z
  _hz_ : VSet.In _x_ (V G1)
  e := (_x1_, _projT1_, _x_) : (V.t × Z) × V.t
  _he_ : EdgeSet.In e ext
  ============================
   (EdgeSet.In e ext)

  
  G1 : t
  G2 : t
  H : invariants G1
  ext := EdgeSet.diff (E G2) (E G1) : EdgeSet.t
  bs := border_set G1 ext : VSet.t
  s : VSet.t
  y : V.t
  z : V.t
  p : SPath G2 s y z
  _s_ : VSet.t
  _x_ : V.t
  _x1_ : V.t
  _projT1_ : Z
  _hz_ : VSet.In _x_ (V G1)
  e := (_x1_, _projT1_, _x_) : (V.t × Z) × V.t
  _he_ : EdgeSet.In e ext
  ============================
   ((_x_ = e..s \/ _x_ = e..t) /\ VSet.In _x_ (V G1))


DEBUG:Going to execute:
repeat
            match goal with
            | |- ?X1 -> ?X2 => intro
            | |- ~ _ => unfold not at 1; intro
            end