
theorem Th154:
  for G3, G4 being _Graph, v1, v3 being Vertex of G3, v2, v4 being Vertex of G4
  for e1, e2 being object
  for G1 being addEdge of G3,v1,e1,v3, G2 being addEdge of G4,v2,e2,v4
  for F0 being PGraphMapping of G3, G4
  st not e1 in the_Edges_of G3 & not e2 in the_Edges_of G4 &
    v1 in dom F0_V & v3 in dom F0_V & F0_V.v1 = v2 & F0_V.v3 = v4
  ex F being PGraphMapping of G1, G2 st F = [F0_V, F0_E +* (e1 .--> e2)] &
    (F0 is directed implies F is directed) &
    (F0 is Disomorphism implies F is Disomorphism)
proof
  let G3, G4 be _Graph, v1, v3 be Vertex of G3, v2, v4 be Vertex of G4;
  let e1, e2 be object;
  let G1 be addEdge of G3,v1,e1,v3, G2 be addEdge of G4,v2,e2,v4;
  let F0 be PGraphMapping of G3, G4;
  assume that A1: not e1 in the_Edges_of G3 & not e2 in the_Edges_of G4 and
    A2: v1 in dom F0_V & v3 in dom F0_V & F0_V.v1 = v2 & F0_V.v3 = v4;
  consider F being PGraphMapping of G1, G2 such that
    A3: F = [F0_V, F0_E +* (e1 .--> e2)] and
    A4: F0 is total implies F is total and
    A5: F0 is onto implies F is onto and
    A6: F0 is one-to-one implies F is one-to-one by A1, A2, Th152;
  take F;
  thus F = [F0_V, F0_E +* (e1 .--> e2)] by A3;
  :: some prelims must be done again
  set f = F_V, g = F_E;
  A7: dom g = dom F0_E \/ dom(e1 .--> e2) by A3, FUNCT_4:def 1
    .= dom F0_E \/ dom({e1} --> e2) by FUNCOP_1:def 9
    .= dom F0_E \/ {e1};
  not e1 in dom F0_E by A1;
  then dom F0_E misses {e1} by ZFMISC_1:50;
  then dom F0_E misses dom({e1} --> e2);
  then A8: dom F0_E misses dom(e1 .--> e2) by FUNCOP_1:def 9;
  A9: dom g /\ the_Edges_of G3
     = (dom F0_E/\the_Edges_of G3)\/({e1}/\the_Edges_of G3) by A7, XBOOLE_1:23
    .= dom F0_E \/ ({e1}/\ the_Edges_of G3) by XBOOLE_1:28
    .= dom F0_E \/ {} by A1, ZFMISC_1:50, XBOOLE_0:def 7;
  thus F0 is directed implies F is directed
  proof
    assume A10: F0 is directed;
    now
      let e,v,w be object;
      assume A11: e in dom F_E & v in dom F_V & w in dom F_V;
      assume A12: e DJoins v,w,G1;
      then A13: e Joins v,w,G1 by GLIB_000:16;
      per cases by A12, GLIB_006:71;
      suppose A14: e DJoins v,w,G3;
        then e in the_Edges_of G3 by GLIB_000:def 14;
        then A15: e in dom F0_E by A9, A11, XBOOLE_0:def 4;
        not e in dom(e1 .--> e2)
        proof
          assume e in dom(e1 .--> e2);
          then e in dom F0_E /\ dom(e1 .--> e2) by A15, XBOOLE_0:def 4;
          hence contradiction by A8, XBOOLE_0:def 7;
        end;
        then A16: g.e = F0_E.e by A3, FUNCT_4:11;
        v in dom F0_V & w in dom F0_V by A3, A11;
        then g.e DJoins f.v,f.w,G4 by A3, A10, A14, A15, A16;
        hence g.e DJoins f.v,f.w,G2 by GLIB_006:70;
      end;
      suppose not e in the_Edges_of G3;
        then A17: e = e1 by A1, A13, GLIB_006:106;
        then e in {e1} by TARSKI:def 1;
        then e in dom({e1} --> e2);
        then A18: e in dom(e1 .--> e2) by FUNCOP_1:def 9;
        A19: e2 = (e1 .--> e2).e by A17, FUNCOP_1:72
          .= g.e by A18, A3, FUNCT_4:13;
        e2 DJoins v2,v4,G2 by A1, GLIB_006:105;
        then A20: g.e DJoins F0_V.v1,F0_V.v3,G2 by A2, A19;
        e DJoins v1,v3,G1 by A1, A17, GLIB_006:105;
        then v1 = v & v3 = w by A12, GLIB_000:125;
        hence g.e DJoins f.v,f.w,G2 by A3, A20;
      end;
    end;
    hence thesis;
  end;
  hence F0 is Disomorphism implies F is Disomorphism by A4, A5, A6;
end;
