Due: Tuesday, September 4th by 11:59 PM

Note: you may use the regular expression checker from Lab 1 to check your solution.

Problem 1

Define a regular expression that generates the following language over the alphabet {a, b}:

a
aaab
aaabaab
aaabaabaab
...etc...

Problem 2

Define a regular expression that generates the language over the alphabet {a, b} of all strings containing at most two occurrences of a.

For example, the following strings are members of the language:

ε
a
ba
aba
bbaa
aba

The following strings are not members of the language:

aaa
baabaa
baaaa

Problem 3

Define a regular expression that generates the language over the alphabet {a, b} of all strings containing an odd number of b's.

For example, the following strings are members of the language:

b
ab
aba
bbabaa

The following strings are not members of the language:

ε
abb
bababb

Problem 4

Define a regular expression that generates the language over the alphabet {a, b, c} of all strings not containing the substring ba.

For example, the following strings are members of the language:

ε
a
ab
bb
bc
cbc
abbb

The following strings are not members of the language:

ba
baba
aba
ccaabac

Problem 5

Define a regular expression that generates the language over the alphabet {a, b} of all strings in which the first occurrence of the symbol a (if it occurs in the string at all) is followed by at least one additional a.

For example, the following strings are members of the language:

ε
b
bb
aa
baaba
aaabaa

The following strings are not members of the language:

a
bba
babaa

Submitting

Submit your answers as a plain text file to Marmoset as assign1:

https://cs.ycp.edu/marmoset/

Do not submit a Word or OpenOffice document.

IMPORTANT: after uploading, you should download a copy of your submission and double-check it to make sure that it contains the correct file(s). You are responsible for making sure your submission is correct. You may receive a grade of 0 for an incorrectly submitted assignment.