Why Protocol Specification?

In the short term, we can manually and semi-automatically check protocols. In the long term, we will be able to generate protocols from specifications in specialist languages. We can <#829#> validate<#829#> a protocol - check that protocol is free from syntactic errors, and is simply self consistent. We can <#830#> verify<#830#> protocol - can check that the protocol does actually provide the required functionality.