Beginner Question Concerning the Logic of a Very Simple Correctness Proof
Both of the assumptions you mention are &quot;local&quot; in the sense that they are a subclaim in the proof and are not part of the conditions of the theorem. You can also see them as the definition of a local variable $i$, an equivalent formulation of the two assumptions would be


Let $i$ be such that $A'[i]&lt;A'[k]$ and $1\leq i \leq n$.

Let $i$ be such that $1\leq i \leq k$.



The proof counts the number of values of $i$ for which these statements hold, which shows that the postcondition is satisfied.

I think part of your confusion follows from some implicit language in these paragraphs, so I will rewrite one of them in full to be more explicit. The first paragraph from the book reads:

Suppose $A'[i] &lt; A'[k]$ for some $i$, $1 \leq i \leq n$. Then $i &lt; k$, for if $k &lt; i$, $A'[k] &gt; A'[i]$ violates the postcondition of Sort. Hence, there are fewer than $k$ elements of $A'$ , and hence of $A$, with value less than $A' [k]$.

A more explicit phrasing is as follows:
Let $i$ be such that $A'[i]&lt;A'[k]$ and $1\leq i \leq n$. If $k&lt;i$, then $A'[i]&lt;A'[k]$ contradicts with the postcondition of Sort, so $i\leq k$. If $i=k$, then $A'[i]=A'[k]$, which contradicts with our definition of $i$.
So, we have shown that if $A'[i]&lt;A'[k]$ and $1\leq i \leq n$, then $i&lt;k$. This means that the number of elements of $A'$ with value strictly less than $A'[k]$ is strictly fewer than $k$. Since $A$ is a permutation of $A'$, there are fewer than $k$ elements of $A$ strictly less than $A'[k]$. Since $A'[k]$ is the return value of the algorithm, the first part of the postcondition of Select is satisfied.
The overall structure of the second paragraph is similar, so you should be able to grasp it if you can understand the first.