I have an exercise about designing parity checks for the Hamming (9,5) group code with minimum distance $3$. I use the following notation for the generator matrix: $$ G=\begin{bmatrix}I&P\end{bmatrix} $$ so that $I$ is the identity $5\times 5$ matrix and $P$ is a $5\times 4$ matrix doing the parity checks. Now to my analysis and solution:
If $u,v\in\mathbb B^5$ have $d(u,v)=1$ we must have $d(uP,vP)\geq 2$ in order to have $d(uG,vG)\geq 3$. Now $d(u,v)=1$ iff. $u=v+e_i$ so it follows that $d(uP,vP)=wt(e_i P)\geq 2$ which shows that each row of $P$ must have weight at least 2.
If $d(u,v)=2$ we must have $u=v+e_i+e_j,i\neq j$ and $d(uP,vP)=wt(e_i P-e_j P)\geq 1$. This means that $e_i P$ and $e_j P$ has to be different, so this only implies that $P$ must have all rows different.
If I am correct thus far, I have found one solution to be $$ P= \begin{bmatrix} 1&1&0&0\\ 0&1&1&0\\ 0&0&1&1\\ 1&0&1&0\\ 0&1&0&1 \end{bmatrix} $$
So does my analysis make sense and is my solution valid?
NOTE: Please beware that this area is very new to me so keep it close to the level of difficulty I presented here, and I would be very grateful for that!
The solution and the logic leading up to it are impeccable. When a binary linear $(n,k)$-code is described in terms of a parity check matrix $H=M_{n-k,n}(\Bbb{F}_2)$ a known design criterion is: the minimum distance is $\ge d$, if no set of $d-1$ columns is linearly dependent.
If the generator matrix of a binary linear code is $G=(I_k|P)$, then the parity check matrix is $H=(P^T|I_{n-k})$. So in your case $$ H_{\mathrm{String}}=\left(\begin{array}{l}100101000\\110010100\\011100010\\001010001\end{array}\right). $$ Your conditions amounted to requiring that no two columns of this matrix should be equal, and this is manifestly the case.
Your code is an example of a shortened Hamming code. The (binary) Hamming code of length 15 and rank 11 has a check matrix consisting of all the fifteen non-zero binary columns of four bits $$ H_{\mathrm{Hamming}}=\left(\begin{array}{l}101010101010101\\011001100110011\\ 000111100001111\\000000011111111\end{array}\right). $$ You see that you get your check matrix by removing columns $7,9,11,13,14$ and $15$ from the Hamming check matrix and reordering the columns. The latter operation never affects the minimum distance.