You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: lec-computation.typ
+41-28Lines changed: 41 additions & 28 deletions
Original file line number
Diff line number
Diff line change
@@ -16,37 +16,40 @@
16
16
17
17
== Why Theory of Computation?
18
18
19
-
We have studied _propositional logic_, _SAT_, and _first-order logic_.
19
+
We have studied _propositional logic_, _SAT_, and _first-order logic_.\
20
20
A natural question recurs: *"Which problems can be solved automatically?"*
21
21
22
22
#Block(color: yellow)[
23
23
*The central question of this lecture:*
24
-
25
24
Given a decision problem (e.g., "is this FOL formula valid?"), does there exist an _algorithm_ that always answers correctly in _finite time_?
26
25
]
27
26
28
-
#columns(2)[
29
-
*We have already seen:*
30
-
- SAT is NP-complete --- hard, but _decidable_\
31
-
_(an answer always exists, just slowly)_
32
-
- FOL validity is only _semi-decidable_\
33
-
_(provability but not refutability)_
34
-
- Some SMT theories are _decidable_\
35
-
_(e.g., linear arithmetic over $RR$)_
36
-
- FOL over $NN$ (Peano Arithmetic) is undecidable
37
-
38
-
#colbreak()
39
-
40
-
*This lecture provides:*
41
-
- Formal definition of "computation"
42
-
- Precise meaning of _decidability_
43
-
- Rice's theorem: why program verification is _hard in general_
44
-
- Why SMT solvers restrict to specific _theories_
45
-
]
27
+
#grid(
28
+
columns: 2,
29
+
column-gutter: 1em,
30
+
[
31
+
*We have already seen:*
32
+
- SAT is NP-complete --- hard, but _decidable_\
33
+
_(an answer always exists, just slowly)_
34
+
- FOL validity is only _semi-decidable_\
35
+
_(provability but not refutability)_
36
+
- Some SMT theories are _decidable_\
37
+
_(e.g., linear arithmetic over $RR$)_
38
+
- FOL over $NN$ (Peano Arithmetic) is undecidable
39
+
],
40
+
[
41
+
*This lecture provides:*
42
+
- Formal definition of "computation"
43
+
- Precise meaning of _decidability_
44
+
- Turing machines as a model of computation
45
+
- Rice's theorem: why program verification is #box[_hard in general_]
46
+
- Why SMT solvers restrict to specific _theories_
47
+
],
48
+
)
46
49
47
-
#Block(color: blue)[
48
-
*Payoff:* You will understand precisely _why_ automated verification requires carefully chosen decidable fragments --- and why general program verification is fundamentally undecidable.
49
-
]
50
+
//#Block[
51
+
// You will understand precisely _why_ automated verification requires carefully chosen decidable fragments --- and why general program verification is fundamentally undecidable.
52
+
//]
50
53
51
54
== Formal Languages
52
55
@@ -126,17 +129,22 @@ Formal languages are classified into four nested levels:
126
129
],
127
130
)
128
131
129
-
#Block(color: yellow)[
130
-
"Is $w in L$?" and "does the algorithm say yes on input $w$?" are _the same question_.
132
+
#place[
133
+
#v(1em)
134
+
#Block(color: yellow)[
135
+
"Is $w in L$?" and "does the algorithm say yes on input $w$?" are _the same question_.
131
136
132
-
Formal language theory gives us the mathematics to study the _limits of computation_.
137
+
// Formal language theory gives us the mathematics to study the _limits of computation_.
138
+
]
133
139
]
134
140
135
141
== Language Complexity Classes
136
142
143
+
#v(-1em)
137
144
#align(center)[
138
145
#cetz.canvas({
139
146
importcetz.draw: *
147
+
scale(95%)
140
148
circle((0, 0), radius: (0.8, 0.4))
141
149
circle((0, 0.4), radius: (1.4, 0.8))
142
150
circle((0, 0.8), radius: (2, 1.2))
@@ -159,8 +167,13 @@ Formal languages are classified into four nested levels:
159
167
})
160
168
]
161
169
162
-
#note[
163
-
*SAT* is decidable (NP-complete). *HALT* is recognizable but _not_ decidable: a TM can confirm halting by simulation, but cannot confirm non-halting. $"REGULAR"_"TM"$ = "does TM $M$ recognize a regular language?" --- in neither RE nor co-RE.
170
+
#place[
171
+
#v(1em)
172
+
#note[
173
+
*SAT* is decidable (NP-complete).
174
+
*HALT* is recognizable but _not_ decidable: a TM can confirm halting by simulation, but cannot confirm non-halting.
175
+
$"REGULAR"_"TM"$ = "does TM $M$ recognize a regular language?" --- in neither RE nor co-RE.
0 commit comments