reserve a,x,y for object, A,B for set,
  l,m,n for Nat;
reserve X,Y for set, x for object,
  p,q for Function-yielding FinSequence,
  f,g,h for Function;
reserve m,n,k for Nat, R for Relation;
reserve i,j for Nat;
reserve F for Function,
  e,x,y,z for object;
reserve a,b,c for set;

theorem
  for A, B being non empty set, f,g being Function of A, B, x being
Element of A st for y being Element of A st f.y <> g.y holds y = x holds f = g
  +*(x,f.x)
proof
  let A, B be non empty set, f,g be Function of A, B, x be Element of A such
  that
A1: for y being Element of A st f.y <> g.y holds y = x;
  x in A;
  then
A2: x in dom g by FUNCT_2:def 1;
A3: dom f = A by FUNCT_2:def 1
    .= A \/ {x} by XBOOLE_1:12
    .= dom g \/ {x} by FUNCT_2:def 1
    .= dom g \/ dom(x.-->f.x);
  for e being object st e in dom g \/ dom (x.-->f.x) holds (e in dom(x.-->f.x
  ) implies f.e = (x.-->f.x).e) & (not e in dom(x.-->f.x) implies f.e = g.e)
  proof
    let e be object;
    assume
A4: e in dom g \/ dom (x.-->f.x);
    thus e in dom(x.-->f.x) implies f.e = (x.-->f.x).e
    proof
      assume e in dom(x.-->f.x);
      then e in {x};
      then e = x by TARSKI:def 1;
      hence thesis by FUNCOP_1:72;
    end;
    assume not e in dom(x.-->f.x);
    then not e in {x};
    then e <> x by TARSKI:def 1;
    hence thesis by A1,A4;
  end;
  hence f = g+*(x.-->f.x) by A3,FUNCT_4:def 1
    .= g+*(x,f.x) by A2,Def2;
end;
