Overview
What SAT means
SAT, short for Boolean satisfiability, is the problem of deciding whether a Boolean formula can be made true by assigning true or false values to its variables.
SAT asks a yes or no question
Given a Boolean formula, is there an assignment of true and false values that makes the formula true?
CNF is the common exchange format
Most SAT systems use formulas expressed as a conjunction of clauses, where each clause is a disjunction of literals.
Modern solvers are highly engineered
Competitive SAT solvers combine conflict-driven learning, propagation, restarts, preprocessing, and tuned heuristics.
A simple example
The formula (x1 OR x2) AND (not x1 OR x2) is SAT because setting x2 = true makes both clauses true.
A formula is UNSAT if every possible assignment fails at least one clause. The answer is then not a model, but a proof that no model exists.
Formula: (x1 OR x2) AND (NOT x1 OR x2)
x1=false, x2=false -> first clause false, formula false
x1=false, x2=true -> both clauses true, formula true
x1=true, x2=false -> second clause false, formula false
x1=true, x2=true -> both clauses true, formula true
Result: SAT
One model: x1=false, x2=trueWhy SAT is central
SAT is a compact language for constraints. Many engineering questions can be translated into SAT: does a circuit have a bug, can this plan be scheduled, can this state be reached, or does this configuration violate a rule?
SAT is also a bridge between theory and production engineering. It is simultaneously a canonical NP-complete problem, a compiler target for constraint systems, and a practical backend used inside larger tools.
Interactive
Interactive SAT Lab
Edit the CNF, change the assignment, inspect each clause, and see the truth table for small formulas.
DIMACS CNF input
Assignment checker
This assignment satisfies every parsed clause.
Satisfied
3
Unsatisfied
0
Unassigned
0
Parsed formula
Variables
2
Clauses
3
Declared
3
Clause-by-clause evaluation
C1: x1 OR x2
satisfiedC2: not x1 OR x2
satisfiedC3: x1 OR not x2
satisfiedTruth table
For formulas with four or fewer variables, the table enumerates every possible assignment.
| x1 | x2 | Formula |
|---|---|---|
| F | F | false |
| F | T | false |
| T | F | false |
| T | T | SAT row |
Foundations
Boolean logic basics
SAT is built on Boolean logic. The vocabulary is small, but large systems can be encoded by composing these primitives.
Variables and truth values
A Boolean variable has only two possible values: true or false. SAT solvers usually write variables as positive integers, so variable 1 means x1, variable 2 means x2, and so on.
A full assignment gives every variable a value. A partial assignment gives values to only some variables and leaves the rest undecided.
Operators
The most common operators are NOT, AND, and OR. From these, one can express implication, equivalence, exclusive-or, at-most-one constraints, and circuit gates.
Example: a implies b is equivalent to NOT a OR b.
Formulas and constraints
A formula is a tree or circuit of Boolean operations. A constraint system is a collection of rules that must all hold. CNF expresses this as a list of clauses that must all be satisfied.
Common equivalences
- NOT (a AND b) is equivalent to (NOT a OR NOT b).
- NOT (a OR b) is equivalent to (NOT a AND NOT b).
- a implies b is equivalent to (NOT a OR b).
- a equals b can be encoded as (NOT a OR b) AND (a OR NOT b).
- a XOR b is true when exactly one of a or b is true.
Satisfying one clause
A clause is satisfied if at least one of its literals is true. For example, (x1 OR NOT x2 OR x3) is satisfied when x1 is true, or x2 is false, or x3 is true. Only one true literal is enough.
A CNF formula is satisfied only when every clause is satisfied at the same time.
History
Origin of the SAT problem
SAT became foundational because it was the first problem proved NP-complete.
Cook and Levin
In 1971, Stephen Cook showed that Boolean satisfiability captures the difficulty of every problem in NP. Leonid Levin independently developed closely related ideas. This became known as the Cook-Levin theorem.
NP-completeness
A problem in NP is one where a proposed solution can be checked efficiently. SAT is NP-complete because any NP verification process can be encoded as a Boolean formula whose satisfying assignment represents a valid witness.
From theory to infrastructure
The theory did not remain abstract. Decades of solver engineering turned SAT into a practical tool for verification, planning, synthesis, automated reasoning, and benchmark-driven research.
Definition
The formal problem
SAT takes a Boolean formula as input and returns one of two outcomes: satisfiable or unsatisfiable.
Inputs
- A finite set of Boolean variables, each assigned either true or false.
- A formula built from variables, negation, AND, OR, and sometimes other derived operators.
- In practical solver pipelines, the formula is usually converted into CNF before solving.
Outputs
- SAT means at least one assignment satisfies the formula.
- A SAT answer normally includes a model, also called an assignment.
- UNSAT means no assignment satisfies the formula.
- A rigorous UNSAT answer should include a proof artifact that can be checked independently.
Complexity
Why SAT is computationally difficult
SAT is easy to verify but can be hard to solve. That asymmetry is why it became one of the central problems in computer science.
Brute force grows exponentially
A formula with n variables has 2^n possible assignments. For 20 variables, that is about one million assignments. For 100 variables, brute force is already astronomically large.
Verification is fast
If someone gives a proposed SAT assignment, checking it is straightforward: evaluate each clause. This is why SAT is in NP. The hard part is finding an assignment, or proving none exists.
Worst case versus practice
NP-completeness is a worst-case statement. Many real SAT instances are easy because they contain structure. Others are extremely hard even with modern solvers.
This distinction matters for a bounty platform: a small file can represent an enormous search space, and the economic value may come from either finding a model, proving no model exists, or building a reusable corpus of solved instances.
Format
CNF and DIMACS
Conjunctive normal form is the standard representation used by most SAT solvers and benchmark repositories.
How CNF works
CNF means the formula is an AND of clauses. Each clause is an OR of literals. A literal is either a variable or the negation of a variable.
DIMACS CNF is the common plain-text file format. Comment lines start with c. The problem line starts with p cnf, followed by the number of variables and clauses. Each clause is a list of signed integers ending in 0.
DIMACS example
c A small CNF example
c Variables are numbered 1 and 2
p cnf 2 3
1 2 0
-1 2 0
1 -2 0p cnf 2 3
means: 2 variables, 3 clauses
1 2 0
means: x1 OR x2
-1 2 0
means: NOT x1 OR x2
1 -2 0
means: x1 OR NOT x2Positive integers
A positive integer such as 3 means variable x3 appears normally.
Negative integers
A negative integer such as -3 means the negation of variable x3.
Clause terminator
Every DIMACS clause ends with 0, which is not a variable.
What comments are for
DIMACS comments are ignored by solvers, but they are useful for humans and databases. They can record generator, source, domain, seed, benchmark family, or notes. They should not contain secrets or sensitive customer data.
Common file mistakes
- The problem line says the wrong number of variables or clauses.
- A clause is missing the terminating 0.
- The file contains non-DIMACS characters or copied formatting artifacts.
- A literal references a variable larger than the declared variable count.
- The problem is not actually CNF even though the file says p cnf.
Encoding
How real problems become SAT
Most practical SAT work is not hand-writing clauses. It is designing an encoding from a real problem into Boolean constraints.
Tseitin transformation
Directly expanding formulas into CNF can become exponentially large. Tseitin transformation avoids that by introducing auxiliary variables for subformulas, producing an equisatisfiable CNF of roughly linear size.
Original subformula:
y <-> (a OR b)
CNF clauses:
(-y OR a OR b)
(y OR -a)
(y OR -b)
Meaning:
If y is true, at least one of a or b must be true.
If a is true, y may be true.
If b is true, y may be true.
Together, these clauses preserve y = (a OR b).Cardinality constraints
Many applications need statements like "at most one", "exactly one", or "at least k". These can be encoded using pairwise clauses, sequential counters, sorting networks, cardinality networks, or binary encodings.
The best encoding depends on size, propagation strength, and how the solver will use the constraint.
Circuit encoding
Hardware gates map naturally to CNF. AND, OR, XOR, multiplexer, comparator, and adder circuits can be translated into clauses with auxiliary variables.
Planning encoding
A bounded planning problem can use variables for action-at-time and state-at-time. Clauses encode preconditions, effects, mutual exclusion, and the target goal.
Graph encoding
Coloring, clique, independent set, Hamiltonian path, and scheduling problems can be represented by variables that mean "object i has choice j" plus clauses enforcing consistency.
3-SAT
Why 3-SAT is important
3-SAT is the SAT variant where each clause has exactly three literals. It remains NP-complete and is a canonical form for reductions and benchmarks.
Relationship to SAT
General SAT can use clauses of arbitrary size. 3-SAT restricts clauses to three literals while preserving NP-completeness. This makes it a clean research target and a useful benchmark family.
Long clause:
(a OR b OR c OR d OR e)
One 3-SAT style conversion with auxiliary variables t1 and t2:
(a OR b OR t1)
(NOT t1 OR c OR t2)
(NOT t2 OR d OR e)
The auxiliary variables let the chain carry the remaining choice forward.Practical note
Real-world SAT instances are not always pure 3-SAT. Many applications produce mixed clause sizes, but they can still be represented in DIMACS CNF and processed by modern solvers.
A platform can accept general CNF while still emphasizing 3-SAT as a canonical family. Many industrial files are mixed CNF because mixed clause size is more compact and solver-friendly.
Answers
SAT assignments and UNSAT proofs
A correct SAT answer and a correct UNSAT answer have different shapes.
SAT answer
For SAT, the solver provides an assignment. Verification is direct: plug the assignment into every clause and check that each clause has at least one true literal.
v 1 2 0
c x1 = true, x2 = trueA SAT answer may include only assigned variables, or it may include all variables. A verifier should treat unassigned variables carefully and validate the assignment against the exact instance file.
UNSAT answer
For UNSAT, there is no assignment to check. The solver must provide a proof that the formula cannot be satisfied. Common proof formats include DRAT, LRAT, FRAT, and related variants.
Independent proof checking matters because it separates trust in the answer from trust in the solver that produced it.
Without a proof, an UNSAT claim is just a claim. With a proof, a verifier can replay the logical derivation and confirm that contradiction follows from the original CNF.
SAT verification checklist
- Parse the original CNF exactly.
- Parse the assignment artifact.
- Confirm variable numbers are within range.
- Evaluate every clause under the assignment.
- Accept only if every clause is satisfied.
UNSAT verification checklist
- Identify the proof format.
- Use the checker compatible with that proof format.
- Run the checker against the original CNF, not a different standardized file unless the proof was generated for it.
- Accept only if the checker verifies the proof.
Why exact files matter
A proof or assignment is tied to a specific formula. Even small changes in clause order, added clauses, removed comments, or re-encoded variables can break compatibility unless the system tracks the transformation and verifies against the correct target.
Solvers
How SAT solvers work
Modern SAT solvers are search engines with aggressive inference and learning.
DPLL
The Davis-Putnam-Logemann-Loveland procedure searches by choosing a variable assignment, propagating forced consequences, and backtracking when a contradiction is found.
Clauses:
(x1)
(NOT x1 OR x2)
(NOT x2 OR x3)
Step 1: (x1) forces x1 = true
Step 2: (NOT x1 OR x2) now forces x2 = true
Step 3: (NOT x2 OR x3) now forces x3 = true
This chain is unit propagation.CDCL
Conflict-driven clause learning extends DPLL by analyzing conflicts and adding learned clauses. A learned clause records why a branch failed and prunes similar branches later.
Heuristics
Solvers rely on variable selection, watched literals, restarts, phase saving, clause deletion, and preprocessing. These engineering choices often decide performance on difficult instances.
Unit propagation
If all but one literal in a clause are false, the remaining literal must be true. This is the main inference loop in CDCL solvers.
Watched literals
Solvers watch two literals per clause so they do not scan every clause after every assignment.
Conflict analysis
When a contradiction appears, the solver explains why it happened and learns a new clause.
Restarts
A solver may abandon the current branch and restart with learned clauses preserved, often improving search dramatically.
Preprocessing
Before search, solvers simplify the formula through techniques such as subsumption, variable elimination, and blocked clause elimination.
Inprocessing
Modern solvers also simplify during the search, balancing simplification time against search progress.
A useful mental model: the solver explores a huge binary search tree, but every conflict teaches it a new rule that cuts away parts of the tree. Strong solvers are good at learning the right rules and forgetting low-value rules before memory explodes.
Internals
Inside a CDCL solver
Conflict-driven clause learning is the engine behind many modern complete SAT solvers.
The main loop
- Propagate all currently forced assignments.
- If a conflict appears, analyze it and learn a clause.
- Backjump to a useful earlier decision level.
- If no conflict appears and variables remain, choose a branching variable.
- If all variables are assigned without conflict, return SAT.
- If conflict occurs at decision level zero, return UNSAT.
Conflict learning intuition
Suppose decisions A and B forced implications that eventually made a clause false. Conflict analysis finds a compact reason: a learned clause saying "not all of these causes can happen together."
The learned clause is added to the formula. It is logically implied by the original formula, so it does not change satisfiability, but it prevents repeated failure.
Variable selection
Choosing the next variable is critical. Activity-based heuristics prefer variables that appear in recent conflicts. This often focuses the solver on the hardest part of the formula.
Clause database management
Solvers can learn millions of clauses. Keeping all of them is too expensive, so solvers delete clauses that appear less useful while preserving clauses that are short, active, or high quality.
Complete versus incomplete
CDCL is complete: if given enough time and memory, it can prove SAT or UNSAT. Local search solvers are often incomplete: they may find models quickly but usually do not prove UNSAT.
Verification
Proof checking
SAT ecosystems increasingly rely on proof artifacts so a result can be checked independently.
Why proof checking exists
Solvers are complex and optimized. A proof checker is usually smaller and more focused. For UNSAT results, a proof checker confirms that the submitted proof derives a contradiction from the original formula.
This is especially important in open markets and scientific datasets: the verifier should not have to trust a solver executable, a participant, or a server. It should be able to verify the artifact.
Common proof families
- DRAT is widely used and supported by classic proof-checking tools.
- LRAT is more explicit, which can make checking simpler and more deterministic.
- FRAT is designed as a flexible proof trace format and can be elaborated into checkable forms.
- Proof pipelines depend on the solver and checker pair used by the verifier.
DRAT
DRAT proofs record clause additions and deletions under redundancy rules. They are compact and were widely adopted in SAT competitions and tooling.
LRAT
LRAT proofs include more explicit justification information. They can be larger, but checking can be simpler and more deterministic because the proof guides the checker.
FRAT
FRAT is a flexible proof trace format designed to support modern solver behavior and elaboration into lower-level proof formats for checking.
Ecosystem
Solver and proof tooling
SAT users usually work with a toolchain: encoders create CNF, solvers produce answers, proof tools check UNSAT, and surrounding systems manage metadata.
Classic CDCL solvers
MiniSAT helped define the modern minimal CDCL solver interface. Glucose, Lingeling, CaDiCaL, and Kissat represent major lines of engineering around learned clauses, restarts, and preprocessing.
Feature-rich solvers
CryptoMiniSat supports features useful for some structured instances, including XOR-aware reasoning and proof-related workflows. Different solvers can behave very differently on the same formula.
Proof checkers
DRAT, LRAT, and FRAT proof pipelines require matching checker tooling. A robust verification workflow should record the proof type, checker version, and exact instance digest.
Why multiple solvers matter
SAT performance is highly instance-dependent. A solver that is excellent on hardware verification instances may not dominate random k-SAT, cryptographic encodings, or crafted combinatorial benchmarks. Solver diversity improves coverage.
Reproducibility checklist
- Record solver name and version.
- Record command-line flags.
- Record timeout and resource limits.
- Record proof checker name and version.
- Store hashes for instance, answer, and proof artifacts.
Applications
Where SAT is used
SAT appears wherever a large discrete constraint system can be encoded as Boolean logic.
Hardware and EDA
Equivalence checking, bounded model checking, test generation, routing, and bug localization frequently reduce subproblems to SAT.
Software verification
Model checking, symbolic execution, dependency reasoning, and reachability checks use SAT or SMT at their core.
Planning and scheduling
Resource allocation, sequencing, timetabling, and bounded planning tasks can be encoded into Boolean constraints.
Optimization workflows
Many optimization systems repeatedly ask SAT-style feasibility questions while searching for the best objective value.
Cryptanalysis and security
Block ciphers, hash functions, protocol states, and reverse-engineering tasks can generate structured SAT instances.
Research and benchmarks
SAT benchmarks provide a shared language for comparing algorithms, solver configurations, and proof systems.
Why applications use SAT instead of custom search
SAT solvers are general, heavily optimized, and battle-tested. Instead of writing a custom backtracking engine for each domain, engineers can encode constraints into CNF and reuse decades of SAT solver improvements.
When SAT is not enough
Some problems are better handled by SMT, CP-SAT, mixed-integer programming, MaxSAT, or specialized algorithms. SAT is most natural when the core structure is Boolean or can be represented cleanly as Boolean constraints.
Practice
Benchmarks and good instance hygiene
A useful SAT corpus needs clear file formats, reproducible metadata, and trustworthy answer artifacts.
Instance quality
- Use valid DIMACS CNF syntax.
- Keep comments useful but avoid private information.
- Record how the instance was generated when possible.
- Keep original and standardized versions distinguishable.
Metadata
- Track variable count, clause count, generator, domain, and benchmark family.
- Use content hashes to detect exact duplicates.
- Use standardized forms to reduce formatting-only duplicates.
- Keep provenance separate from the mathematical instance when needed.
Answer validation
- For SAT, check every clause under the submitted assignment.
- For UNSAT, check the proof against the original formula.
- Store answer artifacts with digests.
- Treat solver output as untrusted until verification succeeds.
Random SAT
Generated by selecting random clauses. Random k-SAT is useful for studying phase transitions, solver scaling, and average-case behavior.
Industrial SAT
Produced by real workflows such as hardware verification, software analysis, planning, synthesis, or dependency solving. These instances often contain exploitable structure.
Crafted SAT
Designed to stress particular solver weaknesses, encode mathematical objects, or represent hard combinatorial puzzles.
Cryptographic SAT
Encodes ciphers, hash functions, stream generators, or reverse-engineering tasks. These formulas are often structured but deliberately difficult.
The random k-SAT phase transition
Random k-SAT has a famous hardness pattern. At low clause-to-variable ratios, formulas are usually satisfiable and easy. At very high ratios, formulas are usually unsatisfiable and often easy to refute. The hardest region tends to appear near the transition between SAT and UNSAT.
Why industrial instances behave differently
Industrial formulas are rarely random. They contain repeated structures, gates, symmetries, dependency chains, and domain-specific patterns. Modern solvers exploit this structure through propagation, learned clauses, and preprocessing.
Practice
Practical examples and platform workflow
These examples connect SAT theory to the files, clients, and verification flows used by 3SAT.
Reading a small CNF by hand
For the example with clauses (x1 OR x2), (NOT x1 OR x2), and (x1 OR NOT x2), the assignment x1=true, x2=true satisfies all clauses.
Clause 1 is true because x1 is true. Clause 2 is true because x2 is true. Clause 3 is true because x1 is true. Therefore the whole formula is SAT.
What standardization does
Standardization removes formatting differences that do not change the mathematical instance. This helps detect duplicates when one file has extra spaces, comments, or a different clause order.
3SAT also computes a variable-renamed structure fingerprint with a bidirectional variable mapping. When search finds a solved instance through this structure fingerprint, the downloaded answer bundle is transformed back into the query file's variable numbering.
What a verifier checks
For SAT, the verifier checks the assignment against the instance. For UNSAT, it selects the correct proof checker for the submitted proof type and verifies that the proof derives contradiction from the original formula.
Good bounty input
- Use a valid .cnf file in DIMACS format.
- Include useful comments about source and benchmark family when possible.
- Avoid embedding confidential business information in comments.
- Use a reward that matches expected difficulty and value.
- Keep a local copy of the exact instance you submit.
Good answer artifact
- For SAT, include a clear model assignment.
- For UNSAT, include a supported proof artifact.
- Do not manually edit solver output unless you know the verifier expects that format.
- Preserve the file digest after upload.
- Make sure the proof or assignment corresponds to the exact posted instance.
Examples
Sample library
Small examples are useful because every clause can be read by hand. These examples are intentionally tiny, but they illustrate common patterns.
tiny-sat.cnf
A two-variable SAT example for learning DIMACS and assignment checking.
p cnf 2 3
1 2 0
-1 2 0
1 -2 0Expected result: SAT, with x1=true and x2=true as one satisfying assignment.
tiny-unsat.cnf
The smallest useful UNSAT pattern: one variable is forced both true and false.
p cnf 1 2
1 0
-1 0Expected result: UNSAT, because x1 and not x1 cannot both hold.
exactly-one.cnf
Shows how exactly-one among three choices can be encoded.
p cnf 3 4
1 2 3 0
-1 -2 0
-1 -3 0
-2 -3 0Expected result: SAT when exactly one of x1, x2, x3 is true.
graph-2-coloring-triangle.cnf
A triangle graph cannot be 2-colored. This is a tiny graph-coloring UNSAT example.
c Variables: vertex-color booleans
c Triangle edges force different colors
p cnf 6 9
1 2 0
3 4 0
5 6 0
-1 -2 0
-3 -4 0
-5 -6 0
-1 -3 0
-3 -5 0
-5 -1 0Expected result: UNSAT for two colors on a 3-cycle.
Learning paths
How to read this academy
Different users need different parts of the SAT stack. These routes give each role a focused path through the material.
Beginner
- 1Boolean logic basics
- 2CNF and DIMACS
- 3Interactive lab
- 4SAT assignments and UNSAT proofs
- 5Glossary
Issuer
- 1Problem definition
- 2Encodings
- 3Benchmarks and good instance hygiene
- 4Sample library
- 5Practical examples and platform workflow
Solver
- 1Solver principles
- 2Inside a CDCL solver
- 3Solver and proof tooling
- 4SAT and UNSAT answers
- 5Practical examples
Verifier
- 1SAT and UNSAT answers
- 2Proof checking
- 3Tooling ecosystem
- 4Answer validation
- 5FAQ
FAQ
Troubleshooting and common questions
These are the questions users usually run into when moving from SAT theory to actual CNF files and verified answers.
Why does a SAT answer need only an assignment, but an UNSAT answer needs a proof?
A SAT assignment can be checked directly by evaluating every clause. UNSAT means no assignment exists, so a verifier needs a logical proof that derives contradiction from the original formula.
Why can the same mathematical instance have different files?
Comments, whitespace, clause order, and variable numbering can change the file without changing the underlying instance. 3SAT stores conservative format-normalized fingerprints and variable-renamed structure fingerprints; matched answer downloads are rebuilt for the submitted CNF before being returned.
What does UNKNOWN mean from a solver?
UNKNOWN usually means the solver stopped because of timeout, memory limits, unsupported features, or search limits. It is not a mathematical result and should not be treated as SAT or UNSAT.
Why not always use brute force?
Brute force checks every assignment, which grows as 2^n. A 100-variable instance has more possible assignments than can be exhaustively searched in practice. Solvers use inference and learning to avoid most of that search.
Are all CNF files 3-SAT?
No. A CNF file can contain clauses of any length. 3-SAT is the special case where every clause has exactly three literals. Real-world formulas often use mixed clause sizes.
What makes a SAT instance valuable?
Value can come from difficulty, application domain, reproducible provenance, enterprise relevance, benchmark usefulness, or a verified answer that others may want to query later.
Reference
Glossary
A compact reference for terms that appear in SAT literature, solver output, and 3SAT protocol flows.
Variable
A Boolean symbol that can be assigned true or false.
Literal
A variable or its negation, such as x or not x.
Clause
A disjunction of literals. In DIMACS CNF, a clause is written as signed integers ending with 0.
CNF
Conjunctive normal form: an AND of clauses, where each clause is an OR of literals.
Model
A satisfying assignment that makes every clause in the formula true.
UNSAT
The formula has no satisfying assignment.
Propagation
The process of deriving forced assignments from unit clauses and current decisions.
Conflict
A contradiction discovered during search, usually when a clause becomes false under current assignments.
Learned clause
A new clause derived from a conflict to prevent the solver from repeating the same failed region of search.
DRAT, LRAT, FRAT
Proof formats used to independently check UNSAT results without trusting the solver implementation.
DPLL
A backtracking SAT search procedure based on branching, unit propagation, and backtracking.
CDCL
Conflict-driven clause learning, the dominant architecture behind most high-performance complete SAT solvers.
Decision level
The depth in the solver search tree associated with a branching decision and the implications derived from it.
Backjumping
Non-chronological backtracking that jumps directly to the decision level responsible for a learned conflict.
VSIDS
A family of variable activity heuristics that favor variables involved in recent conflicts.
Phase saving
A heuristic that reuses the previous polarity assigned to a variable when branching again.
Subsumption
A simplification where a stronger clause makes a weaker clause redundant.
Tseitin transformation
A linear-size method for converting a Boolean circuit or formula into CNF using auxiliary variables.
MaxSAT
An optimization variant where the goal is to satisfy as many weighted or unweighted clauses as possible.
SMT
Satisfiability modulo theories, extending SAT-style search with background theories such as arithmetic, arrays, or bit-vectors.
QBF
Quantified Boolean formulas, where variables may be existentially or universally quantified.
In the 3SAT platform, this knowledge base supports the product flow: users can understand the file they upload, why solver answers need verification, and why SAT and UNSAT results require different artifact types.