reserve S for OrderSortedSign;
reserve S for OrderSortedSign,
  X for ManySortedSet of S,
  o for OperSymbol of S ,
  b for Element of ([:the carrier' of S,{the carrier of S}:] \/ Union (coprod X
  ))*;
reserve x for set;

theorem Th6:
  for S be OrderSortedSign, X be non-empty ManySortedSet of S, o be
OperSymbol of S, p be FinSequence of TS(DTConOSA(X)) holds p in ((ParsedTerms X
  )# * (the Arity of S)).o iff dom p = dom (the_arity_of o) & for n be Nat st n
  in dom p holds p.n in ParsedTerms(X,(the_arity_of o)/.n)
proof
  let S be OrderSortedSign, X be non-empty ManySortedSet of S, o be OperSymbol
  of S, p be FinSequence of TS(DTConOSA(X));
  set AR = the Arity of S, ar = the_arity_of o;
  thus p in ((ParsedTerms X)# * AR).o implies dom p = dom (the_arity_of o) &
  for n be Nat st n in dom p holds p.n in ParsedTerms(X,(the_arity_of o)/.n)
  proof
A1: AR.o = ar by MSUALG_1:def 1;
    assume p in ((ParsedTerms X)# * (the Arity of S)).o;
    then
A2: p in product ((ParsedTerms X) * ar) by A1,MSAFREE:1;
    then
A3: dom p = dom ((ParsedTerms X) * ar) by CARD_3:9;
    hence dom p = dom ar by PARTFUN1:def 2;
A4: dom ((ParsedTerms X) * ar) = dom ar by PARTFUN1:def 2;
    let n be Nat;
    assume
A5: n in dom p;
    then ((ParsedTerms X) * ar).n = (ParsedTerms X).(ar.n) by A3,FUNCT_1:12
      .= (ParsedTerms X). (ar/.n) by A3,A4,A5,PARTFUN1:def 6
      .= ParsedTerms(X,ar/.n) by Def8;
    hence thesis by A2,A3,A5,CARD_3:9;
  end;
  assume that
A6: dom p = dom (the_arity_of o) and
A7: for n be Nat st n in dom p holds p.n in ParsedTerms(X,(the_arity_of o)/.n);
A8: dom p = dom ((ParsedTerms X) * ar) by A6,PARTFUN1:def 2;
A9: for x be object st x in dom((ParsedTerms X) * ar) holds p.x in ((
  ParsedTerms X) * ar).x
  proof
    let x be object;
    assume
A10: x in dom ((ParsedTerms X) * ar);
    then reconsider n = x as Nat;
    ParsedTerms(X,ar/.n) = (ParsedTerms X). (ar/.n) by Def8
      .= (ParsedTerms X).(ar.n) by A6,A8,A10,PARTFUN1:def 6
      .= ((ParsedTerms X) * ar).x by A10,FUNCT_1:12;
    hence thesis by A7,A8,A10;
  end;
  AR.o = ar by MSUALG_1:def 1;
  then ((ParsedTerms X)# * AR).o = product ((ParsedTerms X) * ar) by MSAFREE:1;
  hence thesis by A8,A9,CARD_3:9;
end;
