CS 454, Section 001 | Sonoma State University | Spring, 2026 |
Theory of Computation
|
||
Instructor: Henry M. Walker
Lecturer, Sonoma State University |
Although much of this course has been well developed in recent semesters, some details may be adjusted from semester to semester. For example, the Signature Project for this course has satisfied SSU's Upper Division GE Area B Requirement for CS Majors for several years, and satisfying that requirement again this semester. However, details of this project likely vary from instructor to instructor and from semester to semester. Also,
Since these categories are clearly disjoint, a natural question is whether the placement of a regular language into the proper category is decidable. The following argument outlines a three-step claim that placing a regular language L into its proper category is decidable.
Step 1: L in Category A (empty) is decidable:.
Proof Outline for Step 1:
Step 2: L is in Category C (infinite) is decidable.
Proof Outline for Step 2: Using the same notation for L, R, and c from Step 1:
Step 3: L is in Category B (non-empty and finite) is decidable.
Proof Outline for Step 3: Deciding the proper category for a regular language L
Exercise for Problem 1
Categorization of Context-Free Languages: Motivated by Problem 1, Context-Free Langauges can be categorized into three disjoint categories: empty, non-empty but finite, and infinite.
Exercise: To what extent can the arguments of Problem 1 be modified to yield analogous proofs that this categorization of Context-Free Langauges is decidable? In particular, can c be changed to some other computable value, so that:
Pythagorean Triples as Roots of a Polynomial: In number theory, a Pythagorean triple consists of three positive integers (a, b, c), so that a2 + b2 = c2. Also, a polynomial of three variables p(x, y, z) is a sum of terms as described during the discussion of Hilbert's Problems in Section 3.3. In this problem, we consider only polynomials with integer coefficients.
Consider the language Polyint = {p(x, y, z) | p(x, y, z) is a polynomial with integer coefficients, such that there exists a Pythagorean triple (a, b, c) where p(a, b, c) = 0}
Show that Polyint is Turing recognizable.
Notes:
Reviewing the Halting Problem: The Halting Problem is said to be "unsolvable".
How Far Can Automated Testing/Program Verification Go? A company believes there would be a strong market for a software package that would take the specifications of a problem and the code for a program as input and would prove whether the program meets its specifications in all cases. That is, the software package would prove whether or not a program always meets its specifications.
Although the prospect of such software package might capture one's imagination, such can package cannot be successfully produced. Explain why an error-free version of this software is impossible to develop.
created Fall, 2023 revised Fall, 2023 revised September, 2025 |
![]() ![]() |
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu. |
![]() |
Copyright © 2011-2026
by Henry M. Walker.
|