Complete a haskell function derivative

Assignment Help Theory of Computation
Reference no: EM132130024

Models of Computation Assignment -

Purpose - To improve and consolidate your understanding of regular and context-free languages, finite-state and pushdown automata. To develop skills in analysis and formal reasoning about complex concepts, and to practise writing down formal arguments.

Challenge 1 - This challenge is to design eight finite relations and submit them via Grok. Let D = {1, 2, 3}. We can think of a binary relation on D as a subset of D × D. For example, the identity relation is {(1, 1),(2, 2),(3, 3)}. There are 9 elements in D×D, so there are 29 = 512 different binary relations on D.

Construct eight of these, r0, . . . , r7, satisfying the criteria given in the table below. Each relation should be presented as a Haskell list of pairs, that is, an expression of type [(Int, Int)]. For full marks, each relation has to be as small as it can be.

Reflexive

Symmetric

Transitive

r0

no

no

no

r1

no

no

yes

r2

no

yes

no

r3

no

yes

Yes

r4

yes

no

no

r5

yes

no

Yes

r6

yes

yes

no

r7

yes

yes

Yes

Challenge 2 - This challenge is to design three DFAs and a regular expression and submit them via Grok. An expression such as (01 ∪ 1)* ∩ (0*11)* is not a regular expression, since ∩ is not a regular operation. Nevertheless, the expression denotes a regular language.

a. Give a 3-state DFA Da for (01 ∪ 1)*.

b. Give a 4-state DFA Db for (0∗11)*.

c. In tute exercise 61 we constructed "product" automata for the intersection of languages. Now find a minimal DFA Dc for (01 ∪ 1)* ∩ (0∗11)*. You can build the DFA that is the "product" of Da and Db, but be aware that the result may not be minimal, so you may have to apply minimisation.

d. Use the NFA-to-regular-expression translation shown in Lecture 12, to turn Dc into a regular expression r for (01 ∪ 1)* ∩ (0*11)*.

Challenge 3 - This challenge is to complete, on Grok, some Haskell functions that will allow us to test for membership of languages given as regular expressions. You have probably used regular expression features in your favourite programming language, and this challenge will help you understand how such features are implemented.

Let us call a language A volatile iff ε ∈ A. For example, L(10 ∪ (11)*) is volatile, but L((0 ∪ 1)(11)*) is not. Another useful concept is that of a derivative of a language with respect to a (finite) string. The derivative of A with respect to s,

d(A, s) = {w | sw ∈ A}

For example, if A = {0, 02, 102, 111, 1102} then d(A, 11) = {1, 02}. For another example, if B is the language given by the regular expression (00)* then d(B, 0) = L((00)*0) = L(0(00)*).

We can extend the definition of "volatile" to regular expressions r: We say that r is volatile iff ε ∈ L(r). Similarly we extend d so that the function takes, and produces, regular expressions. Let us first handle the case where the string s is of length 1, that is, s is a single symbol x. We define

d1(∈, x) = ∅

d1(∅, x) = ∅

d1(y, x) = ∅ if y is a symbol and y ≠ x

d1(x, x) = ∈

d1(r1 ∪ r2, x) = d1(r1, x) ∪ d1(r2, x)

d1(r1 r2, x) = d1(r1, x) r2 ∪ d1(r2, x) if r1 is volatile

d1(r1 r2, x) = d1(r1, x) r2 if r1 is not volatile

d1(r*, x) = d1(r, x) r*

Now we can define the general case, that is, the derivative of r with respect to an arbitrary string s. We define d(r, ∈) = r and, for k ≥ 1: d(r, x1x2 · · · xk) = d1((. . . d1(d1(r, x1), x2), . . .), xk)

You should think about why the above recursive definitions are correct, before you complete their Haskell implementations on Grok. On Grok you will find a Haskell type RegExp for regular expressions.

a. Write a Haskell function volatile :: RegExp -> Bool that determines whether a regular expression is volatile.

b. Complete a Haskell function derivative :: RegExp -> String -> RegExp so that you can use Haskell to calculate derivatives of regular expressions.

c. Write a function contains :: RegExp -> String -> Bool which takes a regular expression r and a string w and decides whether w ∈ L(r). This function must use the functions volatile and derivative.

Challenge 4 - Let Σ be a finite non-empty alphabet and let x ∈ Σ be a symbol. For every w ∈ Σ* and x ∈ Σ, let omit(x, w) be the string w with all occurrences of x removed. For example, if Σ = {a, b, c} and w = baabca then omit(a, w) = bbc. Similarly, omit(b, bb) = ∈.

We now "lift" this function to languages: To "drop" a symbol from a language L will mean to "omit" it from every string in L. That is, for L ⊆ Σ*, define

drop(x, L) = {omit(x, w) | w ∈ L}.

For example, if L = {aa, baabca, bbaac, bbc} then drop(a, L) = {∈, bbc} and drop(b, L) = {aa, aac, aaca, c}.

a. Show that if R is a regular language then drop(a, R) is a regular language.

b. Assuming {a, b} ⊆ Σ, provide a language L such that drop(a, L) is context-free and non-regular, while drop(b, L) is regular.

Challenge 5 - Every regular language can be recognised by a push-down automaton which has only three states, qI , qR, and qA. Show in detail how to systematically translate an arbitrary DFA to a PDA with only three states. Try to answer this question precisely, that is, make use of the formal definitions of DFAs and PDAs. So, given an arbitrary DFA (Q, Σ, δ, q0, F), define precisely each component of the corresponding PDA (Q′, Σ′, Γ, δ′, q′0, F′).

Hints: (a) A PDA does not have to have an empty stack in order to accept a string; (b) its stack alphabet Γ can be whatever (finite) set of symbols you choose; and (c) we named the states qI, qR, and qA for a reason.

Challenge 6 - Let us fix the alphabet Σ = {0, 1}. Define a substring of w ∈ Σ* to be any string x ∈ Σ* such that w = uxv for some u, v ∈ Σ*. Now consider the language

A = {w ∈ Σ*| 001 is not a substring of w}

For example, ∈, 01, 1111, 10101, and 0111010101 are in A, but 10001 and 11001011 are not.

Consider the context-free grammar G = ({S}, Σ, R, S), where the rules R are: S → ∈

| S 0

| 1 S

| 0 1 S

Show that L(G) = A.

Hint: Show L(G) ⊆ A using structural induction and show A ⊆ L(G) by induction on the length of strings in A.

Attachment:- Assignment File.rar

Verified Expert

We had some hands on experience with relations on a finite set. We have also improved our understanding about context free and regular languages by looking at some illustrating examples. We learnt some techniques along the way like using product automata to write down regular expression for the intersection of two regular expressions, dropping a particular symbol to produce new context-free (regular) language from existing context-free(regular) language. We also saw how we can realize any regular language using a push down automata with just 3 states.

Reference no: EM132130024

Questions Cloud

The context of the healthcare supply chain : Describe the concepts, theories and models of leadership presented in this chapter in the context of the healthcare supply chain.
Relationship between two goods : The relationship between two goods must be found beforehand. what kind of relationship are possibly there between two goods?
Examine the type of training or education that is required : Examine the type of training or education that is required. Discuss whether a license or certification is required to practice this therapy.
Receiving direction on work-related task : Describe a time when you experienced a communication breakdown either in giving or receiving direction on a work-related task.
Complete a haskell function derivative : Improve and consolidate your understanding of regular and context-free languages, finite-state and pushdown automata. To develop skills in analysis and formal
Predict the cross-price elasticity : Suppose you could buy shoes one at a time, rather than in pairs. What do you predict the cross-price elasticity for left shoes and right shoes would be?
What is the cross-price elasticity of demand : If the price of good A falls from $4 to $3 and the quantity demanded of good B rises from 2 to 4, what is the cross-price elasticity of demand?
Compare the main causes leading to the economic collapses : Review working paper "The Iceland and Ireland banking crises: Lessons for the future". Compare the main causes leading to the economic collapses
Give an example of a household consumption good or service : Give an example of a household consumption good or service that the law of diminishing marginal utility does not affect?

Reviews

inf2130024

11/24/2018 1:07:46 AM

Is that possible for your tutor to do the challenge 4,5,6 first, so I can get the answer to challenge 4,5,6 tomorrow(in 24 hours)? Thank you OK! I confirm the extension Thank you very much for your work Would you mind sending me a pdf format answer just including challenge 4 5 6? And remove the title and the headers. Thank you That's great! Thank you Excellent 1 till now as per the expectation I got very Good marks so please provide this kind of solution. Awesome Job. Submitted by the deadline and received great scores too. Surely recommend to all students

Write a Review

Theory of Computation Questions & Answers

  Finite-state machine design

Create a finite-state machine design to turn your FPGA development board into a simple programmable music box.

  Redundant sequence identi cation

Redundant sequence identi cation

  Compute a shortest superstring

Dynamic programming algorithm to compute a shortest superstring.

  Propositional and predicate logic

Write down a structural induction principle for the PlayTree free type

  Design a syntactic analyzer

Design a syntactic analyzer for the language specified by the grammar

  Design unambiguous grammar to parse expressions

Write a program would read two numbers and then print all numbers between the first and the second, inclusive. Design unambiguous grammar to parse expressions

  Consider a logic function with three outputs

Consider a logic function with three outputs,  A ,  B , and  C , and three inputs,  D ,  E , and  F . The function is defined as follows:  A  is true if at least one input is true,  B  is true

  Considering a single programmed operating system

Considering a single programmed operating system, what is the minimal total time required to complete executions of the two processes? You should explain your answer with a diagram.

  How to construct an nfa

Give a construction that assumes you are given a DFA for L and show how to construct an NFA (with or without ε-moves) to recognize sort(L).

  Equivalence classes to construct minimal dfa for language

How many equivalence classes does this relation have and what are they? Use these equivalence classes to construct the minimal DFA for the language.

  Impact of moore-s law on data center costs

Discuss the impact of Moore's law on data center costs on such things as servers and communications equipment. List at least 3 steps or recommendations your data center can take to offset some or all of the effect of Moore's law.

  Problem encountered in statements in predicate logic

How the problem would be encountered in attempting to represent the following statements in Predicate logic. it should be possible to: John only likes to see French movies.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd