wimmers / poly-reductions

Polynomial-time reductions in Isabelle/HOL
2 stars 13 forks source link

Polynomial-Time Reductions in Isabelle/HOL

This repository sets out to formalize some classic results about NP-completeness in Isabelle/HOL.

Using

The theories in this repository are developed with Isabelle2021

For checking and browsing the theories following sessions are needed:

Download those sessions and follow AFP's Using Guide to make them available for your Isabelle setup.

In the root folder of this repository invoke isabelle build -D . to check all the sessions.

For browsing the theories we recommend isabelle jedit -l HOL-Analysis Poly_Reductions.thy &. The first startup will pre-build HOL-Analysis---which will take a while. All following invokations of Isabelle/JEdit will be quick.

If you want to look only at Karp's Reductions: isabelle jedit -l HOL-Analysis Karp21/All_Reductions_Poly.thy &. If you want to look only at Cook Levin's Theorem: isabelle jedit -l HOL-Analysis Cook_Levin/Complexity_classes/Cook_Levin.thy &.

Overview

The following reductions are currently formalized: Graph of all formalized reductions

Work Plan

The current work plan is summarized here and tracked by Github issues and milestones.

Index

Polynomial-Time Reductions

So far the following classic reductions between NP-hard problems have been formalized:

Auxiliaries

NREST

For reasoning about the runtime complexity of the reductions, we use: https://github.com/maxhaslbeck/NREST.