Formal verification of cryptographic protocols with automated reasoning