Outline of Material for Test #1, CS8813, Fall 2001
Regular Languages
- Background Definitions
- Basic Principles of Proofs
You should understand the basic principles behind
proofs. That includes, deductive proof methods, inductive
proof methods (including both inductions on integers and
structural inductions, proof by contradiction, counterexamples,
proving the contrapositive, and proving equivalences of sets.
- Background Definitions For Languages
You should be able to define and discuss:
- Alphabets
- Strings
- Languages
- Problems (and how they relate to Languages)
- Definition of Regular Languages
- Be able to define a Deterministic Finite Automaton (DFA) (page 46)
- Be able to define Transition Diagrams (page 48)
- Be able to define the Extended Transition Function (page 49-50)
- Be able to define regular languages (The language accepted by a DFA). (page 52-53)
- Be able to prove that a DFA accepts a particular language by using recursion on the length of strings and the definition of the Extended Transition Function (For an example see page 59)
- Non-Deterministic Finite Automata (NFA)
- Be able to define a NFA (page 57)
- Be able to define the extended transition function for a NFA (page 58).
- Be able to define the language accepted by a NFA (page 59).
- Be able to prove that a NFA accepts a particular language using the definition of the extended transition function (page 59)
- Be able to use subset construction to convert a NFA to a DFA. (page 61)
- Be able to prove that any language accepted by an NFA can also be accepted by some DFA. (page 63)
- Be able to discuss why it is possible for a DFA to have a number of states that is exponentially greater than an NFA. (page 65)
- Be able to define an epsilon-NFA (page 74).
- Be able to define Epsilon-Closures. (page 75)
- Be able to define the extended transition function for epsilon-NFA's (page 76).
- Be able to eliminate epsilon transitions from an epsilon-NFA (page 77)
- Be able to prove that a language accepted by some epsilon-NFA if and only if it is accepted by some DFA. (page 79)
- Regular Expressions
- Be able to define the language accepted by a regular expression (page 86).
- Understand the precedence of regular expression operators (page 88).
- Be able to write regular expressions for various informal descriptions of languages (Such as the exercises on page 89).
- Be able to prove that any language that is accepted by some DFA is also accepted by some regular expression (page 91-101).
- Be able to compute the regular expression for the language accepted by a given DFA by using either the R_ij^k function or by state elimination.
- Be able to convert any regular expression into an epsilon-NFA (page 101-105).
- Properties of Regular Expressions and Regular Languages
- Be able to define Identities and Annihilators for regular expression operators.
- Know the associative, commutative, and distributive laws for regular expressions
- What does it mean for an operator to be idempotent, what is the idempotent law for regular expressions?
- Know about simplification laws involving closures (Page 117).
- Know how to test regular expressions for equivalences (page 119).
- Know and be able to state the pumping lemma. (Page 126).
- Be able to prove that languages are not regular. (See examples in class, book, and HW assignments.)
A pumping lemma proof is almost guaranteed for the test.
- Be able to prove closure properties for union, intersection, complement, difference, reversal, and homomorphism. (Page 131-139).
- Minimization and equivalence of DFA's will not be on this test!