reserve a,x,y for object, A,B for set,
  l,m,n for Nat;

theorem Th12:
  for A,B be set, y be set st A meets rng(id B +* (A --> y)) holds
  y in A
proof
  let A,B be set, y be set;
  assume A meets rng(id B +* (A --> y));
  then consider x being object such that
A1: x in A and
A2: x in rng(id B +* (A --> y)) by XBOOLE_0:3;
  consider z being object such that
A3: z in dom(id B +* (A --> y)) and
A4: (id B +* (A --> y)).z = x by A2,FUNCT_1:def 3;
A5: z in dom id B \/ dom(A --> y) by A3,FUNCT_4:def 1;
  per cases;
  suppose
A6: z in dom(A --> y);
    then y = (A --> y).z by FUNCOP_1:7
      .= x by A4,A6,FUNCT_4:13;
    hence thesis by A1;
  end;
  suppose
A7: not z in dom(A --> y);
    then
A8: z in dom id B by A5,XBOOLE_0:def 3;
    x = (id B).z by A4,A7,FUNCT_4:11
      .= z by A8,FUNCT_1:18;
    hence thesis by A1,A7;
  end;
end;
