reserve i for Nat, x,y for set;
reserve S for non empty non void ManySortedSign;
reserve X for non-empty ManySortedSet of S;

theorem Th27:
  for S being non void non empty ManySortedSign
  for o,a being set
  for r being SortSymbol of S st o is_of_type <*a*>, r
  for A being MSAlgebra over S
  st (the Sorts of A).a <> {} & (the Sorts of A).r <> {}
  for x being Element of (the Sorts of A).a
  holds Den(In(o, the carrier' of S), A).<*x*> is
        Element of (the Sorts of A).r
  proof
    let S be non void non empty ManySortedSign;
    let o,a be set;
    let r be SortSymbol of S;
    assume
A1: (the Arity of S).o = <*a*> & (the ResultSort of S).o = r; then
A2: o in dom the Arity of S & dom the Arity of S c= the carrier' of S
    by FUNCT_1:def 2,RELAT_1:def 18; then
    reconsider s = o as OperSymbol of S;
    let A be MSAlgebra over S;
    assume A4: (the Sorts of A).a <> {};
    assume A5: (the Sorts of A).r <> {};
    let x be Element of (the Sorts of A).a;
A6: <*a*> = the_arity_of s by A1;
A7: dom the Sorts of A = the carrier of S by PARTFUN1:def 2;
    ((the Sorts of A)#*the Arity of S).o
    = (the Sorts of A)#.<*a*> by A1,A2,FUNCT_2:15
    .= product ((the Sorts of A)*<*a*>) by A6,FINSEQ_2:def 5
    .= product <*(the Sorts of A).a*> by A6,FUNCT_7:18,A7,FINSEQ_2:34; then
A8: <*x*> in Args(s, A) by A4,FINSEQ_3:123;
    Result(s, A) = (the Sorts of A).the_result_sort_of s by FUNCT_2:15;
    hence Den(In(o, the carrier' of S), A).<*x*> is
    Element of (the Sorts of A).r by A1,A5,A8,FUNCT_2:5;
  end;
