
theorem Th7:
  for G being _finite real-weighted WGraph, EL being FF:ELabeling of
G, source being Vertex of G, n being Nat, v being set st v in dom (AP:CompSeq(
EL,source).n) holds (AP:CompSeq(EL,source).n).v = (AP:FindAugPath(EL,source)).v
proof
  let G be _finite real-weighted WGraph, EL being FF:ELabeling of G, source be
  Vertex of G, n be Nat, v be set;
  set SG = the_Source_of G, TG = the_Target_of G;
  set CS = AP:CompSeq(EL,source);
  set L = CS.Lifespan(), GL = CS.L, GL1 = CS.(L+1);
  defpred P[Nat] means
   for v being set st v in dom (CS.n) holds (CS.n).v = (CS.(n+$1)).v;
  defpred P2[Nat] means GL = CS.(L+$1);
A1: CS is halting by Th6;
A2: now
    let k be Nat;
    set Gn1 = CS.(L+k+1);
    assume P2[k];
    then Gn1 = AP:Step(GL) by Def12
      .= GL1 by Def12;
    hence P2[k+1] by A1,GLIB_000:def 56;
  end;
A3: P2[ 0 ];
A4: for k being Nat holds P2[k] from NAT_1:sch 2(A3,A2);
  now
    let k be Nat;
    assume
A5: P[k];
    set Gn = CS.(n+k), Gn1 = CS.(n+k+1);
    set Next = AP:NextBestEdges(Gn), e = the Element of Next;
A6: Gn1 = AP:Step(Gn) by Def12;
    now
      per cases;
      suppose
        Next = {};
        then Gn1 = Gn by A6,Def10;
        hence P[k+1] by A5;
      end;
      suppose
A7:     Next <> {} & not SG.e in dom Gn;
        then
A8:     Gn1 = Gn+*(SG.e .--> e) by A6,Def10;
        now
          let v be set;
          assume
A9:       v in dom (CS.n);
          then
A10:      (CS.n).v = Gn.v by A5;
          dom (CS.n) c= dom Gn by Th5,NAT_1:11;
          then v <> SG.e by A7,A9;
          hence (CS.n).v = Gn1.v by A8,A10,Lm4;
        end;
        hence P[k+1];
      end;
      suppose
A11:    Next <> {} & SG.e in dom Gn;
        then
A12:    e is_forward_edge_wrt Gn or e is_backward_edge_wrt Gn by Def9;
A13:    Gn1 = Gn+*(TG.e .--> e) by A6,A11,Def10;
        now
          let v be set;
          assume
A14:      v in dom (CS.n);
          then
A15:      (CS.n).v = Gn.v by A5;
          dom (CS.n) c= dom Gn by Th5,NAT_1:11;
          then v <> TG.e by A11,A12,A14;
          hence (CS.n).v = Gn1.v by A13,A15,Lm4;
        end;
        hence P[k+1];
      end;
    end;
    hence P[k+1];
  end;
  then
A16: for k being Nat st P[k] holds P[k+1];
A17: P[ 0 ];
A18: for k being Nat holds P[k] from NAT_1:sch 2(A17,A16);
  assume
A19: v in dom (CS.n);
  now
    per cases;
    suppose
      n <= CS.Lifespan();
      then consider k being Nat such that
A20:  n + k = CS.Lifespan() by NAT_1:10;
      reconsider k as Element of NAT by ORDINAL1:def 12;
      n + k = CS.Lifespan() by A20;
      hence thesis by A19,A18;
    end;
    suppose
      CS.Lifespan() < n;
      then consider k being Nat such that
A21:  CS.Lifespan() + k = n by NAT_1:10;
      reconsider k as Element of NAT by ORDINAL1:def 12;
      CS.Lifespan() + k = n by A21;
      hence thesis by A4;
    end;
  end;
  hence thesis;
end;
