Text this: Rigorous Methods for Software Construction and Analysis