reserve x, y, z, v for set,
  n, m, k for Nat;
reserve G, G1, G2, G3 for Graph;
reserve x, y for Element of (the carrier of G);

theorem Th17:
  G1 c= G2 & G2 c= G3 implies G1 c= G3
proof
  assume that
A1: G1 c= G2 and
A2: G2 c= G3;
A3: G1 is Subgraph of G2 by A1;
A4: G2 is Subgraph of G3 by A2;
A5: (the carrier of G1) c= (the carrier of G2) by A3,Def18;
 (the carrier of G2) c= (the carrier of G3) by A4,Def18;
then A6: (the carrier of G1) c= (the carrier of G3) by A5;
A7: (the carrier' of G1) c= (the carrier' of G2) by A3,Def18;
 (the carrier' of G2) c= (the carrier' of G3) by A4,Def18;
then A8: (the carrier' of G1) c= (the carrier' of G3) by A7;
 for v st v in the carrier' of G1 holds
  (the Source of G1).v = (the Source of G3).v &
  (the Target of G1).v = (the Target of G3).v &
  (the Source of G3).v in the carrier of G1 &
  (the Target of G3).v in the carrier of G1
  proof
    let v;
    assume
A9: v in the carrier' of G1;
    thus
then A10: (the Source of G1).v = (the Source of G2).v by A3,Def18
      .= (the Source of G3).v by A4,A7,A9,Def18;
    thus
A11: (the Target of G1).v = (the Target of G2).v by A3,A9,Def18
      .= (the Target of G3).v by A4,A7,A9,Def18;
 v in dom (the Source of G1) by A9,FUNCT_2:def 1;
then  (the Source of G1).v in rng(the Source of G1) by FUNCT_1:def 3;
    hence (the Source of G3).v in the carrier of G1 by A10;
 v in dom(the Target of G1) by A9,FUNCT_2:def 1;
then  (the Target of G1).v in rng(the Target of G1) by FUNCT_1:def 3;
    hence thesis by A11;
  end;
then  G1 is Subgraph of G3 by A6,A8,Def18;
  hence thesis;
end;
