{"id":259203,"date":"2026-07-13T16:49:44","date_gmt":"2026-07-13T13:49:44","guid":{"rendered":"https:\/\/1kitap1.com\/en\/elements-of-computation-theory-arindama-singh\/"},"modified":"2026-07-13T16:49:44","modified_gmt":"2026-07-13T13:49:44","slug":"elements-of-computation-theory-arindama-singh","status":"publish","type":"post","link":"https:\/\/1kitap1.com\/en\/elements-of-computation-theory-arindama-singh\/","title":{"rendered":"Elements Of Computation Theory &#8211; Arindama Singh"},"content":{"rendered":"<figure style=\"text-align:center;margin:0 auto 1.5em;\"><img decoding=\"async\" src=\"https:\/\/1kitap1.com\/en\/wp-content\/uploads\/2026\/07\/811d3d5b08e69a9e.jpg\" alt=\" - Unknown book cover\" style=\"max-width:300px;width:100%;height:auto;box-shadow:0 4px 12px rgba(0,0,0,.25);border-radius:4px;\"\/><\/figure>\n<p>Let L = L(G), where G = (N, \u03a3, R, S) be a context-free grammar. De\ufb01ne another context-free grammar G\u2217= (N, \u03a3, R\u2217, S) with R\u2217= R \u222a{S \u0017\u2192\u03b5, S \u0017\u2192SS}. Is it clear why we are doing this? In G\u2217you can now derive \u03b5. Also you can derive from the \ufb01rst S in SS any string that can be derived in G and from the second S another such string so that their concatenation can be derived in S.<\/p>\n<p>Inductively, that must give you L\u2217= \u222an\u2208NLn. Let us try to prove that G\u2217indeed generates L\u2217. Trivially, L0 = {\u03b5} \u2286L(G\u2217) due to the production S \u0017\u2192\u03b5. Suppose that Lm \u2286L(G\u2217) for 0 \u2264m \u2264k. Let w \u2208Lk+1. Then w = uv, where u \u2208Lk and v \u2208L. That means, we have derivations S \u21d2G\u2217u and S \u21d2G v. However, all the productions in G are also in G\u2217.<\/p>\n<p>Thus, S \u21d2G\u2217v. A derivation of w in G\u2217is S \u21d2SS \u21d2uS \u21d2uv = w. By induction, it follows that Lk \u2286L(G\u2217) for every k \u2208N. Thus, L\u2217= \u222ak\u2208NLk \u2286 L(G\u2217). Conversely, whenever a nonempty string is derived in G\u2217, it has to be a con- catenation of strings derived in G. As L\u2217contains all possible concatenations of strings of L, we have L(G\u2217) \u2286L\u2217.<\/p>\n<p>This completes the proof that L(G\u2217) = L\u2217. For the other two operations, let G1 = (N1, \u03a31, R1, S1), G2 = (N2, \u03a32, R2, S2), where N1 \u2229N2 \u0002 \u2205, L(G1) = L1, and L(G2) = L2. Let S be a new symbol not in N1 \u222aN2. Write N3 = N1 \u222aN2 \u222a{S} and \u03a33 = \u03a31 \u222a\u03a32. Construct Gc = (N3, \u03a33, Rc, S), where Rc = R1 \u222aR2 \u222a{S \u0017\u2192S1S2}.<\/p>\n<p>G\u222a= (N3, \u03a33, R\u222a, S), where R\u222a= R1 \u222aR2 \u222a{S \u0017\u2192S1, S \u0017\u2192S2}. You can now verify that L(Gc) = L1L2 and L(G\u222a) = L1 \u222aL2. \u2293\u2294 Exercise 6.10. Show that L(G\u222a) = L1 \u222aL2 and L(Gc) = L1L2 to complete the proof of Theorem 6.3. Theorem 6.4. Intersection of two context-free languages need not be context-free and complement of a context-free language need not be context-free.<\/p>\n<p>Proof. Let L1 = {aibic j : i, j \u2208N} and L2 = {aib jc j : i, j \u2208N}. These languages are context-free as the context-free grammar with productions S \u0017\u2192AB, A \u0017\u2192\u03b5 | aAb, B \u0017\u2192\u03b5 | cB generates L1 and the context-free grammar that has productions S \u0017\u2192AB, A \u0017\u2192\u03b5 | aA, B \u0017\u2192\u03b5 | bBc generates L2. But the language L1 \u2229L2 = {ambmcm : m \u2208N} is not context-free as you have seen in Example 6.8.<\/p>\n<p>Therefore, intersection of context-free languages need not be context-free. Structure of CFLs Suppose that complement of any context-free language is context-free. Then L1, L2 are context-free.<\/p>\n<blockquote>\n<p>Springer Dordrecht Heidelberg London New York British Library Cataloguing in Publication Data A catalogue record for this book is available from the British Library Library of Congress Control Number: applied for c\u20ddSpringer-Verlag London Limited 2009 Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted under the Copyright, Designs and Patents Act of 1988, this publication may only be repro- duced, stored or transmitted, in any form or by any means, with the prior permission in writing of the publishers, or in the case of reprographic reproduction in accordance with the terms of licences issued by the Copyright Licensing Agency.<\/p>\n<p>Enquiries concerning reproduction outside those terms should be sent to the publishers. The use of registered names, trademarks, etc. in this publication does not imply, even in the absence of a speci\ufb01c statement, that such names are exempt from the relevant laws and regulations and therefore free for general use. The publisher makes no representation, express or implied, with regard to the accuracy of the information contained in this book and cannot accept any legal responsibility or liability for any errors or omissions that may be made.<\/p>\n<p>Cover design: SPi Publisher Services Printed on acid-free paper Springer is part of Springer Science+Business Media (www.springer.com) Preface The foundation of computer science is built upon the following questions: What is an algorithm? What can be computed and what cannot be computed? What does it mean for a function to be computable? How does computational power depend upon programming constructs?<\/p>\n<p>Which algorithms can be considered feasible? For more than 70 years, computer scientists are searching for answers to such ques- tions. Their ingenious techniques used in answering these questions form the theory of computation. Theory of computation deals with the most fundamental ideas of computer sci- ence in an abstract but easily understood form. The notions and techniques employed are widely spread across various topics and are found in almost every branch of com- puter science. It has thus become more than a necessity to revisit the foundation, learn the techniques, and apply them with con\ufb01dence.<\/p>\n<p>Overview and Goals This book is about this solid, beautiful, and pervasive foundation of computer sci- ence. It introduces the fundamental notions, models, techniques, and results that form the basic paradigms of computing. It gives an introduction to the concepts and mathematics that computer scientists of our day use to model, to argue about, and to predict the behavior of algorithms and computation.<\/p>\n<\/blockquote>\n<p><em>This is a short excerpt from the opening of &ldquo;&rdquo; by Unknown, quoted for review and introduction purposes. All rights belong to the copyright holders.<\/em><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/1kitap1.com\/en\/elements-of-computation-theory-arindama-singh\/#Book_Information\" >Book Information<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/1kitap1.com\/en\/elements-of-computation-theory-arindama-singh\/#Reading_Word_Statistics\" >Reading &amp; Word Statistics<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/1kitap1.com\/en\/elements-of-computation-theory-arindama-singh\/#Most_Frequent_Words\" >Most Frequent Words<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/1kitap1.com\/en\/elements-of-computation-theory-arindama-singh\/#PDF_Download\" >PDF Download<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Book_Information\"><\/span>Book Information<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Unique ID:<\/strong> 811d3d5b08e69a9e<\/li>\n<li><strong>File Extension:<\/strong> .pdf<\/li>\n<li><strong>File Size:<\/strong> 3,511,652 bytes (3.349 MB)<\/li>\n<li><strong>Title:<\/strong> &#8211;<\/li>\n<li><strong>Author:<\/strong> Unknown<\/li>\n<li><strong>ISBN:<\/strong> 9781848824966, 9781848824973<\/li>\n<li><strong>Pages:<\/strong> 430<\/li>\n<li><strong>Language:<\/strong> English (en)<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Reading_Word_Statistics\"><\/span>Reading &amp; Word Statistics<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Estimated Reading Time:<\/strong> 1032.06 minutes<\/li>\n<li><strong>Total Words:<\/strong> 206,412<\/li>\n<li><strong>Total Characters:<\/strong> 1,042,504<\/li>\n<li><strong>Average Words per Page:<\/strong> 480.03<\/li>\n<li><strong>Average Characters per Page:<\/strong> 2424.43<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Most_Frequent_Words\"><\/span>Most Frequent Words<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>string (942), language (925), state (893), machine (720), one (682), regular (637), let (603), set (584), input (564), show (553), languages (552), example (489), problem (469), given (434), symbol (433), states (427), number (410), also (404), time (395), \ufb01rst (362), following (361), function (359), dfa (350), two (339), problems (330), tape (322), strings (312), turing (305), see (297), computation (289), theorem (283), productions (283), whether (282), grammar (280), accepts (279), transition (269), use (262), construct (259), thus (257), algorithm (253), form (252), right (247), fig (245), nfa (243), iff (243), machines (240), proof (240), symbols (238), enumerable (237), initial (237), context-free (234), called (233), cfg (231), left (231), length (228), say (219), now (218), write (217), relation (210), suppose (208), alphabet (208), \ufb01nite (204), computably (204), prove (201), accepting (198), accepted (197), \ufb01nal (195), derivation (189), production (189), stack (182), new (179), polynomial (173), decidable (173), using (171), step (170), another (168), solution (168), case (167), numbers (167), con\ufb01guration (166), give (165), take (164), accept (160), pda (158), read (156), next (154), de\ufb01ne (154), least (153), square (152), transitions (152), lemma (150), second (149), de\ufb01ned (148), space (147), binary (140), tree (139), used (137), expression (133), cnf (132), complexity (130).<\/p>\n<h2><span class=\"ez-toc-section\" id=\"PDF_Download\"><\/span>PDF Download<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align:center;\"><a href=\"https:\/\/1kitap1.com\/en\/wp-content\/uploads\/2026\/07\/elements-of-computation-theory-arindama-singh.pdf\" download rel=\"nofollow\" style=\"display:inline-block;background:#2271b1;color:#ffffff;padding:14px 36px;border-radius:6px;text-decoration:none;font-weight:bold;font-size:1.05em;\">&#11015;&#65039; PDF Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Let L = L(G), where G = (N, \u03a3, R, S) be a context-free grammar. De\ufb01ne another context-free grammar G\u2217= (N, \u03a3, R\u2217, S) with R\u2217= R \u222a{S \u0017\u2192\u03b5, S \u0017\u2192SS}. Is it clear why we are doing this? In G\u2217you can now derive \u03b5. Also you can derive from the \ufb01rst S in SS [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":259201,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-259203","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-english"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/1kitap1.com\/en\/wp-json\/wp\/v2\/posts\/259203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/1kitap1.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/1kitap1.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/1kitap1.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/1kitap1.com\/en\/wp-json\/wp\/v2\/comments?post=259203"}],"version-history":[{"count":0,"href":"https:\/\/1kitap1.com\/en\/wp-json\/wp\/v2\/posts\/259203\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/1kitap1.com\/en\/wp-json\/wp\/v2\/media\/259201"}],"wp:attachment":[{"href":"https:\/\/1kitap1.com\/en\/wp-json\/wp\/v2\/media?parent=259203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/1kitap1.com\/en\/wp-json\/wp\/v2\/categories?post=259203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/1kitap1.com\/en\/wp-json\/wp\/v2\/tags?post=259203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}