A Component-Based Approach To Proving The Correctness Of The Schorr-Waite Algorithm