reserve S for non void non empty ManySortedSign,
  U1, U2, U3 for non-empty MSAlgebra over S,
  I for set,
  A for ManySortedSet of I,
  B, C for non-empty ManySortedSet of I;

theorem
  for X be non-empty ManySortedSet of the carrier of S holds rngs Reverse X = X
proof
  let X be non-empty ManySortedSet of the carrier of S;
  set I = the carrier of S, R = Reverse X;
  now
    let i be object such that
A1: i in I;
    reconsider r = R.i as Function of (FreeGen X).i, X.i by A1,PBOOLE:def 15;
A2: dom R = I by PARTFUN1:def 2;
    thus (rngs R).i = X.i
    proof
      reconsider s0 = i as SortSymbol of S by A1;
      set D = DTConMSA X;
      thus (rngs R).i c= X.i
      proof
        let x be object;
        assume x in (rngs R).i;
        then
A3:     x in rng r by A1,A2,FUNCT_6:22;
        rng r c= X.i by RELAT_1:def 19;
        hence thesis by A3;
      end;
      let x be object;
      assume x in X.i;
      then
A4:   [x,s0] in Terminals D by MSAFREE:7;
      then reconsider t = [x,s0] as Symbol of D;
      t`2 = s0;
      then root-tree t in {root-tree tt where tt is Symbol of D : tt in
      Terminals D & tt`2 = s0} by A4;
      then
A5:   root-tree t in FreeGen(s0, X) by MSAFREE:13;
A6:   R.s0 = Reverse(s0, X) by MSAFREE:def 18;
      then
A7:   (R.s0).(root-tree t) = t`1 by A5,MSAFREE:def 17
        .= x;
      dom (R.s0) = FreeGen(s0, X) by A6,FUNCT_2:def 1;
      then (R.s0).(root-tree t) in rng (R.s0) by A5,FUNCT_1:def 3;
      hence thesis by A2,A7,FUNCT_6:22;
    end;
  end;
  hence thesis;
end;
