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)
  z : Z
  G' := Subgraph1.G' G (s G) x z : t
  e : y = y
  n1 : x <> y
  Hle : Z.of_nat (to_label (lsp G' (s G) x)) + n <= 0
  nneg : n <= 0
  n0 : x <> y
  H : lsp G x (s G) = Some z
  mem : VSet.In x (V 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 v : V.t =>
          if is_left (V.eq_dec v y) then 0%nat else to_label (lsp G' (s G) v))
  ============================
   (n <= z)


DEBUG:Going to execute:
destruct (lsp_s G' x) as [lx [lspx wx]]

Goals:
  
  G : t
  HI : invariants G
  HG : acyclic_no_loop G
  n : Z
  x : V.t
  y : V.t
  Vy : ~ VSet.In y (V G)
  z : Z
  G' := Subgraph1.G' G (s G) x z : t
  e : y = y
  n1 : x <> y
  Hle : Z.of_nat (to_label (lsp G' (s G) x)) + n <= 0
  nneg : n <= 0
  n0 : x <> y
  H : lsp G x (s G) = Some z
  mem : VSet.In x (V 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 v : V.t =>
          if is_left (V.eq_dec v y) then 0%nat else to_label (lsp G' (s G) v))
  ============================
   (VSet.In x (V G'))

  
  G : t
  HI : invariants G
  HG : acyclic_no_loop G
  n : Z
  x : V.t
  y : V.t
  Vy : ~ VSet.In y (V G)
  z : Z
  G' := Subgraph1.G' G (s G) x z : t
  e : y = y
  n1 : x <> y
  Hle : Z.of_nat (to_label (lsp G' (s G) x)) + n <= 0
  nneg : n <= 0
  n0 : x <> y
  H : lsp G x (s G) = Some z
  mem : VSet.In x (V 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 v : V.t =>
          if is_left (V.eq_dec v y) then 0%nat else to_label (lsp G' (s G) v))
  lx : Z
  lspx : lsp G' (s G') x = Some lx
  wx : 0 <= lx
  ============================
   (n <= z)


DEBUG:Going to execute:
auto
DEBUG LTAC Evaluated term: (lsp_s G' x)

Goals:
  
  G : t
  HI : invariants G
  HG : acyclic_no_loop G
  n : Z
  x : V.t
  y : V.t
  Vy : ~ VSet.In y (V G)
  z : Z
  G' := Subgraph1.G' G (s G) x z : t
  e : y = y
  n1 : x <> y
  Hle : Z.of_nat (to_label (lsp G' (s G) x)) + n <= 0
  nneg : n <= 0
  n0 : x <> y
  H : lsp G x (s G) = Some z
  mem : VSet.In x (V 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 v : V.t =>
          if is_left (V.eq_dec v y) then 0%nat else to_label (lsp G' (s G) v))
  ============================
   (VSet.In x (V G'))

  
  G : t
  HI : invariants G
  HG : acyclic_no_loop G
  n : Z
  x : V.t
  y : V.t
  Vy : ~ VSet.In y (V G)
  z : Z
  G' := Subgraph1.G' G (s G) x z : t
  e : y = y
  n1 : x <> y
  Hle : Z.of_nat (to_label (lsp G' (s G) x)) + n <= 0
  nneg : n <= 0
  n0 : x <> y
  H : lsp G x (s G) = Some z
  mem : VSet.In x (V 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 v : V.t =>
          if is_left (V.eq_dec v y) then 0%nat else to_label (lsp G' (s G) v))
  lx : Z
  lspx : lsp G' (s G') x = Some lx
  wx : 0 <= lx
  ============================
   (n <= z)


DEBUG:Going to execute:
<coq-core.plugins.ltac::auto@0> $1 $2 $3