TLA+ is a language for modeling concurrent and distributed programs and systems
lamport.azurewebsites.net