reserve S for non void non empty ManySortedSign,
  U1,U2 for MSAlgebra over S,
  o for OperSymbol of S,
  n for Nat;

theorem
  for I be set,A,B be ManySortedSet of I, F be ManySortedFunction of A,B
  holds F**(id A) = F
proof
  let I be set, A,B be ManySortedSet of I, F be ManySortedFunction of A,B;
  dom (F**(id A)) = (dom F) /\ dom id A by PBOOLE:def 19
    .= I /\ dom id A by PARTFUN1:def 2
    .= I /\ I by PARTFUN1:def 2
    .= I;
  then reconsider G = F**(id A) as ManySortedFunction of I by PARTFUN1:def 2
,RELAT_1:def 18;
  now
    let i be object;
    assume
A1: i in I;
    then reconsider f = F.i as Function of A.i,B.i by PBOOLE:def 15;
    reconsider g = (id A).i as Function of A.i,A.i by A1,PBOOLE:def 15;
A2: G.i = f*g by A1,Th2
      .= f*(id (A.i)) by A1,Def1;
    per cases;
    suppose
      B.i = {} implies A.i = {};
      then dom f = A.i by FUNCT_2:def 1;
      hence G.i = F.i by A2,RELAT_1:52;
    end;
    suppose
      B.i = {} & A.i <> {};
      then f = {};
      hence G.i = F.i by A2;
    end;
  end;
  hence thesis by PBOOLE:3;
end;
