I am trying to learn how to create a theorem like environment from http://www.maths.tcd.ie/~dwilkins/LaTeXPrimer/Theorems.html
To keep the code below simple, I am not really defining a new environment but writing the actual inline code for what the environment should look like followed by a theorem environment to compare the output of my code with that of the theorem environment.
Case 1: \hskip \labelsep only
Here is the code that works fine.
\documentclass{article}
\usepackage{amsthm}
\newtheorem*{theorem}{Theorem}
\begin{document}
% My environment
\begin{trivlist}
\item[\hskip \labelsep \textbf{Theorem.}]
\begin{itshape}
Lorem Ipsum.
\end{itshape}
\end{trivlist}
% Theorem environment for comparison
\begin{theorem}
Lorem Ipsum.
\end{theorem}
\end{document}
This produces the desired output as can be seen below.

Case 2: No \hskip \labelsep
I wanted to see why \hskip \labelsep is necessary in the above code, so I removed it from my code.
\documentclass{article}
\usepackage{amsthm}
\newtheorem*{theorem}{Theorem}
\begin{document}
% My environment
\begin{trivlist}
\item[\textbf{Theorem.}]
\begin{itshape}
Lorem Ipsum.
\end{itshape}
\end{trivlist}
% Theorem environment for comparison
\begin{theorem}
Lorem Ipsum.
\end{theorem}
\end{document}
This does not produce the desired output. The indentation of my environment appears to be less than the indentation of the actual theorem environment.

This indicates that \hskip \labelsep is necessary.
Case 3: \setlength{\labelsep}{1in} along with \hskip \labelsep
I tried searching the web to understand why \hskip \labelsep is necessary to get the correct indentation but couldn't find anything that made sense to me. I decided to find how varying \labelsep affects the indentation.
\documentclass{article}
\usepackage{amsthm}
\newtheorem*{theorem}{Theorem}
\setlength{\labelsep}{1in}
\begin{document}
% My environment
\begin{trivlist}
\item[\hskip \labelsep \textbf{Theorem.}]
\begin{itshape}
Lorem Ipsum.
\end{itshape}
\end{trivlist}
% Theorem environment for comparison
\begin{theorem}
Lorem Ipsum.
\end{theorem}
\end{document}
This produces the output shown below.

In this output, the behaviour of \labelsep seems to match what is described at http://www.troubleshooters.com/linux/lyx/ownlists.htm
\labelsep — The distance between the rightmost part of the label (assuming you haven't changed the label from its default right justification) to the left margin of the item body. This is one of the handiest adjustments you can make to create the ultimately readable list for your exact situation.
BEWARE: This setting enforces this distance by shoving the label left rather than moving the body left margin right. If you set this you might need to add a corresponding amount to \leftmargin, if you want your labels in a specific place.Use it early and often.
I was also expecting the indentation of my environment to be more than the indentation of the actual theorem environment, but as you can see in the output above, the indentation of my environment is same as that of the actual environment. I don't know if the 'BEWARE' note in the above documentation can explain this.
Case 4: \hskip 1in only
However, if I just use \hskip 1in instead of \hskip \labelsep, I do see the increase in indentation that I expect.
\documentclass{article}
\usepackage{amsthm}
\newtheorem*{theorem}{Theorem}
\begin{document}
% My environment
\begin{trivlist}
\item[\hskip 1in \textbf{Theorem.}]
\begin{itshape}
Lorem Ipsum.
\end{itshape}
\end{trivlist}
% Theorem environment for comparison
\begin{theorem}
Lorem Ipsum.
\end{theorem}
\end{document}
The output below shows that the indentation of my environment is more than that of the actual theorem environment.

Could you please explain me the role of \hskip \labelsep here and help me to understand why each output appears the way it does?
