Bob chooses encoding matrix G
[1 0 0 0 1 1 0]
[0 1 0 0 1 0 1]
[0 0 1 0 0 1 1]
[0 0 0 1 1 1 1]
Thus, the associated parity check matrix H is
[1 1 0 1 1 0 0]
[1 0 1 1 0 1 0]
[0 1 1 1 0 0 1]
Bob chooses invertible matrix S
[1 0 0 1]
[1 1 0 1]
[0 1 0 1]
[1 1 1 0]
1
Bob chooses permutation matrix P
[0 0 1 0 0 0 0]
[1 0 0 0 0 0 0]
[0 0 0 0 1 0 0]
[0 0 0 0 0 1 0]
[0 0 0 0 0 0 1]
[0 1 0 0 0 0 0]
[0 0 0 1 0 0 0]
Bob generates public key G1 = S*G*P
[0 0 1 1 0 1 0]
[1 0 1 0 0 1 1]
[1 1 0 0 0 1 0]
[1 0 1 0 1 0 0]

Alice chooses message m
[1 0 0 0]
Alice chooses random error vector e
[0 0 0 0 1 0 0]
Alice computes ciphertext y = x*G1 + e
[0 0 1 1 1 1 0]

Bob decrypts ciphertext y by computing y1
[1 0 1 1 0 0 1]
Bob computes syndrome of y1 or S(y1) = y1*H^T
[0 1 1]
Find corresponding row in H^T
[1 1 0]
[1 0 1]
[0 1 1]
[1 1 1]
[1 0 0]
[0 1 0]
[0 0 1]
It is row 3! Correct the 3th bit in y1 -> x1!
[1 0 0 1 0 0 1]
By extracting the first 4 bits, we see that x0*G = x1
[1 0 0 1]
[1 0 0 1 0 0 1]
Compute the message by taking x0*S^-1
[1 0 0 0]

1