Let S(x,y) be "x is shorter than y". Given the premise S(s,Max), it follows that S(Max,Max). Then by existential generalization it follows that S(x,x), so that someone is shorter than himself.

First of all you should define the set from which x can be chosen and the set from which y can be chosen, second of all you should define Max. You haven't been specific enough for us to make sense of your question.

I don't agree that one has to define sets from which x and y are chosen as well as to define Max. To do syntactic reasoning, it is enough to know that Max is a constant in the language. What is crucial, however, is that the original post omitted two essential quantifiers. The expression S(s,Max) is not a closed formula (it has a free variable s) and is not a proposition. It is not obvious that one can conclude S(Max, Max). Indeed, it may happen that S(s,Max) is itself derived from some open assumptions, or it may be an open assumption. If any of those assumptions contains s free, then one cannot substitute Max for s without changing that assumption as well. Thus, it is not the case that S(s, Max) derives . It is also misleading to omit the existential quantifier from the last formula.

When I see a logic formula with a free variable that has not been properly introduced, I tend to stop and ask what this variable stands for.

I don't agree that one has to define sets from which x and y are chosen as well as to define Max. To do syntactic reasoning, it is enough to know that Max is a constant in the language. What is crucial, however, is that the original post omitted two essential quantifiers. The expression S(s,Max) is not a closed formula (it has a free variable s) and is not a proposition. It is not obvious that one can conclude S(Max, Max). Indeed, it may happen that S(s,Max) is itself derived from some open assumptions, or it may be an open assumption. If any of those assumptions contains s free, then one cannot substitute Max for s without changing that assumption as well. Thus, it is not the case that S(s, Max) derives . It is also misleading to omit the existential quantifier from the last formula.

When I see a logic formula with a free variable that has not been properly introduced, I tend to stop and ask what this variable stands for.

Well I said that mainly because, if S is a subset of AxB with A and B finite well ordered sets, where max(A) < max(B), and if S(max,max) means S(max(A),max(B)), then the problem with the argument is of a different nature, but that's likely just me being silly.

Oddly enough I was fine with assuming there was an omitted "for all s in X" (where S is a subset of XxX) for the first part, and "there exists x in X" for the second part, particularly the second part since the text had both "existential generalization" and "someone" in it.