Published multiple journal articles, conference proceedings, and book chapters. Involved in various projects such as RoboChart case studies, High-Voltage Controller (HVC), UV light-treatment (UVC). Developed three plugins in RoboTool for the PRISM metamodel, RoboChart model transformation to PRISM and verification, and probabilistic properties.
Research Experience
2016 - now: Research Associate at the University of York, Department of Computer Science. Research areas include formal methods in robotics, probabilistic programming, and security. Using mathematical logic (alphabetised predicate calculus in Unifying Theories of Programming - UTP) to give probabilistic semantics (denotational and operational semantics) to a domain-specific language (RoboChart) in robotics, with support for modeling time and probability. Developing automated verification tools using modern model-based techniques (model transformation, validation, and generation) and formal verification (model checking and theorem proving), and applying theoretical semantics and practical tools to a variety of case studies. Contributed to RoboTool (supporting probabilistic verification for robotic applications) and Isabelle/UTP (a unifying semantic framework supporting theorem proving).
Education
2012 - 2016: PhD at the University of York, supervised by Prof. Jim Woodcock. Thesis: Model Checking of State-Rich Formalisms (By Linking to Combination of State-based Formalism and Process Algebra).
Background
Research interests and summary: Probabilistic programming: semantics and verification, Formal specification languages, Z notation and Circus, CSP, Graphical Notations, Formal verification of security protocols. Keywords: Formal verification, Formal semantics, Probabilistic programming languages, Probabilistic model checking, Probabilistic theorem proving, Model-based Software Engineering, Cyber-Physical Systems, Cryptographic security protocols, Tool development.
Miscellany
2004 - 2012: Industry (Embedded Software Engineer/Lead). Led a team (4-8 members) to develop embedded software for lithography, Ethernet Datacenter Switch, and Communication devices. Skills used: C/C++, MCU, Linux, VxWorks.