reserve G for Graph,
  k, m, n for Nat;
reserve G for non void Graph;

theorem Th10:
  for oc being directed non empty Chain of G, n st 1<=n & n<=len
oc holds (vertex-seq oc).n = (the Source of G).(oc.n) & (vertex-seq oc).(n+1) =
  (the Target of G).(oc.n)
proof
  let oc be directed non empty Chain of G;
  set vsoc = vertex-seq oc, S = the Source of G, T = the Target of G;
  defpred P[Nat] means 1<=$1 & $1<=len oc implies vsoc.$1 = S.(oc.
  $1) & vsoc.($1+1) = T.(oc.$1);
A1: for k be Nat st P[k] holds P[k+1]
  proof
    let n;
    assume
A2: 1<=n & n<=len oc implies vsoc.n = S.(oc.n) & vsoc.(n+1) = T.(oc.n);
A3: vsoc is_vertex_seq_of oc by GRAPH_2:def 10;
    assume that
A4: 1<=n+1 and
A5: n+1<=len oc;
    per cases;
    suppose
A6:   n=0;
      hence
A7:   vsoc.(n+1) = S.(oc.(n+1)) by GRAPH_2:def 10;
      1 in dom vsoc by FINSEQ_5:6;
      then
A8:   vsoc/.1=vsoc.1 by PARTFUN1:def 6;
A9:  1<=len oc by A4,A5,XXREAL_0:2;
      len vsoc = len oc +1 by Th9;
      then 1+1<=len vsoc by A9,XREAL_1:6;
      then 1+1 in dom vsoc by FINSEQ_3:25;
      then
A10:  vsoc/.(1+1)=vsoc.(1+1) by PARTFUN1:def 6;
      oc.1 joins vsoc/.1,vsoc/.(1+1) by A3,A9;
      hence thesis by A6,A7,A8,A10;
    end;
    suppose
A11:  n<>0;
A12:  n<len oc by A5,NAT_1:13;
      1<=n by A11,NAT_1:14;
      hence
A13:  vsoc.(n+1) = S.(oc.(n+1)) by A2,A12,GRAPH_1:def 15;
A14:  len vsoc = len oc +1 by Th9;
      then 1<=n+1+1 & n+1+1<=len vsoc by A5,NAT_1:11,XREAL_1:6;
      then n+1+1 in dom vsoc by FINSEQ_3:25;
      then
A15:  vsoc/.(n+1+1)=vsoc.(n+1+1) by PARTFUN1:def 6;
      n<=n+1 by NAT_1:11;
      then n<=len oc by A5,XXREAL_0:2;
      then n+1<=len vsoc by A14,XREAL_1:6;
      then n+1 in dom vsoc by A4,FINSEQ_3:25;
      then
A16:  vsoc/.(n+1)=vsoc.(n+1) by PARTFUN1:def 6;
      oc.(n+1) joins vsoc/.(n+1),vsoc/.(n+1+1) by A4,A5,A3;
      hence thesis by A13,A16,A15;
    end;
  end;
A17: P[ 0 ];
  thus for n holds P[n] from NAT_1:sch 2 (A17, A1);
end;
