Formal methods: Practice and experience