Code Monkey home page Code Monkey logo

sipser-computation-3rd-solutions's People

Contributors

gaurangsaini avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sipser-computation-3rd-solutions's Issues

Chapter 1 - Question 54 Errors

Question 1.54

  1. (Step 1 of 4) It is stated that the Language F is the union of three disjoint languages F0, F1, F2
    but the string aabbbccc is in F but in neither of F0,F1 or F2

  2. (Step 2 of 4) To prove that the string a b^p c^p can't be pumped, you have to check another case where u is an empty string and v = a and z = b^p c^p

Chapter 1 Exercise 1.5C

Hello,
I think yellow ones are supposed to be the accept states,
1
And the complement of that is should be like this.
2

Chapter 1 Question 25 typo

In defining computations for finite state transducers the transition function is currently defined with the formula \delta(q_{i+1},w_{i+1})=(q_{i+1},x_{i+1}), this formula should be \delta(q_{i},w_{i+1})=(q_{i+1},x_{i+1}) because the transition function of an FST needs to tell you at a state q_i, on an input w_{i+1} where to transition to for the next state (which would be q_{i+1}) and what symbol to output (which would be x_{i+1}). (Sorry for the awkward pseudo-latex notation here!)

5.9 simpler solution

Consider the machine that accepts everything. Clearly this machine is in the language T.

Now we mapping reduce from HALT to L using that machine. We need to prove that
$\forall \omega \in HALT \iff f(\omega) \in T$
Let's define

$HALT$ to be

$$ HALT = { \langle x, y \rangle \in \Sigma^{*} \times \Sigma^{*}: x = code(M),M \text{ halts on } x} $$

Now we set $f$ as follows:

if $x \neq code(\mathcal{M}) \forall \mathcal{M}$ then we return $x$, which clearly is not in $T$
Else we return the machine $N$ as defined:

  1. With input $z$ ignore the input.
  2. Simulate $x$ on input $y$.
  3. If $x$ halts then accept the input.
  4. Else continue to loop with $x$.

We see that $\langle x, y \rangle \in HALT \iff N \in T$

Now, if we can decide the language $T$ we would able to decide $HALT$, which is absurd.

Chapter 1 Question 46 error

At "Assume x=0^(p-k),y=0^k", this is not a reasonable assumption to make. The pumping lemma tells you |xy|<=p, but you do not know necessarily that |xy|=p like in the assumption shown above.

Notice also at the line claiming xz=0^(p-k)10^p is not an element of L, we cannot actually conclude xz is not an element of L by this logic. Pick w=0, and pick t to be all but the first and last digit of xz (which must contain at least the digit 1), it follows xz=wtw so xz is still an element of L. This can be done any time p>k.

Solution 6.15 doesn't even make sense

Where was this solution sourced from?

It mixes Turing-reducibility with mapping-reducibility, fails to form a valid contradiction in the end, and makes logic mistakes (e.g. choosing a fixed A when the problem asks for every A)

ch(0) question 13

what if you have no node of only one edge incident on it? the proof is hence not inclusive of all possibilities and has no ability to decide whether all graphs with 2 nodes or more must have at least 2 nodes that are of equal degree.

Chapter 2 Question 22

I think the last rule should include ε, to make T -> 0|1|ε. This is because the original grammar does not generate "01#10" nor "10#01" which is described by the language. Adding the ε to T will allow for the grammer to generate these two strings.

Wrong proof in 3.18 and thus 3.19 and 3.17

The statement requires us to show that a language is decidable if and only if an enumerator enumerates it in the standard string order, but in the proof there is lexicographic order.

The standard string order means first to compare the length of the two strings and then compare character by character, but lexicographic string order means only compare the two strings character by character.

And there is a hack: a*b is a regular language and it is Turing decidable, but it cannot be enumerated by lexicographic order (and can be enumerated by the standard string order).

Proof of 3.19 and 3.17 uses the statement of 3.18, so it is wrong, too.

Wrong proof 5.4

I don't think that the function you builded in the solution is computable. (can't decide wheter x is in A or not)

Chapter 0 - Exercise 1 (f)

I think that there is no integer n such that n = n +1
By this, I think that Espsylon should be added as a comment to the actual solution.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.