Goal:
  
  G1 : t
  G2 : t
  on_edge : forall x y : V.t, EdgeOf G1 x y -> EdgeOf G2 x y
  weight_on_edge : forall (x y : V.t) (e : EdgeOf G1 x y),
                   (on_edge x y e).π1 <= e.π1
  s : VSet.t
  x : V.t
  y : V.t
  p : SPath G1 s x y
  _s_ : VSet.t
  _x_ : V.t
  _y_ : V.t
  _s1_ : VSet.t
  _y'_ : V.t
  _d_ : DisjointAdd _x_ _s1_ _s_
  e : EdgeOf G1 _x_ _y'_
  _p_ : SPath G1 _s1_ _y'_ _y_
  ============================
   (sweight (map_spath _p_) <= sweight _p_ ->
    (on_edge _x_ _y'_ e).π1 + sweight (map_spath _p_) <= e.π1 + sweight _p_)


DEBUG:Going to execute:
move : (weight_on_edge _ _ e)