In computer science we consider many data structure, for instance natural numbers, graphs, strings, etc.
For the purpose of computation we shall identify these data structures as binary strings, i.e. elements of .

  • A natural number is identified with its binary representation.
  • A subset is identified with a -bit binary string , with just if .
  • A (directed) graph is identified with its set of edges.
  • A string over a finite alphabet is identified with a binary string by fixing some prefix-free coding of within .

Note

For we shall for its length as a binary string, and extend this notation to other data structures too, cf. above.

Examples

Natural Numbers

For a positive integer , the length of its binary representation is

Sets

Problems

Since we represent all data as binary strings, we may define:

Definition

A language or predicate is just a subset of binary strings

We also sometimes speak of problem, whose solutions are identified with the corresponding language/predicate.
When speaking of data other than binary strings, we may speak of an instance of a problem to mean an instance of that data, e.g, a graph or a natural number.

The Satisfiability Problem

Fix a set of propositional variables
Formulas:
Assignment:
Eval:

SAT is the set of formulas S.T .