reserve R,R1 for commutative Ring;
reserve A,B for non degenerated commutative Ring;
reserve o,o1,o2 for object;
reserve r,r1,r2 for Element of R;
reserve a,a1,a2,b,b1 for Element of A;
reserve f for Function of R, R1;
reserve p for Element of Spectrum A;
reserve S for non empty multiplicatively-closed Subset of R;
reserve u,v,w,x,y,z for Element of Frac(S);
reserve a, b, c for Element of Frac(S);
reserve x, y, z for Element of S~R;
reserve S for without_zero non empty multiplicatively-closed Subset of A;
reserve p for Element of Spectrum A;
reserve a,m,n for Element of A~p;
reserve f for Function of A,B;

theorem Th61:
  f is RingHomomorphism & f.:S c= Unit_Set(B) implies
    f = ((Univ_Map(S,f))*(canHom(S)))
    proof
    set h = canHom(S);
    set g = Univ_Map(S,f);
    set g1 = ((Univ_Map(S,f))*(canHom(S)));
    assume
A1: f is RingHomomorphism & f.:S c= Unit_Set(B);
A2: dom h = [#]A by FUNCT_2:def 1;
A3: dom g1 = the carrier of A by FUNCT_2:def 1
      .= dom f by FUNCT_2:def 1;
    for x be object st x in dom f holds f.x = g1.x
    proof
      set g1 = ((Univ_Map(S,f))*(canHom(S)));
      let x be object;
      assume x in dom f; then
      reconsider x as Element of A;
A7:   h.x = Class(EqRel(S),(frac1(S)).x) by Def7
        .= Class(EqRel(S),[x,1.A]) by Def4;
      (frac1(S)).x = [x,1.A] by Def4; then
      reconsider x1 = [x,1.A] as Element of Frac(S);
      reconsider hx = h.x as Element of S~A;
      consider a1,s1 being Element of A such that
A9:   s1 in S and
A10:  hx = Class(EqRel(S),[a1,s1]) and
A11:  g.hx = (f.a1)*((f.s1)["]) by A1,Def8;
      reconsider as1 = [a1,s1] as Element of Frac(S) by A9,Def3;
      as1,x1 Fr_Eq S by A7,A10,Th26; then
      consider s0 being Element of A such that
A13:  s0 in S and
A14:  (as1`1 * x1`2 - x1`1 * as1`2) * s0 = 0.A;
      f.s0 is Unit of B by A1,A13,Th56; then
A15:  f.s0 in Unit_Set(B);
      f.s1 is Unit of B by A1,A9,Th56; then
A16:  f.s1 in Unit_Set(B);
      0.B = f.(0.A) by A1,QUOFIELD:50
      .= f.(a1 - x*s1)*f.s0 by A1,A14,GROUP_6:def 6; then
      0.B = (f.(a1 - x*s1)*f.s0)*((f.s0)["])
      .= f.(a1 -x*s1)*(f.s0*((f.s0)["])) by GROUP_1:def 3
      .= f.(a1 - x*s1)*(1.B) by A15,Def2
      .= f.a1 - f.(x*s1) by A1,RING_2:8; then
A19:  f.a1 = f.(x*s1) by VECTSP_1:27 .= f.x*f.s1 by A1,GROUP_6:def 6;
      (f.a1)*((f.s1)["]) = (f.x)*((f.s1)*((f.s1)["])) by A19,GROUP_1:def 3
      .= (f.x)*(1.B) by A16,Def2 .= f.x;
      hence thesis by A2,A11,FUNCT_1:13;
    end;
    hence thesis by A3;
  end;
