Dr Conor McBride
Reader
Computer and Information Sciences
Back to staff profile
Publications
- Measuring with confidence : leveraging expressive type systems for correct-by-construction software
- McBride Conor, Nakov Georgi, Nordvall Forsberg Fredrik
- Acta IMEKO Vol 12 (2023)
- https://doi.org/10.21014/actaimeko.v12i1.1412
- A type and scope safe universe of syntaxes with binding : their semantics and proofs
- Allais Guillaume, Atkey Robert, Chapman James, McBride Conor, McKinna James
- Journal of Functional Programming Vol 31 (2021)
- https://doi.org/10.1017/S0956796820000076
- Type systems for programs respecting dimensions
- McBride Conor, Nordvall Forsberg Fredrik
- Advanced Mathematical and Computational Tools in Metrology and Testing XII (2021) (2021)
- Doo bee doo bee doo
- Convent Lukas, Lindley Sam, McBride Conor, McLaughlin Craig
- Journal of Functional Programming Vol 30 (2020)
- https://doi.org/10.1017/S0956796820000039
- A type and scope safe universe of syntaxes with binding : their semantics and proofs
- Allais Guillaume, Atkey Robert, Chapman James, McBride Conor, McKinna James
- International Conference on Functional Programming 2018, pp. 1-30 (2018)
- https://doi.org/10.1145/3236785
- Everybody's got to be somewhere
- McBride Conor
- Mathematically Structured Functional Programming, pp. 53-69 (2018)
- https://doi.org/10.4204/EPTCS.275.6
Back to staff profile
Professional Activities
- Scottish Programming Languages and Verification Summer School 2024
- Organiser
- 29/7/2024
- Contributed long talk TYPES 2022: TypOS: An “Operating System” for Typechecking Actors
- Contributor
- 22/6/2022
- NPL Data Science Seminar: "Typed functional programming: helping the compiler help you"
- Speaker
- 13/7/2021
- Contributed talk TYPES 2021: "Functorial Adapters"
- Speaker
- 15/6/2021
- Public engagement talk: "Dimensionally correct by construction: Type systems for programs respecting dimensions"
- Speaker
- 15/6/2021
- Contributed talk TYPES 2017: "Variations on inductive-recursive defnitions closed under composition"
- Contributor
- 31/5/2017
Projects
- KTP - Cambridge Quantum Computing (CQC) / R190328-202
- McBride, Conor (Principal Investigator) Atkey, Bob (Co-investigator) Nordvall Forsberg, Fredrik (Co-investigator)
- 24-Feb-2020 - 23-Feb-2022
- KTP - Cambridge Quantum Computing (CQC)
- McBride, Conor (Principal Investigator) Atkey, Bob (Co-investigator) Nordvall Forsberg, Fredrik (Co-investigator)
- 24-Feb-2020 - 23-Feb-2022
- Trusted Systems
- Ghani, Neil (Principal Investigator) McBride, Conor (Co-investigator) Nordvall Forsberg, Fredrik (Co-investigator)
- 01-Oct-2019 - 30-Sep-2024
- Trusted Systems
- Ghani, Neil (Co-investigator) McBride, Conor (Principal Investigator) Nordvall Forsberg, Fredrik (Co-investigator)
- 01-Oct-2019 - 30-Sep-2023
- Homotopy Type Theory: Programming and Verification
- Ghani, Neil (Principal Investigator) McBride, Conor (Co-investigator)
- "The cost of software failure is truly staggering. Well known
individual cases include the Mars Climate Orbiter failure
(£80 million), Ariane Rocket disaster (£350 million), Pentium
Chip Division failure (£300 million), and more recently the heartbleed
bug (est. £400 million). There are many, many more examples. Even worse,
failures such as one in the Patriot Missile System and another
in the Therac-25 radiation system have cost lives. More generally, a
2008 study by the US government estimated that faulty
software costs the US economy £100 billion
annually.
There are many successful approaches to software verification
(testing, model checking etc). One approach is to find mathematical
proofs that guarantees of software correctness. However, the
complexity of modern software means that hand-written mathematical
proofs can be untrustworthy and this has led to a growing desire for
computer-checked proofs of software correctness.
Programming languages and interactive proof systems like Coq, Agda,
NuPRL and Idris have been developed based on a formal system called
Martin Type Theory. In these systems, we can not only write
programs, but we can also express properties of programs using types,
and write programs to express proofs that our programs are correct.
In this way, both large mathematical theorems such as the Four Colour
Theorem, and large software systems such as the CompCert C compiler
have been formally verified. However, in such large projects, the
issue of scalability arises: how can we use these systems to build large
libraries of verified software in an effective way?
This is related to the problem of reusability and modularity: a
component in a software system should be replaceable by another which
behaves the same way even though it may be constructed in a completely
different way. That is, we need an extensional equality which is
computationally well behaved (that is, we want to run programs using
this equality). Finding such an ty is a fundamental and
difficult problem which has remained unresolved for over 40 years.
But now it looks like we might have a solution! Fields medallist
Vladimir Voevodsky has come up with a completely different take on the
problem by thinking of equalities as paths such as those which occur
in one of the most abstract branches of mathematics, namely homotopy
theory, leading to Homotopy Type Theory (HoTT). In HoTT, two objects
are completely interchangeable if they behave the same way. However,
most presentations of HoTT involve axioms which lack computational
justification and, as a result, we do not have programming languages
or verification systems based upon HoTT. The goal of our project is
to fix that, thereby develop the first of a new breed of HoTT-based
programming languages and verification systems, and develop case
studies which demonstrate the power of HoTT to programmers and
those interested in formal verification.
We are an ideal team to undertake this research because i) we have
unique skills and ideas ranging from the foundations of HoTT to the
implementation and deployment of programming language and verification
tools; and ii) the active collaboration of the most important figures
in the area (including Voevodsky) as well as industrial participation
to ensure that we keep in mind our ultimate goal -- usable programming
language and verification tools." - 01-Apr-2015 - 30-Sep-2019
- CORCON (FP7 IRSES)
- Ghani, Neil (Principal Investigator) Kupke, Clemens (Co-investigator) McBride, Conor (Co-investigator)
- 01-Jan-2014 - 31-Dec-2017
Back to staff profile
Contact
Dr
Conor
McBride
Reader
Computer and Information Sciences
Email: conor.mcbride@strath.ac.uk
Tel: 548 3172