Xingyuan Zhang

Learn More
Garay and MacKenzie introduced the first abuse- free multi-party contract signing protocol (GM), Chadha et al. proposed its revised version in order to restore fairness. Based on Paulson's inductive approach and the interactive theorem prover Isabelle/HOL, we analyze the above protocols, still discover serious problems with fairness. We give the formal(More)
Loop freedom is an important property for distance vector routing protocols, especially for the protocols of ad hoc network because the topologies are dynamic. This paper gives a formal description of the AODV protocol and presents a strictly formal proof of its loop freedom property in Isabelle/HOL. The proved theorem states that no loop will exist in any(More)
There are numerous textbooks on regular languages. Many of them focus on finite automata for proving properties. Unfortunately, automata are not so straightforward to formalise in theorem provers. The reason is that natural representations for automata are graphs, matrices or functions, none of which are inductive datatypes. Regular expressions can be(More)
We formalise results from computability theory in the theorem prover Isabelle/HOL. Following the textbook by Boolos et al, we formalise Turing machines and relate them to abacus machines and recursive functions. We “tie the knot” between these three computational models by formalising a universal function and obtaining from it a universal Turing machine by(More)
The correctness of a routing protocol can be divided into two parts, a liveness property proof and a safety property proof. The former requires that route(s) should be discovered and data be transmitted successfully, while the latter requires that the discovered routes have some desired characters such as containing only benign nodes. While safety(More)
An amorphous slice of a program is constructed with respect to a set of variables. The amorphous slice is an executable program which preserves the behaviour of the original on the variables of interest. Unlike syntax-preserving slices, amorphous slices need not preserve a projection of the syntax of a program. This makes the task of amorphous slice(More)