Daniel Kroening
Jul 16 · 2 min read

As an artificial intelligence (AI) startup founded by a computer science professor at the University of Oxford, we are often asked about the “AI for Code” that powers our tools. To explain it properly, we first need to start with an explanation of some of the assumptions underpinning AI, because even though AI is a popular topic in the press and throughout the technology industry, it’s often misunderstood.

AI as a discipline is about understanding and creating reasoning. The research on this runs back many years, and there are a number of different approaches to reasoning that AI can focus on. Two of these, inductive reasoning and deductive reasoning, are particularly important to AI for Code.

Inductive reasoning

Inductive reasoning attempts to infer an answer from a set of data points. This is very similar to how humans make decisions, either with incomplete knowledge or when the answer is likely but perhaps not always true. A computer might reason that rain follows thunder, lightning, and clouds, but meteorologists would tell us that this weather pattern is typically — but not always — the case.

To emulate this type of reasoning in machines, many AI researchers use a variety of machine learning algorithms, employing things like predictive analytics and unsupervised learning, to test and train datasets and to infer a result based on data. While popular and quite useful, machine learning is not the only type of AI used in the real world today.

Deductive reasoning

This is reasoning that arrives at a definitive and absolute conclusion. This process is not based on a correlation, regardless of statistical significance. For example, if we are considering the English alphabet, we know for certain that C always follows B. Our team has done important work in the area of deductive reasoning about code bases in order to understand how to solve some of the problems plaguing developers today.

So should AI approximate human-like decisions? If so, is it all about inductive reasoning?

Mixed Reasoning Approaches

In order for machines to make productive and intelligent choices, they must use a variety of reasoning patterns, much like humans, and we stand to learn and gain a lot from each of these types of reasoning and their combination.

Take, for instance, the work by Google’s DeepMind. DeepMind famously defeated the world champion at the game Go with their AlphaGo platform. They used a combination of inductive and deductive reasoning to arrive at answers.

Autonomous cars, game simulations or speech recognition all utilize a variety of AI methods. Similarly, in our research, we’re using appropriate data and models to solve problems like the automatic writing of unit tests, which we hope will revolutionize the way developers are able to write code.

Like the industry as a whole, AI for Code is just getting started.

AI³ | Theory, Practice, Business

The AI revolution is here! Navigate the ever changing industry with our thoughtfully written articles whether your a researcher, engineer, or entrepreneur

Daniel Kroening

Written by

Professor of Computer Science and Co-founder of Diffblue | We’re making developers wildly more productive with AI for Code

AI³ | Theory, Practice, Business

The AI revolution is here! Navigate the ever changing industry with our thoughtfully written articles whether your a researcher, engineer, or entrepreneur

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade