reserve G for Graph,
  v, v1, v2 for Vertex of G,
  c for Chain of G,
  p, p1, p2 for Path of G,
  vs, vs1, vs2 for FinSequence of the carrier of G,
  e, X for set,
  n, m for Nat;
reserve G for finite Graph,
  v for Vertex of G,
  c for Chain of G,
  vs for FinSequence of the carrier of G,
  X1, X2 for set;
reserve G for Graph,
  v, v1, v2 for Vertex of G,
  c for Chain of G,
  p for Path of G,
  vs for FinSequence of the carrier of G,
  v9 for Vertex of AddNewEdge(v1, v2),
  p9 for Path of AddNewEdge(v1, v2),
  vs9 for FinSequence of the carrier of AddNewEdge(v1, v2);

theorem Th41:
  v9 = v1 & (the carrier' of G) in X implies Edges_Out(v9, X) =
Edges_Out(v1, X) \/ {the carrier' of G} & Edges_Out(v1, X) misses {the carrier'
  of G}
proof
  assume that
A1: v9 = v1 and
A2: (the carrier' of G) in X;
  set G9 = AddNewEdge(v1, v2);
  set E = the carrier' of G;
  set S = the Source of G;
  set E9 = the carrier' of G9;
  set S9 = the Source of G9;
A3: E9 = E \/ {E} by Def7;
  now
    let x be object;
    hereby
      assume
A4:   x in Edges_Out(v9, X);
      then
A5:   x in X by Def2;
A6:   S9.x = v9 by A4,Def2;
      per cases by A3,A4,XBOOLE_0:def 3;
      suppose
A7:     x in E;
        then S.x = v1 by A1,A6,Th35;
        then x in Edges_Out(v1, X) by A5,A7,Def2;
        hence x in Edges_Out(v1, X) \/ {E} by XBOOLE_0:def 3;
      end;
      suppose
        x in {E};
        hence x in Edges_Out(v1, X) \/ {E} by XBOOLE_0:def 3;
      end;
    end;
    assume
A8: x in Edges_Out(v1, X) \/ {E};
    per cases by A8,XBOOLE_0:def 3;
    suppose
A9:   x in Edges_Out(v1, X);
      then S.x = v1 by Def2;
      then
A10:  S9.x = v9 by A1,A9,Th35;
      x in X & x in E9 by A3,A9,Def2,XBOOLE_0:def 3;
      hence x in Edges_Out(v9, X) by A10,Def2;
    end;
    suppose
A11:  x in {E};
A12:  S9.E = v1 by Th34;
      x = E & x in E9 by A3,A11,TARSKI:def 1,XBOOLE_0:def 3;
      hence x in Edges_Out(v9, X) by A1,A2,A12,Def2;
    end;
  end;
  hence Edges_Out(v9, X) = Edges_Out(v1, X) \/ {E} by TARSKI:2;
  assume Edges_Out(v1, X) /\ {E} <> {};
  then consider x being object such that
A13: x in Edges_Out(v1, X) /\ {E} by XBOOLE_0:def 1;
  x in {E} by A13,XBOOLE_0:def 4;
  then
A14: x = E by TARSKI:def 1;
  reconsider xx = x as set by TARSKI:1;
A:  not xx in xx;
  x in E by A13;
  hence contradiction by A14,A;
end;
