 reserve a,Z1,Z2,Z3 for set,
         x,y,z for object,
         k for Nat;
 reserve S for RelStr;
 reserve P,Q for non empty flat Poset;
 reserve p,p1,p2 for Element of P;
 reserve K for non empty Chain of P;
 reserve X,Y for non empty set;
 reserve D for Subset of X;
 reserve I for Function of X,Y;
 reserve J for Function of [:X,Y:], Y;
 reserve E for Function of X,X;
 reserve D for Subset of X;
 reserve I,I1,I2 for Function of X,Y;
 reserve J,J1,J2 for Function of [:X,Y,Y:], Y;
 reserve E1,E2 for Function of X,X;

theorem
  E1,E2 is_well_founded_with_minimal_set D implies
    ex f being Function of X,Y st
       for x being Element of X holds
         (x in D implies f.x = I.x) &
         (not x in D implies f.x = J.[x,f.(E1.x),f.(E2.x)])
  proof
    assume E1,E2 is_well_founded_with_minimal_set D;
    then consider f,g being Function of X,Y such that
A1:   for x being Element of X holds
         (x in D implies f.x = I.x & g.x = I.x) &
         (not x in D implies f.x = J.[x,f.(E1.x),g.(E2.x)] &
                             g.x = J.[x,f.(E1.x),g.(E2.x)]) by Threcursive05;
    for x being Element of X holds f.x = g.x
    proof
      let x be Element of X;
      per cases;
        suppose
C0:       x in D; then
          f.x = I.x by A1
             .= g.x by A1,C0;
          hence thesis;
        end;
        suppose
C0:       not x in D; then
          f.x = J.[x,f.(E1.x),g.(E2.x)] by A1
             .= g.x by A1,C0;
          hence thesis;
        end;
    end; then
    f = g;
    then for x being Element of X holds
         (x in D implies f.x = I.x) &
         (not x in D implies f.x = J.[x,f.(E1.x),f.(E2.x)]) by A1;
    hence thesis;
  end;
