Goal:
  
  G : t
  HI : invariants G
  HG : acyclic_no_loop G
  y_0 : V.t
  x_0 : V.t
  K : Z
  Hxs : lsp G x_0 y_0 = Some K
  y : V.t
  z : V.t
  e : EdgeOf G' y_0 y
  q : PathOf G' y z
  IHq : match from_G'_path q with
        | inl q' => weight q = weight q'
        | inr (q1, q2) => weight q <= weight q1 - K + weight q2
        end
  XX : (y_0, - K, x_0) = (y_0, e.π1, y)
  H0 : - K = e.π1
  H1 : x_0 = y
  ============================
   (e.π1 + weight q <=
    - K +
    weight
      match from_G'_path q with
      | inl p =>
          eq_rect_r (fun _pattern_value_ : V.t => PathOf G _pattern_value_ z)
            p (snd_eq XX)
      | inr p => p.2
      end)


DEBUG:Going to execute:
destruct (from_G'_path q) as [q'| [q1 q2]]
DEBUG LTAC Evaluated term: (fst_eq (fst_eq XX))

Goals:
  
  G : t
  HI : invariants G
  HG : acyclic_no_loop G
  y_0 : V.t
  x_0 : V.t
  K : Z
  Hxs : lsp G x_0 y_0 = Some K
  y : V.t
  z : V.t
  e : EdgeOf G' y_0 y
  q : PathOf G' y z
  q' : PathOf G y z
  IHq : weight q = weight q'
  XX : (y_0, - K, x_0) = (y_0, e.π1, y)
  H0 : - K = e.π1
  H1 : x_0 = y
  ============================
   (e.π1 + weight q <=
    - K +
    weight
      (eq_rect_r (fun _pattern_value_ : V.t => PathOf G _pattern_value_ z) q'
         (snd_eq XX)))

  
  G : t
  HI : invariants G
  HG : acyclic_no_loop G
  y_0 : V.t
  x_0 : V.t
  K : Z
  Hxs : lsp G x_0 y_0 = Some K
  y : V.t
  z : V.t
  e : EdgeOf G' y_0 y
  q : PathOf G' y z
  q1 : PathOf G y y_0
  q2 : PathOf G x_0 z
  IHq : weight q <= weight q1 - K + weight q2
  XX : (y_0, - K, x_0) = (y_0, e.π1, y)
  H0 : - K = e.π1
  H1 : x_0 = y
  ============================
   (e.π1 + weight q <= - K + weight (q1, q2).2)


DEBUG:Going to execute:
simpl
DEBUG LTAC Evaluated term: (from_G'_path q)