I realised Black was wrong straight away. In the post-game analysis, we decided that if
was going to be played on the left side, it should probably have been played at a. Then a higher-dan player suggested that White should then leave the left side alone because there was no way to profitably attack Black a, and instead make Black pay something for leaving behind the weakness at b, specifically by playing White c.
I'm not sure whether Black should have played a or protected the bottom group, nor am I sure how it would have been best to defend the bottom group if I had decided too.