Skip to content

nmamano/SATReductionLang

Repository files navigation

SAT Reduction Language

This is the interpreter for the online judge for the exercises on SAT reductions at https://racso.cs.upc.edu/juezwsgi/exercise-list?inputkind=redsat

This judge is for computation theory courses covering SAT or NP-hard reductions in general. It offers exercises to practice writing reductions to SAT, and offers counterexamples in the case of wrong submissions.

Each exercise consists of a decision problem. For each one, the goal is to give a valid reduction to SAT, i.e., a SAT formula that is satisfiable if and only if the instance of the original problem is a "yes" instance. In order to write the reduction, the user uses a C-inspired language that we made to make expressing SAT reductions convenient (while at the same time limiting the users' capabilities so that they cannot simply write a program to solve the original problem directly and bypass the reduction). For instance,

or(f1,f2,...,fN):

returns a formula that is satisfiable if and only if at least one of the formulas f1, f2, . . . , fN is true, and other primitives like

atleast(k,f1,f2,...,fN)

have similar purposes.

The judge started as a clone of the judge for general NC-hard reductions. This project contains the modifications made to adapt it to a SAT-reductions-specific judge.

About

Interpreter for an online judge for SAT reductions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published