<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet href="/static/feed.xsl" type="text/xsl" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:quartz="https://quartz.jzhao.xyz/ns">
  <script xmlns="http://www.w3.org/1999/xhtml" src="/static/scripts/xslt-polyfill-214fd525.js"></script>
  <title>/wiki / theory-of-computation</title>
  <subtitle>Recent notes in /wiki / theory-of-computation on Animesh Mishra</subtitle>
  <link href="https://animishraa05.github.io/wiki/theory-of-computation" />
  <link rel="alternate" type="text/html" href="https://animishraa05.github.io/wiki/theory-of-computation" />
  <category term="wiki/theory-of-computation" />
  <id>https://animishraa05.github.io/wiki/theory-of-computation</id>
  <updated>2026-09-02T05:29:25.232Z</updated>
  <contributor>
    <name>Animesh Mishra</name>
    <email>animesh.mishra818@gmail.com</email>
  </contributor>
  <logo>https://animishraa05.github.io/icon.png</logo>
  <icon>https://animishraa05.github.io/icon.png</icon>
  <generator>Quartz v4.6.0 -- quartz.jzhao.xyz</generator>
  <rights type="html">&amp;amp;copy; 2026 Animesh Mishra</rights>
  
  <entry>
    <title>theory-of-computation-wikipedia</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/theory-of-computation-wikipedia" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/theory-of-computation-wikipedia.md" />
    <summary>Source Overview Wikipedia article on Theory of Computation, covering the branch of theoretical computer science that studies what problems can be solved using algorithms and how efficiently.</summary>
    <published>2026-09-02T05:29:25.232Z</published>
    <updated>2026-09-02T05:29:25.232Z</updated>
    <publishedTime>Sep 02, 2026</publishedTime>
    <updatedTime>Sep 02, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="wikipedia" label="wikipedia" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;source-overview&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Source Overview&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#source-overview&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Wikipedia article on Theory of Computation, covering the branch of theoretical computer science that studies what problems can be solved using algorithms and how efficiently.&lt;/p&gt;
&lt;h2 id=&quot;concepts-extracted-13-total&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Concepts Extracted (13 total)&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#concepts-extracted-13-total&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Theory of Computation&lt;/strong&gt; — The overarching field studying algorithmic solvability and efficiency&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model of Computation&lt;/strong&gt; — Mathematical abstractions of computers for formal analysis&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Turing Machine&lt;/strong&gt; — The most powerful reasonable model of computation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automata Theory&lt;/strong&gt; — Study of abstract machines and what problems they can solve&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Computability Theory&lt;/strong&gt; — Determines which problems are solvable at all&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Halting Problem&lt;/strong&gt; — The undecidable problem of whether a program halts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rice’s Theorem&lt;/strong&gt; — All non-trivial properties of programs are undecidable&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Computational Complexity Theory&lt;/strong&gt; — Studies how efficiently problems can be solved&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Formal Language Theory&lt;/strong&gt; — Mathematical description and classification of languages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chomsky Hierarchy&lt;/strong&gt; — Classification of formal languages by computational power&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lambda Calculus&lt;/strong&gt; — Function-based model of computation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Church-Turing Thesis&lt;/strong&gt; — Thesis that Turing machines capture all computable functions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Big O Notation&lt;/strong&gt; — Asymptotic notation for comparing algorithm efficiency&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;P vs NP Problem&lt;/strong&gt; — Open question about verification vs solution efficiency&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alan Turing&lt;/strong&gt; — Pioneer who founded computability theory&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;key-takeaways&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Takeaways&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-takeaways&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;The field has three major branches: automata theory, computability theory, and computational complexity theory&lt;/li&gt;
&lt;li&gt;The fundamental question is: “What are the fundamental capabilities and limitations of computers?”&lt;/li&gt;
&lt;li&gt;Turing machines are the standard model due to their simplicity and power&lt;/li&gt;
&lt;li&gt;Many important problems are provably undecidable (halting problem, Rice’s theorem)&lt;/li&gt;
&lt;li&gt;P vs NP is the most important open problem in computer science&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections-to-existing-concepts&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections to Existing Concepts&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections-to-existing-concepts&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The new concepts integrate with the existing wiki by adding theoretical foundations that underpin algorithms and computational models mentioned in the existing knowledge base.&lt;/p&gt;
&lt;h2 id=&quot;contradictions&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Contradictions&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#contradictions&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;None identified.&lt;/p&gt;
&lt;h2 id=&quot;synthesis-opportunities&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Synthesis Opportunities&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#synthesis-opportunities&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Could create synthesis comparing computability theory vs computational complexity theory, or explaining how the Chomsky hierarchy relates to automata models.&lt;/p&gt;</content>
  </entry><entry>
    <title>pushdown-automaton</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/pushdown-automaton" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/pushdown-automaton.md" />
    <summary>The Problem Auto-created stub for broken link [[pushdown-automaton]] — needs human content.</summary>
    <published>2026-09-02T00:00:00.000Z</published>
    <updated>2026-09-02T00:00:00.000Z</updated>
    <publishedTime>Sep 02, 2026</publishedTime>
    <updatedTime>Sep 02, 2026</updatedTime>
    <category term="dev" label="dev" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Auto-created stub for broken link &lt;code class=&quot;notranslate&quot;&gt;[[pushdown-automaton]]&lt;/code&gt; — needs human content.&lt;/p&gt;
&lt;h2 id=&quot;formal-definition&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Formal Definition&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#formal-definition&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Per Wikipedia: “To be written.”&lt;/p&gt;
&lt;h2 id=&quot;explanation&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Explanation&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#explanation&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Stub — fill with plain language explanation.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li&gt;To be written.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;visual-explanation&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Visual Explanation&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#visual-explanation&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;figure data-rehype-pretty-code-figure=&quot;&quot;&gt;&lt;pre class=&quot;notranslate&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e&quot; tabindex=&quot;0&quot; data-language=&quot;dot&quot; data-theme=&quot;github-light github-dark&quot;&gt;&lt;span class=&quot;clipboard-button&quot; type=&quot;button&quot; aria-label=&quot;copy source&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 -8 24 24&quot; fill=&quot;currentColor&quot; stroke=&quot;none&quot; stroke-width=&quot;0&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; class=&quot;copy-icon&quot;&gt;&lt;use href=&quot;#github-copy&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 -8 24 24&quot; fill=&quot;currentColor&quot; stroke=&quot;none&quot; stroke-width=&quot;0&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; class=&quot;check-icon&quot;&gt;&lt;use href=&quot;#github-check&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code data-language=&quot;dot&quot; data-theme=&quot;github-light github-dark&quot; style=&quot;display: grid;&quot; class=&quot;notranslate&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;digraph pushdown-automaton {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;  rankdir=LR&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;  node [shape=box style=filled fillcolor=&quot;#f0f4ff&quot; fontname=&quot;Helvetica&quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;  A [label=&quot;Stub: pushdown-automaton&quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;  B [label=&quot;To be written&quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;  A -&gt; B [label=&quot;needs content&quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;h2 id=&quot;semantic-network&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Semantic Network&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#semantic-network&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;figure data-rehype-pretty-code-figure=&quot;&quot;&gt;&lt;pre class=&quot;notranslate&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e&quot; tabindex=&quot;0&quot; data-language=&quot;dot&quot; data-theme=&quot;github-light github-dark&quot;&gt;&lt;span class=&quot;clipboard-button&quot; type=&quot;button&quot; aria-label=&quot;copy source&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 -8 24 24&quot; fill=&quot;currentColor&quot; stroke=&quot;none&quot; stroke-width=&quot;0&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; class=&quot;copy-icon&quot;&gt;&lt;use href=&quot;#github-copy&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 -8 24 24&quot; fill=&quot;currentColor&quot; stroke=&quot;none&quot; stroke-width=&quot;0&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; class=&quot;check-icon&quot;&gt;&lt;use href=&quot;#github-check&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code data-language=&quot;dot&quot; data-theme=&quot;github-light github-dark&quot; style=&quot;display: grid;&quot; class=&quot;notranslate&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;graph semantic_pushdown-automaton {&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;  layout=neato&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;  node [shape=ellipse fontname=&quot;Helvetica&quot; fontsize=11 style=filled]&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;  THIS [label=&quot;pushdown automaton&quot; fillcolor=&quot;#ffd700&quot; fontsize=13 style=&quot;filled,bold&quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;  REL1 [label=&quot;Related&quot; fillcolor=&quot;#f0f0f0&quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;  THIS -- REL1 [label=&quot;related&quot;]&lt;/span&gt;&lt;/span&gt;
&lt;span data-line=&quot;&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;To be written.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;real-world-example&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Real-World Example&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#real-world-example&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;figure data-rehype-pretty-code-figure=&quot;&quot;&gt;&lt;pre class=&quot;notranslate&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot; data-theme=&quot;github-light github-dark&quot;&gt;&lt;span class=&quot;clipboard-button&quot; type=&quot;button&quot; aria-label=&quot;copy source&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 -8 24 24&quot; fill=&quot;currentColor&quot; stroke=&quot;none&quot; stroke-width=&quot;0&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; class=&quot;copy-icon&quot;&gt;&lt;use href=&quot;#github-copy&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 -8 24 24&quot; fill=&quot;currentColor&quot; stroke=&quot;none&quot; stroke-width=&quot;0&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; class=&quot;check-icon&quot;&gt;&lt;use href=&quot;#github-check&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code data-language=&quot;python&quot; data-theme=&quot;github-light github-dark&quot; style=&quot;display: grid;&quot; class=&quot;notranslate&quot;&gt;&lt;span data-line=&quot;&quot;&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#6A737D&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;TODO&lt;/span&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#6A737D&quot;&gt;: add example&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href=&quot;../../&quot; class=&quot;internal alias&quot; data-slug=&quot;index&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Index&lt;/a&gt; — auto stub, needs proper links&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;To be written.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry><entry>
    <title>Theory Of Computation — Map of Content</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/theory-of-computation-moc" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/theory-of-computation-moc.md" />
    <summary> Map of Content for Theory Of Computation — 19 concepts. Start here to navigate theory-of-computation.</summary>
    <published>2026-09-02T00:00:00.000Z</published>
    <updated>2026-09-02T00:00:00.000Z</updated>
    <publishedTime>Sep 02, 2026</publishedTime>
    <updatedTime>Sep 02, 2026</updatedTime>
    <category term="meta" label="meta" />
<category term="theory-of-computation" label="theory-of-computation" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p dir=&quot;auto&quot;&gt;Map of Content for &lt;strong&gt;Theory Of Computation&lt;/strong&gt; — 19 concepts. Start here to navigate theory-of-computation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;core-concepts&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Concepts&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-concepts&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;a href=&quot;../../alan-turing&quot; class=&quot;internal alias&quot; data-slug=&quot;alan-turing&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Alan Turing&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../algorithm&quot; class=&quot;internal alias&quot; data-slug=&quot;algorithm&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Algorithm&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../automata-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;automata-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Automata Theory&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../big-o-notation&quot; class=&quot;internal alias&quot; data-slug=&quot;big-o-notation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Big O Notation&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../chomsky-hierarchy&quot; class=&quot;internal alias&quot; data-slug=&quot;chomsky-hierarchy&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Chomsky Hierarchy&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../church-turing-thesis&quot; class=&quot;internal alias&quot; data-slug=&quot;church-turing-thesis&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Church-Turing Thesis&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../computational-complexity-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computational-complexity-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computational Complexity Theory&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../finite-automaton&quot; class=&quot;internal alias&quot; data-slug=&quot;finite-automaton&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Finite Automaton&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../formal-language-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;formal-language-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Formal Language Theory&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../halting-problem&quot; class=&quot;internal alias&quot; data-slug=&quot;halting-problem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Halting Problem&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../lambda-calculus&quot; class=&quot;internal alias&quot; data-slug=&quot;lambda-calculus&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Lambda Calculus&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../mathematical-logic&quot; class=&quot;internal alias&quot; data-slug=&quot;mathematical-logic&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Mathematical Logic&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../model-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;model-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Model of Computation&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../p-vs-np-problem&quot; class=&quot;internal alias&quot; data-slug=&quot;p-vs-np-problem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;P vs NP Problem&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../rices-theorem&quot; class=&quot;internal alias&quot; data-slug=&quot;rices-theorem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Rice&#039;s Theorem&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../theory-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;theory-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Theory of Computation&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../theory-of-computation-wikipedia&quot; class=&quot;internal&quot; data-slug=&quot;theory-of-computation-wikipedia&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;theory-of-computation-wikipedia&lt;/a&gt; — concept&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt; — concept&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;mechanisms--how-things-work&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Mechanisms &amp;#x26; How Things Work&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#mechanisms--how-things-work&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;em&gt;Auto-generated — edit to curate. Pages that explain processes/flows.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;comparisons--tradeoffs&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Comparisons &amp;#x26; Tradeoffs&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#comparisons--tradeoffs&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;em&gt;(No synthesis yet — create via ingest or query —save)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;suggested-reading-order&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Suggested Reading Order&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#suggested-reading-order&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li&gt;Browse Core Concepts above — start with most-linked page&lt;/li&gt;
&lt;li&gt;Follow Connections sections for dense graph traversal&lt;/li&gt;
&lt;/ol&gt;</content>
  </entry><entry>
    <title>algorithm</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/algorithm" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/algorithm.md" />
    <summary>The Problem Before formal computation theory, there was no precise definition of what it means to “compute” something.</summary>
    <published>2026-04-29T00:00:00.000Z</published>
    <updated>2026-04-29T00:00:00.000Z</updated>
    <publishedTime>Apr 29, 2026</publishedTime>
    <updatedTime>Apr 29, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="computation" label="computation" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Before formal computation theory, there was no precise definition of what it means to “compute” something. Informal notions of “effective procedure” or “mechanical process” were insufficient for proving fundamental limits.&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;An algorithm is a finite, unambiguous, step-by-step procedure for solving a problem or computing a function. It must terminate after a finite number of steps for all valid inputs.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Algorithms have these key characteristics (from Church-Turing thesis):&lt;/p&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Finiteness&lt;/strong&gt; — algorithm has finite description, terminates for all inputs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Definiteness&lt;/strong&gt; — each step is precisely defined, no ambiguity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Input&lt;/strong&gt; — zero or more inputs from a specified set&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt; — at least one output that is the solution to the problem&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Effectiveness&lt;/strong&gt; — each operation must be basic enough to be done exactly and in finite time&lt;/li&gt;
&lt;/ol&gt;
&lt;p dir=&quot;auto&quot;&gt;Algorithms can be expressed in many forms: pseudocode, programming languages, Turing machines, lambda calculus expressions, or flowcharts.&lt;/p&gt;
&lt;h2 id=&quot;visual-explanation&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Visual Explanation&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#visual-explanation&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;graphviz-container&quot; style=&quot;display: flex; justify-content: center; margin: 1.5rem 0; overflow-x: auto;&quot; dir=&quot;auto&quot;&gt;&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?--&gt;

&lt;!-- Generated by graphviz version 15.1.0 (0)
 --&gt;
&lt;!-- Title: G Pages: 1 --&gt;
&lt;svg width=&quot;695pt&quot; height=&quot;98pt&quot; viewBox=&quot;0.00 0.00 695.00 98.00&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
&lt;g id=&quot;graph0&quot; class=&quot;graph&quot; transform=&quot;scale(1 1) rotate(0) translate(4 94)&quot;&gt;
&lt;title&gt;G&lt;/title&gt;
&lt;polygon fill=&quot;white&quot; stroke=&quot;none&quot; points=&quot;-4,4 -4,-94 690.85,-94 690.85,4 -4,4&quot;&gt;&lt;/polygon&gt;
&lt;!-- Input --&gt;
&lt;g id=&quot;node1&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Input&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M42,-52C42,-52 12,-52 12,-52 6,-52 0,-46 0,-40 0,-40 0,-28 0,-28 0,-22 6,-16 12,-16 12,-16 42,-16 42,-16 48,-16 54,-22 54,-28 54,-28 54,-40 54,-40 54,-46 48,-52 42,-52&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;27&quot; y=&quot;-29.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Input&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Step 1: Check condition --&gt;
&lt;g id=&quot;node2&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Step 1: Check condition&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M229.93,-52C229.93,-52 103,-52 103,-52 97,-52 91,-46 91,-40 91,-40 91,-28 91,-28 91,-22 97,-16 103,-16 103,-16 229.93,-16 229.93,-16 235.93,-16 241.93,-22 241.93,-28 241.93,-28 241.93,-40 241.93,-40 241.93,-46 235.93,-52 229.93,-52&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;166.46&quot; y=&quot;-29.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Step 1: Check condition&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Input&amp;#45;&amp;gt;Step 1: Check condition --&gt;
&lt;g id=&quot;edge1&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Input-&gt;Step 1: Check condition&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M54.18,-34C61.71,-34 70.37,-34 79.45,-34&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;79.19,-37.5 89.19,-34 79.19,-30.5 79.19,-37.5&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;!-- Step 2: Process data --&gt;
&lt;g id=&quot;node3&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Step 2: Process data&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M424.41,-90C424.41,-90 320.04,-90 320.04,-90 314.04,-90 308.04,-84 308.04,-78 308.04,-78 308.04,-66 308.04,-66 308.04,-60 314.04,-54 320.04,-54 320.04,-54 424.41,-54 424.41,-54 430.41,-54 436.41,-60 436.41,-66 436.41,-66 436.41,-78 436.41,-78 436.41,-84 430.41,-90 424.41,-90&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;372.22&quot; y=&quot;-67.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Step 2: Process data&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Step 1: Check condition&amp;#45;&amp;gt;Step 2: Process data --&gt;
&lt;g id=&quot;edge2&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Step 1: Check condition-&gt;Step 2: Process data&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M242.18,-47.93C259.87,-51.23 278.74,-54.75 296.44,-58.05&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;295.62,-61.46 306.09,-59.85 296.9,-54.58 295.62,-61.46&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;!-- Terminate: No match --&gt;
&lt;g id=&quot;node6&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Terminate: No match&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M428.09,-36C428.09,-36 316.36,-36 316.36,-36 310.36,-36 304.36,-30 304.36,-24 304.36,-24 304.36,-12 304.36,-12 304.36,-6 310.36,0 316.36,0 316.36,0 428.09,0 428.09,0 434.09,0 440.09,-6 440.09,-12 440.09,-12 440.09,-24 440.09,-24 440.09,-30 434.09,-36 428.09,-36&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;372.22&quot; y=&quot;-13.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Terminate: No match&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Step 1: Check condition&amp;#45;&amp;gt;Terminate: No match --&gt;
&lt;g id=&quot;edge5&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Step 1: Check condition-&gt;Terminate: No match&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M242.18,-28.13C258.6,-26.84 276.05,-25.47 292.62,-24.17&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;292.73,-27.67 302.43,-23.4 292.18,-20.7 292.73,-27.67&quot;&gt;&lt;/polygon&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;273.14&quot; y=&quot;-30.68&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;false&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Step 3: Transform --&gt;
&lt;g id=&quot;node4&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Step 3: Transform&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M582.96,-90C582.96,-90 489.09,-90 489.09,-90 483.09,-90 477.09,-84 477.09,-78 477.09,-78 477.09,-66 477.09,-66 477.09,-60 483.09,-54 489.09,-54 489.09,-54 582.96,-54 582.96,-54 588.96,-54 594.96,-60 594.96,-66 594.96,-66 594.96,-78 594.96,-78 594.96,-84 588.96,-90 582.96,-90&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;536.02&quot; y=&quot;-67.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Step 3: Transform&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Step 2: Process data&amp;#45;&amp;gt;Step 3: Transform --&gt;
&lt;g id=&quot;edge3&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Step 2: Process data-&gt;Step 3: Transform&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M436.7,-72C446.08,-72 455.79,-72 465.29,-72&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;465.22,-75.5 475.22,-72 465.22,-68.5 465.22,-75.5&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;!-- Output --&gt;
&lt;g id=&quot;node5&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Output&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M674.85,-90C674.85,-90 643.96,-90 643.96,-90 637.96,-90 631.96,-84 631.96,-78 631.96,-78 631.96,-66 631.96,-66 631.96,-60 637.96,-54 643.96,-54 643.96,-54 674.85,-54 674.85,-54 680.85,-54 686.85,-60 686.85,-66 686.85,-66 686.85,-78 686.85,-78 686.85,-84 680.85,-90 674.85,-90&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;659.4&quot; y=&quot;-67.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Output&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Step 3: Transform&amp;#45;&amp;gt;Output --&gt;
&lt;g id=&quot;edge4&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Step 3: Transform-&gt;Output&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M595.22,-72C603.81,-72 612.46,-72 620.49,-72&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;620.21,-75.5 630.21,-72 620.21,-68.5 620.21,-75.5&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/svg&gt;
&lt;/div&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Correctness&lt;/strong&gt; — produces right output for all valid inputs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Termination&lt;/strong&gt; — halts after finite steps (unlike infinite loops)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Complexity&lt;/strong&gt; — time and space requirements as function of input size&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Determinism&lt;/strong&gt; — same input always produces same output (for deterministic algorithms)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../mathematical-logic&quot; class=&quot;internal alias&quot; data-slug=&quot;mathematical-logic&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Mathematical Logic&lt;/a&gt; — formal reasoning about procedures&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt; — formal model of algorithmic computation&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt; — what algorithms can/cannot compute&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computational-complexity-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computational-complexity-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computational Complexity Theory&lt;/a&gt; — resources required by algorithms&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../big-o-notation&quot; class=&quot;internal alias&quot; data-slug=&quot;big-o-notation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Big O Notation&lt;/a&gt; — measuring algorithm efficiency&lt;/li&gt;
&lt;li&gt;Contrasts with: &lt;a href=&quot;../../heuristic&quot; class=&quot;internal alias&quot; data-slug=&quot;heuristic&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Heuristic&lt;/a&gt; — rules of thumb vs guaranteed procedures&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Not all procedures are algorithms — must terminate (halting problem shows some procedures don’t)&lt;/li&gt;
&lt;li&gt;Algorithm ≠ program — algorithms are abstract, programs are concrete implementations&lt;/li&gt;
&lt;li&gt;Nondeterministic algorithms allow “guessing” — basis for NP complexity class&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry><entry>
    <title>finite-automaton</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/finite-automaton" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/finite-automaton.md" />
    <summary>The Problem We need a formal mathematical model to describe what patterns a computer can recognize.</summary>
    <published>2026-04-29T00:00:00.000Z</published>
    <updated>2026-04-29T00:00:00.000Z</updated>
    <publishedTime>Apr 29, 2026</publishedTime>
    <updatedTime>Apr 29, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="automata" label="automata" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;We need a formal mathematical model to describe what patterns a computer can recognize. Regular expressions and simple pattern matching need a computational model that’s simpler than Turing machines but still useful.&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;A finite automaton is the simplest computational model — a mathematical abstraction of a machine with a finite number of states that reads input symbols and transitions between states. It recognizes regular languages (Type-3 in Chomsky hierarchy).&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;A finite automaton consists of:&lt;/p&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Finite set of states&lt;/strong&gt; — Q (one is start state, some are accept/final states)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alphabet&lt;/strong&gt; — Σ, the set of input symbols&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transition function&lt;/strong&gt; — δ: Q × Σ → Q (deterministic) or δ: Q × Σ → P(Q) (nondeterministic)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Start state&lt;/strong&gt; — where computation begins&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Accept states&lt;/strong&gt; — successful computation ends here&lt;/li&gt;
&lt;/ol&gt;
&lt;p dir=&quot;auto&quot;&gt;The automaton reads input left-to-right, one symbol at a time, following transitions. If it ends in an accept state, the input is accepted.&lt;/p&gt;
&lt;h2 id=&quot;visual-explanation&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Visual Explanation&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#visual-explanation&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;graphviz-container&quot; style=&quot;display: flex; justify-content: center; margin: 1.5rem 0; overflow-x: auto;&quot; dir=&quot;auto&quot;&gt;&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?--&gt;

&lt;!-- Generated by graphviz version 15.1.0 (0)
 --&gt;
&lt;!-- Title: G Pages: 1 --&gt;
&lt;svg width=&quot;233pt&quot; height=&quot;92pt&quot; viewBox=&quot;0.00 0.00 233.00 92.00&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
&lt;g id=&quot;graph0&quot; class=&quot;graph&quot; transform=&quot;scale(1 1) rotate(0) translate(4 88.19)&quot;&gt;
&lt;title&gt;G&lt;/title&gt;
&lt;polygon fill=&quot;white&quot; stroke=&quot;none&quot; points=&quot;-4,4 -4,-88.19 228.77,-88.19 228.77,4 -4,4&quot;&gt;&lt;/polygon&gt;
&lt;!-- start --&gt;
&lt;g id=&quot;node1&quot; class=&quot;node&quot;&gt;
&lt;title&gt;start&lt;/title&gt;
&lt;/g&gt;
&lt;!-- q0 --&gt;
&lt;g id=&quot;node2&quot; class=&quot;node&quot;&gt;
&lt;title&gt;q0&lt;/title&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;black&quot; cx=&quot;111.69&quot; cy=&quot;-24.69&quot; rx=&quot;20.69&quot; ry=&quot;20.69&quot;&gt;&lt;/ellipse&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;111.69&quot; y=&quot;-20.49&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;q0&lt;/text&gt;
&lt;/g&gt;
&lt;!-- start&amp;#45;&amp;gt;q0 --&gt;
&lt;g id=&quot;edge1&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;start-&gt;q0&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M53.71,-24.69C61.77,-24.69 70.75,-24.69 79.16,-24.69&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;79,-28.19 89,-24.69 79,-21.19 79,-28.19&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;!-- q0&amp;#45;&amp;gt;q0 --&gt;
&lt;g id=&quot;edge2&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;q0-&gt;q0&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M104.56,-44.6C103.57,-54.53 105.95,-63.39 111.69,-63.39 115.01,-63.39 117.21,-60.43 118.28,-56.01&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;121.77,-56.27 118.75,-46.11 114.78,-55.93 121.77,-56.27&quot;&gt;&lt;/polygon&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;111.69&quot; y=&quot;-67.59&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;0&lt;/text&gt;
&lt;/g&gt;
&lt;!-- q1 --&gt;
&lt;g id=&quot;node3&quot; class=&quot;node&quot;&gt;
&lt;title&gt;q1&lt;/title&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;black&quot; cx=&quot;200.08&quot; cy=&quot;-24.69&quot; rx=&quot;20.69&quot; ry=&quot;20.69&quot;&gt;&lt;/ellipse&gt;
&lt;ellipse fill=&quot;none&quot; stroke=&quot;black&quot; cx=&quot;200.08&quot; cy=&quot;-24.69&quot; rx=&quot;24.69&quot; ry=&quot;24.69&quot;&gt;&lt;/ellipse&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;200.08&quot; y=&quot;-20.49&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;q1&lt;/text&gt;
&lt;/g&gt;
&lt;!-- q0&amp;#45;&amp;gt;q1 --&gt;
&lt;g id=&quot;edge3&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;q0-&gt;q1&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M132.73,-24.69C141.93,-24.69 153.12,-24.69 163.66,-24.69&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;163.65,-28.19 173.65,-24.69 163.65,-21.19 163.65,-28.19&quot;&gt;&lt;/polygon&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;153.89&quot; y=&quot;-28.89&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;1&lt;/text&gt;
&lt;/g&gt;
&lt;!-- q1&amp;#45;&amp;gt;q0 --&gt;
&lt;g id=&quot;edge5&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;q1-&gt;q0&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M180.12,-10.18C171.3,-5.12 160.54,-1.28 150.39,-3.89 146.58,-4.87 142.75,-6.33 139.06,-8.02&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;137.74,-4.76 130.53,-12.53 141,-10.95 137.74,-4.76&quot;&gt;&lt;/polygon&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;153.89&quot; y=&quot;-8.09&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;0&lt;/text&gt;
&lt;/g&gt;
&lt;!-- q1&amp;#45;&amp;gt;q1 --&gt;
&lt;g id=&quot;edge4&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;q1-&gt;q1&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M191.55,-47.97C190.74,-58.38 193.58,-67.39 200.08,-67.39 204.04,-67.39 206.64,-64.04 207.89,-59.07&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;211.35,-59.68 208.51,-49.48 204.37,-59.23 211.35,-59.68&quot;&gt;&lt;/polygon&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;200.08&quot; y=&quot;-71.59&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;1&lt;/text&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/svg&gt;
&lt;/div&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Deterministic (DFA)&lt;/strong&gt; — exactly one transition per state-symbol pair&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nondeterministic (NFA)&lt;/strong&gt; — multiple possible transitions; can “guess” correctly&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Equivalence&lt;/strong&gt; — DFAs and NFAs recognize the same languages (regular languages)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Limited memory&lt;/strong&gt; — only current state matters, no auxiliary memory&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pumping lemma&lt;/strong&gt; — can prove languages are NOT regular&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../automata-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;automata-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Automata Theory&lt;/a&gt; — finite automata are the simplest automata&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt; — adds infinite tape for more power&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../chomsky-hierarchy&quot; class=&quot;internal alias&quot; data-slug=&quot;chomsky-hierarchy&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Chomsky Hierarchy&lt;/a&gt; — Type-3 (regular) languages&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../formal-language-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;formal-language-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Formal Language Theory&lt;/a&gt; — regular languages and regex&lt;/li&gt;
&lt;li&gt;Contrasts with: &lt;a href=&quot;../../pushdown-automaton&quot; class=&quot;internal alias&quot; data-slug=&quot;pushdown-automaton&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Pushdown Automaton&lt;/a&gt; — adds stack, more powerful&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Can’t count arbitrarily (e.g., can’t recognize aⁿbⁿ for arbitrary n)&lt;/li&gt;
&lt;li&gt;NFAs can be converted to DFAs (but may require exponentially more states)&lt;/li&gt;
&lt;li&gt;Regular expressions in programming are often MORE powerful than formal regular languages&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry><entry>
    <title>mathematical-logic</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/mathematical-logic" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/mathematical-logic.md" />
    <summary>The Problem Mathematics needed a rigorous foundation to avoid paradoxes (like Russell’s paradox) and to formalize what constitutes a valid proof.</summary>
    <published>2026-04-29T00:00:00.000Z</published>
    <updated>2026-04-29T00:00:00.000Z</updated>
    <publishedTime>Apr 29, 2026</publishedTime>
    <updatedTime>Apr 29, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="logic" label="logic" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Mathematics needed a rigorous foundation to avoid paradoxes (like Russell’s paradox) and to formalize what constitutes a valid proof. Natural language proofs were ambiguous and sometimes incorrect.&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Mathematical logic uses formal languages with precise syntax and semantics to study mathematical reasoning, proof, and computation. It provides the foundation for computability theory and theoretical computer science.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Mathematical logic consists of:&lt;/p&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Propositional logic&lt;/strong&gt; — simple true/false statements connected by AND, OR, NOT&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;First-order logic&lt;/strong&gt; — adds quantifiers (∀, ∃) and predicates over objects&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proof theory&lt;/strong&gt; — formal systems for deriving theorems&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model theory&lt;/strong&gt; — relationships between formal languages and their interpretations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recursion theory&lt;/strong&gt; — what is computable (directly led to computability theory)&lt;/li&gt;
&lt;/ol&gt;
&lt;p dir=&quot;auto&quot;&gt;Church’s lambda calculus and Turing’s machines both emerged from mathematical logic investigations.&lt;/p&gt;
&lt;h2 id=&quot;visual-explanation&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Visual Explanation&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#visual-explanation&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;graphviz-container&quot; style=&quot;display: flex; justify-content: center; margin: 1.5rem 0; overflow-x: auto;&quot; dir=&quot;auto&quot;&gt;&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?--&gt;

&lt;!-- Generated by graphviz version 15.1.0 (0)
 --&gt;
&lt;!-- Title: G Pages: 1 --&gt;
&lt;svg width=&quot;234pt&quot; height=&quot;260pt&quot; viewBox=&quot;0.00 0.00 234.00 260.00&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
&lt;g id=&quot;graph0&quot; class=&quot;graph&quot; transform=&quot;scale(1 1) rotate(0) translate(4 256)&quot;&gt;
&lt;title&gt;G&lt;/title&gt;
&lt;polygon fill=&quot;white&quot; stroke=&quot;none&quot; points=&quot;-4,4 -4,-256 229.66,-256 229.66,4 -4,4&quot;&gt;&lt;/polygon&gt;
&lt;!-- Syntax --&gt;
&lt;g id=&quot;node1&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Syntax&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M73.01,-252C73.01,-252 42.12,-252 42.12,-252 36.12,-252 30.12,-246 30.12,-240 30.12,-240 30.12,-228 30.12,-228 30.12,-222 36.12,-216 42.12,-216 42.12,-216 73.01,-216 73.01,-216 79.01,-216 85.01,-222 85.01,-228 85.01,-228 85.01,-240 85.01,-240 85.01,-246 79.01,-252 73.01,-252&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;57.57&quot; y=&quot;-229.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Syntax&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Formal Language --&gt;
&lt;g id=&quot;node2&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Formal Language&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M103.13,-180C103.13,-180 12,-180 12,-180 6,-180 0,-174 0,-168 0,-168 0,-156 0,-156 0,-150 6,-144 12,-144 12,-144 103.13,-144 103.13,-144 109.13,-144 115.13,-150 115.13,-156 115.13,-156 115.13,-168 115.13,-168 115.13,-174 109.13,-180 103.13,-180&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;57.57&quot; y=&quot;-157.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Formal Language&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Syntax&amp;#45;&amp;gt;Formal Language --&gt;
&lt;g id=&quot;edge1&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Syntax-&gt;Formal Language&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M57.57,-215.7C57.57,-208.41 57.57,-199.73 57.57,-191.54&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;61.07,-191.62 57.57,-181.62 54.07,-191.62 61.07,-191.62&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;!-- Proof System --&gt;
&lt;g id=&quot;node5&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Proof System&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M91.49,-108C91.49,-108 23.65,-108 23.65,-108 17.65,-108 11.65,-102 11.65,-96 11.65,-96 11.65,-84 11.65,-84 11.65,-78 17.65,-72 23.65,-72 23.65,-72 91.49,-72 91.49,-72 97.49,-72 103.49,-78 103.49,-84 103.49,-84 103.49,-96 103.49,-96 103.49,-102 97.49,-108 91.49,-108&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;57.57&quot; y=&quot;-85.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Proof System&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Formal Language&amp;#45;&amp;gt;Proof System --&gt;
&lt;g id=&quot;edge3&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Formal Language-&gt;Proof System&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M57.57,-143.7C57.57,-136.41 57.57,-127.73 57.57,-119.54&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;61.07,-119.62 57.57,-109.62 54.07,-119.62 61.07,-119.62&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;!-- Semantics --&gt;
&lt;g id=&quot;node3&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Semantics&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M204.34,-252C204.34,-252 154.79,-252 154.79,-252 148.79,-252 142.79,-246 142.79,-240 142.79,-240 142.79,-228 142.79,-228 142.79,-222 148.79,-216 154.79,-216 154.79,-216 204.34,-216 204.34,-216 210.34,-216 216.34,-222 216.34,-228 216.34,-228 216.34,-240 216.34,-240 216.34,-246 210.34,-252 204.34,-252&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;179.57&quot; y=&quot;-229.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Semantics&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Interpretation --&gt;
&lt;g id=&quot;node4&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Interpretation&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M213.66,-180C213.66,-180 145.47,-180 145.47,-180 139.47,-180 133.47,-174 133.47,-168 133.47,-168 133.47,-156 133.47,-156 133.47,-150 139.47,-144 145.47,-144 145.47,-144 213.66,-144 213.66,-144 219.66,-144 225.66,-150 225.66,-156 225.66,-156 225.66,-168 225.66,-168 225.66,-174 219.66,-180 213.66,-180&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;179.57&quot; y=&quot;-157.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Interpretation&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Semantics&amp;#45;&amp;gt;Interpretation --&gt;
&lt;g id=&quot;edge2&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Semantics-&gt;Interpretation&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M179.57,-215.7C179.57,-208.41 179.57,-199.73 179.57,-191.54&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;183.07,-191.62 179.57,-181.62 176.07,-191.62 183.07,-191.62&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;!-- Model --&gt;
&lt;g id=&quot;node6&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Model&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M194.57,-108C194.57,-108 164.57,-108 164.57,-108 158.57,-108 152.57,-102 152.57,-96 152.57,-96 152.57,-84 152.57,-84 152.57,-78 158.57,-72 164.57,-72 164.57,-72 194.57,-72 194.57,-72 200.57,-72 206.57,-78 206.57,-84 206.57,-84 206.57,-96 206.57,-96 206.57,-102 200.57,-108 194.57,-108&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;179.57&quot; y=&quot;-85.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Model&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Interpretation&amp;#45;&amp;gt;Model --&gt;
&lt;g id=&quot;edge4&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Interpretation-&gt;Model&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M179.57,-143.7C179.57,-136.41 179.57,-127.73 179.57,-119.54&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;183.07,-119.62 179.57,-109.62 176.07,-119.62 183.07,-119.62&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;!-- Theorem --&gt;
&lt;g id=&quot;node7&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Theorem&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M78.83,-36C78.83,-36 36.3,-36 36.3,-36 30.3,-36 24.3,-30 24.3,-24 24.3,-24 24.3,-12 24.3,-12 24.3,-6 30.3,0 36.3,0 36.3,0 78.83,0 78.83,0 84.83,0 90.83,-6 90.83,-12 90.83,-12 90.83,-24 90.83,-24 90.83,-30 84.83,-36 78.83,-36&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;57.57&quot; y=&quot;-13.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Theorem&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Proof System&amp;#45;&amp;gt;Theorem --&gt;
&lt;g id=&quot;edge5&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Proof System-&gt;Theorem&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M57.57,-71.7C57.57,-64.41 57.57,-55.73 57.57,-47.54&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;61.07,-47.62 57.57,-37.62 54.07,-47.62 61.07,-47.62&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;!-- Truth --&gt;
&lt;g id=&quot;node8&quot; class=&quot;node&quot;&gt;
&lt;title&gt;Truth&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M194.57,-36C194.57,-36 164.57,-36 164.57,-36 158.57,-36 152.57,-30 152.57,-24 152.57,-24 152.57,-12 152.57,-12 152.57,-6 158.57,0 164.57,0 164.57,0 194.57,0 194.57,0 200.57,0 206.57,-6 206.57,-12 206.57,-12 206.57,-24 206.57,-24 206.57,-30 200.57,-36 194.57,-36&quot;&gt;&lt;/path&gt;
&lt;text xml:space=&quot;preserve&quot; text-anchor=&quot;middle&quot; x=&quot;179.57&quot; y=&quot;-13.8&quot; font-family=&quot;Times,serif&quot; font-size=&quot;14.00&quot;&gt;Truth&lt;/text&gt;
&lt;/g&gt;
&lt;!-- Model&amp;#45;&amp;gt;Truth --&gt;
&lt;g id=&quot;edge6&quot; class=&quot;edge&quot;&gt;
&lt;title&gt;Model-&gt;Truth&lt;/title&gt;
&lt;path fill=&quot;none&quot; stroke=&quot;black&quot; d=&quot;M179.57,-71.7C179.57,-64.41 179.57,-55.73 179.57,-47.54&quot;&gt;&lt;/path&gt;
&lt;polygon fill=&quot;black&quot; stroke=&quot;black&quot; points=&quot;183.07,-47.62 179.57,-37.62 176.07,-47.62 183.07,-47.62&quot;&gt;&lt;/polygon&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/svg&gt;
&lt;/div&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Soundness&lt;/strong&gt; — only true statements can be proved&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Completeness&lt;/strong&gt; — all true statements can be proved (for first-order logic, Gödel proved this)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decidability&lt;/strong&gt; — is there an algorithm to determine if a statement is provable? (answer: no, for first-order logic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../theory-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;theory-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Theory of Computation&lt;/a&gt; — computability emerged from logic&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../lambda-calculus&quot; class=&quot;internal alias&quot; data-slug=&quot;lambda-calculus&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Lambda Calculus&lt;/a&gt; — logical foundation for functional programming&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt; — Turing’s work was in mathematical logic&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../algorithm&quot; class=&quot;internal alias&quot; data-slug=&quot;algorithm&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Algorithm&lt;/a&gt; — formal procedures for computation&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../formal-language-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;formal-language-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Formal Language Theory&lt;/a&gt; — languages defined by logical grammars&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../rices-theorem&quot; class=&quot;internal alias&quot; data-slug=&quot;rices-theorem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Rice&#039;s Theorem&lt;/a&gt; — all non-trivial semantic properties are undecidable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Gödel’s incompleteness theorems — any sufficiently powerful logical system cannot be both consistent and complete&lt;/li&gt;
&lt;li&gt;First-order logic is undecidable (no algorithm can determine truth of arbitrary statements)&lt;/li&gt;
&lt;li&gt;Second-order logic is even more expressive but loses completeness&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry><entry>
    <title>alan-turing</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/alan-turing" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/alan-turing.md" />
    <summary>The Problem How do we formally define computability and build the theoretical foundation for all computers? Core Idea Alan Turing (1912-1954) was a British mathematician and computer scientist who created the Turing machine model, proved the halting problem undecidable, and contributed to codebreaki...</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="computability" label="computability" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;How do we formally define computability and build the theoretical foundation for all computers?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Alan Turing (1912-1954) was a British mathematician and computer scientist who created the Turing machine model, proved the halting problem undecidable, and contributed to codebreaking during WWII.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Key contributions:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;1936&lt;/strong&gt;: Published “On Computable Numbers” introducing the Turing machine&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1937&lt;/strong&gt;: Proved the halting problem is undecidable&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1939-1945&lt;/strong&gt;: Led Hut 8 at Bletchley Park, breaking the Enigma code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1950&lt;/strong&gt;: Created the Turing test for machine intelligence&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;The Turing machine became the standard model for computability theory.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Founded computability theory&lt;/li&gt;
&lt;li&gt;Created the Turing machine model&lt;/li&gt;
&lt;li&gt;Proved fundamental undecidability results&lt;/li&gt;
&lt;li&gt;Pioneer of artificial intelligence&lt;/li&gt;
&lt;li&gt;Short life ended tragically in 1954&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt;, &lt;a href=&quot;../../halting-problem&quot; class=&quot;internal alias&quot; data-slug=&quot;halting-problem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Halting Problem&lt;/a&gt;, &lt;a href=&quot;../../artificial-intelligence&quot; class=&quot;internal alias&quot; data-slug=&quot;artificial-intelligence&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Artificial Intelligence&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../alonzo-church&quot; class=&quot;internal alias&quot; data-slug=&quot;alonzo-church&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Alonzo Church&lt;/a&gt;, &lt;a href=&quot;../../church-turing-thesis&quot; class=&quot;internal alias&quot; data-slug=&quot;church-turing-thesis&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Church-Turing Thesis&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Turing’s work defined what computation means. His machine model is the foundation of computer science, and his ideas about machine intelligence continue to shape AI today.&lt;/p&gt;</content>
  </entry><entry>
    <title>automata-theory</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/automata-theory" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/automata-theory.md" />
    <summary>The Problem What abstract machines can solve what classes of computational problems? Core Idea Automata theory is the study of abstract machines (mathematical models of computing devices) and the computational problems that can be solved using these machines.</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="branch" label="branch" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;What abstract machines can solve what classes of computational problems?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Automata theory is the study of abstract machines (mathematical models of computing devices) and the computational problems that can be solved using these machines.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Automata are abstract machines that process inputs and produce outputs based on defined rules. They are classified by their computational power:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Finite automata&lt;/strong&gt; - simplest, limited memory&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pushdown automata&lt;/strong&gt; - stack-based memory&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Turing machines&lt;/strong&gt; - unlimited memory&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;The term comes from Greek “αυτόματα” meaning “something that does things by itself.”&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Studies abstract mathematical machines&lt;/li&gt;
&lt;li&gt;Closely related to formal language theory&lt;/li&gt;
&lt;li&gt;Automata are classified by the class of formal languages they recognize&lt;/li&gt;
&lt;li&gt;Used as theoretical models for computing machines&lt;/li&gt;
&lt;li&gt;Used for proofs about computability&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../formal-language&quot; class=&quot;internal alias&quot; data-slug=&quot;formal-language&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Formal Language&lt;/a&gt;, &lt;a href=&quot;../../finite-automaton&quot; class=&quot;internal alias&quot; data-slug=&quot;finite-automaton&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Finite Automaton&lt;/a&gt;, &lt;a href=&quot;../../pushdown-automaton&quot; class=&quot;internal alias&quot; data-slug=&quot;pushdown-automaton&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Pushdown Automaton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../chomsky-hierarchy&quot; class=&quot;internal alias&quot; data-slug=&quot;chomsky-hierarchy&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Chomsky Hierarchy&lt;/a&gt;, &lt;a href=&quot;../../formal-language&quot; class=&quot;internal alias&quot; data-slug=&quot;formal-language&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Formal Language Theory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../model-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;model-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Model of Computation&lt;/a&gt;, &lt;a href=&quot;../../theory-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;theory-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Theory of Computation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;More powerful automata can simulate less powerful ones&lt;/li&gt;
&lt;li&gt;The Chomsky hierarchy classifies languages by the automata that recognize them&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Automata theory provides the framework for understanding computational power and classifying problems. It bridges abstract machines with formal languages and forms the foundation for computability theory.&lt;/p&gt;</content>
  </entry><entry>
    <title>big-o-notation</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/big-o-notation" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/big-o-notation.md" />
    <summary>The Problem How do we compare algorithm efficiency without being tied to specific hardware or machine details? Core Idea Big O notation describes the upper bound on the growth rate of a function, allowing comparison of algorithms based on how their resource requirements scale with input size, ignori...</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="complexity" label="complexity" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;How do we compare algorithm efficiency without being tied to specific hardware or machine details?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Big O notation describes the upper bound on the growth rate of a function, allowing comparison of algorithms based on how their resource requirements scale with input size, ignoring machine-dependent constants.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Big O describes asymptotic behavior as input grows large:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;O(1) - constant time&lt;/li&gt;
&lt;li&gt;O(log n) - logarithmic time&lt;/li&gt;
&lt;li&gt;O(n) - linear time&lt;/li&gt;
&lt;li&gt;O(n²) - quadratic time&lt;/li&gt;
&lt;li&gt;O(2^n) - exponential time&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;The notation focuses on dominant terms, ignoring lower-order terms and constants.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Describes upper bound (worst-case growth)&lt;/li&gt;
&lt;li&gt;Ignores machine-specific constants&lt;/li&gt;
&lt;li&gt;Focuses on asymptotic behavior&lt;/li&gt;
&lt;li&gt;Used for time and space complexity&lt;/li&gt;
&lt;li&gt;Essential for comparing algorithms&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../asymptotic-analysis&quot; class=&quot;internal alias&quot; data-slug=&quot;asymptotic-analysis&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Asymptotic Analysis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computational-complexity-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computational-complexity-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computational Complexity Theory&lt;/a&gt;, &lt;a href=&quot;../../time-complexity&quot; class=&quot;internal alias&quot; data-slug=&quot;time-complexity&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Time Complexity&lt;/a&gt;, &lt;a href=&quot;../../space-complexity&quot; class=&quot;internal alias&quot; data-slug=&quot;space-complexity&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Space Complexity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../algorithm&quot; class=&quot;internal alias&quot; data-slug=&quot;algorithm&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Algorithm&lt;/a&gt;, &lt;a href=&quot;../../big-omega-notation&quot; class=&quot;internal alias&quot; data-slug=&quot;big-omega-notation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Big Ω Notation&lt;/a&gt;, &lt;a href=&quot;../../big-theta-notation&quot; class=&quot;internal alias&quot; data-slug=&quot;big-theta-notation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Big Θ Notation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Big O gives upper bound—actual performance may be better&lt;/li&gt;
&lt;li&gt;Constants matter in practice for small inputs&lt;/li&gt;
&lt;li&gt;Must consider best, average, and worst case&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry><entry>
    <title>chomsky-hierarchy</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/chomsky-hierarchy" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/chomsky-hierarchy.md" />
    <summary>The Problem How are formal languages classified by their computational power? Core Idea The Chomsky hierarchy is a classification of formal languages into four types (Type 0-3), where each type is defined by the complexity of grammar required to generate it and corresponds to a class of automata tha...</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="automata" label="automata" />
<category term="classification" label="classification" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;How are formal languages classified by their computational power?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The Chomsky hierarchy is a classification of formal languages into four types (Type 0-3), where each type is defined by the complexity of grammar required to generate it and corresponds to a class of automata that can recognize it.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The hierarchy (from most to least powerful):&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Type 0 (Unrestricted)&lt;/strong&gt; - Recursively enumerable languages, recognized by Turing machines&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Type 1 (Context-sensitive)&lt;/strong&gt; - Recognized by linear-bounded Turing machines&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Type 2 (Context-free)&lt;/strong&gt; - Recognized by pushdown automata&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Type 3 (Regular)&lt;/strong&gt; - Recognized by finite automata&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;Each type is a proper subset of the previous type, creating nested inclusions.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Four types (Type 0-3) with increasing restrictions&lt;/li&gt;
&lt;li&gt;Each type corresponds to a class of automata&lt;/li&gt;
&lt;li&gt;Type 0 ⊇ Type 1 ⊇ Type 2 ⊇ Type 3&lt;/li&gt;
&lt;li&gt;Proposed by Noam Chomsky in 1956&lt;/li&gt;
&lt;li&gt;Used to understand language complexity and computational power&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../formal-language-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;formal-language-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Formal Language Theory&lt;/a&gt;, &lt;a href=&quot;../../grammar&quot; class=&quot;internal alias&quot; data-slug=&quot;grammar&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Grammar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../regular-grammar&quot; class=&quot;internal alias&quot; data-slug=&quot;regular-grammar&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Regular Grammar&lt;/a&gt;, &lt;a href=&quot;../../context-free-grammar&quot; class=&quot;internal alias&quot; data-slug=&quot;context-free-grammar&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Context-Free Grammar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../finite-automaton&quot; class=&quot;internal alias&quot; data-slug=&quot;finite-automaton&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Finite Automaton&lt;/a&gt;, &lt;a href=&quot;../../pushdown-automaton&quot; class=&quot;internal alias&quot; data-slug=&quot;pushdown-automaton&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Pushdown Automaton&lt;/a&gt;, &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Higher in the hierarchy means more powerful but more complex to process&lt;/li&gt;
&lt;li&gt;Regular languages are efficient but limited in what they can express&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry><entry>
    <title>church-turing-thesis</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/church-turing-thesis" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/church-turing-thesis.md" />
    <summary>The Problem What does it mean for a function to be “computable”? Is there a single definition that captures all intuitive notions of computability? Core Idea The Church-Turing thesis states that Turing machines capture the notion of computability—any function that can be intuitively computed can be ...</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="foundations" label="foundations" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;What does it mean for a function to be “computable”? Is there a single definition that captures all intuitive notions of computability?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The Church-Turing thesis states that Turing machines capture the notion of computability—any function that can be intuitively computed can be computed by a Turing machine. It is a thesis, not a theorem, because it equates an intuitive notion with a formal definition.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The thesis unifies multiple independent definitions of computability:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Turing machine computability&lt;/li&gt;
&lt;li&gt;Lambda calculus definability&lt;/li&gt;
&lt;li&gt;μ-recursive function computability&lt;/li&gt;
&lt;li&gt;Register machine computability&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;All have been proven equivalent, strengthening confidence in the thesis.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Equates intuitive “effectively computable” with formal Turing-computable&lt;/li&gt;
&lt;li&gt;Not proven (it’s a thesis), but widely accepted&lt;/li&gt;
&lt;li&gt;Multiple equivalent formalizations&lt;/li&gt;
&lt;li&gt;Fundamental to computability theory&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt;, &lt;a href=&quot;../../lambda-calculus&quot; class=&quot;internal alias&quot; data-slug=&quot;lambda-calculus&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Lambda Calculus&lt;/a&gt;, &lt;a href=&quot;../../mu-recursive-functions&quot; class=&quot;internal alias&quot; data-slug=&quot;mu-recursive-functions&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;μ-Recursive Functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../model-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;model-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Model of Computation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;The thesis is not provable because “intuitively computable” is not formally defined&lt;/li&gt;
&lt;li&gt;Some models (like oracles) can compute beyond Turing machines—but these aren’t “ordinary” computation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The Church-Turing thesis defines what we mean by “computable.” When we say a problem is unsolvable, we mean unsolvable by a Turing machine—which means unsolvable by any algorithm.&lt;/p&gt;</content>
  </entry><entry>
    <title>computability-theory</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/computability-theory" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/computability-theory.md" />
    <summary>The Problem Which problems can be solved by a computer at all, regardless of how long it takes? Core Idea Computability theory (also called recursion theory) deals with the question of whether a problem is solvable on a computer.</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="branch" label="branch" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Which problems can be solved by a computer at all, regardless of how long it takes?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Computability theory (also called recursion theory) deals with the question of whether a problem is solvable on a computer. It determines the boundaries of what algorithms can achieve.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The field builds on fundamental results:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Halting problem&lt;/strong&gt; - cannot be solved by any algorithm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rice’s theorem&lt;/strong&gt; - all non-trivial properties of partial functions are undecidable&lt;/li&gt;
&lt;li&gt;Uses Turing machines as the primary model&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;Computability theory is closely related to mathematical logic’s recursion theory, which removes the restriction of studying only models reducible to Turing machines.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Studies which problems are solvable&lt;/li&gt;
&lt;li&gt;Uses Turing machine as standard model&lt;/li&gt;
&lt;li&gt;Major result: halting problem is undecidable&lt;/li&gt;
&lt;li&gt;Builds on the halting problem result&lt;/li&gt;
&lt;li&gt;Often synonymous with recursion theory&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt;, &lt;a href=&quot;../../halting-problem&quot; class=&quot;internal alias&quot; data-slug=&quot;halting-problem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Halting Problem&lt;/a&gt;, &lt;a href=&quot;../../rices-theorem&quot; class=&quot;internal alias&quot; data-slug=&quot;rices-theorem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Rice&#039;s Theorem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computational-complexity-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computational-complexity-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computational Complexity Theory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../mathematical-logic&quot; class=&quot;internal alias&quot; data-slug=&quot;mathematical-logic&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Mathematical Logic&lt;/a&gt;, &lt;a href=&quot;../../recursion-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;recursion-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Recursion Theory&lt;/a&gt;, &lt;a href=&quot;../../model-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;model-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Model of Computation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;“Undecidable” means no algorithm exists—not just that no one has found one&lt;/li&gt;
&lt;li&gt;Some problems are undecidable even though individual instances may be solvable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Computability theory defines the fundamental limits of what computers can do. Knowing a problem is undecidable saves time trying to find a solution that doesn’t exist.&lt;/p&gt;</content>
  </entry><entry>
    <title>computational-complexity-theory</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/computational-complexity-theory" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/computational-complexity-theory.md" />
    <summary>The Problem How efficiently can problems be solved? What resource limits (time, memory) are required? Core Idea Computational complexity theory studies not just whether a problem can be solved, but how efficiently it can be solved.</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="branch" label="branch" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;How efficiently can problems be solved? What resource limits (time, memory) are required?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Computational complexity theory studies not just whether a problem can be solved, but how efficiently it can be solved. It classifies problems based on the resources required to solve them.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Two major aspects are considered:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Time complexity&lt;/strong&gt; - how many steps a computation takes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Space complexity&lt;/strong&gt; - how much memory is required&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;Problems are grouped into complexity classes (P, NP, PSPACE, etc.) based on resource requirements. The famous P vs NP question asks whether problems whose solutions can be verified quickly can also be solved quickly.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Studies efficiency of computation&lt;/li&gt;
&lt;li&gt;Considers both time and space resources&lt;/li&gt;
&lt;li&gt;Classifies problems into complexity classes&lt;/li&gt;
&lt;li&gt;Uses Big O notation for asymptotic analysis&lt;/li&gt;
&lt;li&gt;P vs NP is a major open problem and Millennium Prize Problem&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../time-complexity&quot; class=&quot;internal alias&quot; data-slug=&quot;time-complexity&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Time Complexity&lt;/a&gt;, &lt;a href=&quot;../../space-complexity&quot; class=&quot;internal alias&quot; data-slug=&quot;space-complexity&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Space Complexity&lt;/a&gt;, &lt;a href=&quot;../../big-o-notation&quot; class=&quot;internal alias&quot; data-slug=&quot;big-o-notation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Big O Notation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../p-vs-np-problem&quot; class=&quot;internal alias&quot; data-slug=&quot;p-vs-np-problem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;P vs NP Problem&lt;/a&gt;, &lt;a href=&quot;../../np-completeness&quot; class=&quot;internal alias&quot; data-slug=&quot;np-completeness&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;NP-Complete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt;, &lt;a href=&quot;../../algorithm&quot; class=&quot;internal alias&quot; data-slug=&quot;algorithm&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Algorithm&lt;/a&gt;, &lt;a href=&quot;../../model-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;model-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Model of Computation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;A problem being “hard” doesn’t mean it’s impossible—just that it requires lots of resources&lt;/li&gt;
&lt;li&gt;Polynomial vs exponential time is a crucial distinction in practice&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Complexity theory guides algorithm design and informs which problems are tractable in practice. The P vs NP problem is one of the most important open questions in computer science.&lt;/p&gt;</content>
  </entry><entry>
    <title>formal-language-theory</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/formal-language-theory" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/formal-language-theory.md" />
    <summary>The Problem How do we mathematically describe and classify sets of strings (languages)? Core Idea Formal language theory is a branch of mathematics concerned with describing languages as sets of operations over an alphabet.</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="automata" label="automata" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;How do we mathematically describe and classify sets of strings (languages)?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Formal language theory is a branch of mathematics concerned with describing languages as sets of operations over an alphabet. It provides the mathematical foundation for specifying what strings are valid in a language.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;A formal language consists of:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;An &lt;strong&gt;alphabet&lt;/strong&gt; - finite set of symbols&lt;/li&gt;
&lt;li&gt;A set of &lt;strong&gt;strings&lt;/strong&gt; (or words) formed from those symbols&lt;/li&gt;
&lt;li&gt;Formal rules (grammar) defining valid strings&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;Languages are classified in a hierarchy (Chomsky hierarchy) based on the complexity of grammars that generate them. Automata are used to recognize (accept/reject) strings in a language.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Mathematical description of languages&lt;/li&gt;
&lt;li&gt;Uses alphabets and string operations&lt;/li&gt;
&lt;li&gt;Classified by Chomsky hierarchy&lt;/li&gt;
&lt;li&gt;Linked to automata theory&lt;/li&gt;
&lt;li&gt;Languages are often infinite sets specified by finite rules&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../alphabet&quot; class=&quot;internal alias&quot; data-slug=&quot;alphabet&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Alphabet (Formal Languages)&lt;/a&gt;, &lt;a href=&quot;../../grammar&quot; class=&quot;internal alias&quot; data-slug=&quot;grammar&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Grammar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../chomsky-hierarchy&quot; class=&quot;internal alias&quot; data-slug=&quot;chomsky-hierarchy&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Chomsky Hierarchy&lt;/a&gt;, &lt;a href=&quot;../../automata-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;automata-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Automata Theory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../regular-expression&quot; class=&quot;internal alias&quot; data-slug=&quot;regular-expression&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Regular Expression&lt;/a&gt;, &lt;a href=&quot;../../context-free-grammar&quot; class=&quot;internal alias&quot; data-slug=&quot;context-free-grammar&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Context-Free Grammar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;A language can be infinite even with a finite description (grammar)&lt;/li&gt;
&lt;li&gt;The same language can be described by different grammars&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry><entry>
    <title>halting-problem</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/halting-problem" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/halting-problem.md" />
    <summary>The Problem Is there an algorithm that can determine whether any arbitrary program will eventually halt or run forever? Core Idea The halting problem asks: given a program and its input, will it terminate (halt) or run forever? Alan Turing proved in 1937 that no algorithm can solve this for all poss...</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="undecidability" label="undecidability" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Is there an algorithm that can determine whether any arbitrary program will eventually halt or run forever?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The halting problem asks: given a program and its input, will it terminate (halt) or run forever? Alan Turing proved in 1937 that no algorithm can solve this for all possible program-input pairs.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The proof uses self-reference and diagonalization:&lt;/p&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li&gt;Assume a hypothetical “halting solver” H(P, I) that returns “halts” or “loops forever”&lt;/li&gt;
&lt;li&gt;Create a paradoxical program that does the opposite of what H predicts&lt;/li&gt;
&lt;li&gt;Feed this program to itself → contradiction&lt;/li&gt;
&lt;li&gt;Therefore, H cannot exist&lt;/li&gt;
&lt;/ol&gt;
&lt;p dir=&quot;auto&quot;&gt;This is one of the most important results in computability theory.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Proved undecidable by Alan Turing in 1937&lt;/li&gt;
&lt;li&gt;Example of a concrete problem that is easy to formulate but impossible to solve&lt;/li&gt;
&lt;li&gt;Foundation for much of computability theory&lt;/li&gt;
&lt;li&gt;Any problem that can encode the halting problem is also undecidable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt;, &lt;a href=&quot;../../rices-theorem&quot; class=&quot;internal alias&quot; data-slug=&quot;rices-theorem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Rice&#039;s Theorem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../church-turing-thesis&quot; class=&quot;internal alias&quot; data-slug=&quot;church-turing-thesis&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Church-Turing Thesis&lt;/a&gt;, &lt;a href=&quot;../../undecidability&quot; class=&quot;internal alias&quot; data-slug=&quot;undecidability&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Undecidability&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;The problem is undecidable for Turing machines, but some specific programs can be analyzed&lt;/li&gt;
&lt;li&gt;Knowing individual instances are solvable doesn’t make the general problem solvable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The halting problem proves that there are limits to what algorithms can know. This fundamental result shapes how we think about program analysis, verification, and the boundaries of computation.&lt;/p&gt;</content>
  </entry><entry>
    <title>lambda-calculus</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/lambda-calculus" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/lambda-calculus.md" />
    <summary>The Problem How can computation be expressed purely in terms of function abstraction and application? Core Idea Lambda calculus is a formal system for expressing computation based on function abstraction and application.</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="models" label="models" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;How can computation be expressed purely in terms of function abstraction and application?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Lambda calculus is a formal system for expressing computation based on function abstraction and application. It is a foundational model of computation equivalent to Turing machines.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The system has three components:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Variables&lt;/strong&gt; (x, y, z…) - names for parameters&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Abstraction&lt;/strong&gt; (λx.M) - defining functions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Application&lt;/strong&gt; (M N) - applying functions to arguments&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;Computation proceeds through &lt;strong&gt;beta reduction&lt;/strong&gt; - replacing variables in the function body with arguments. Lambda calculus can encode all computable functions.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Formal model of computation based on functions&lt;/li&gt;
&lt;li&gt;Equivalent to Turing machines (Church-Turing thesis)&lt;/li&gt;
&lt;li&gt;Foundation for functional programming&lt;/li&gt;
&lt;li&gt;Uses beta reduction as the computation step&lt;/li&gt;
&lt;li&gt;Variables can be bound or free&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../function-abstraction&quot; class=&quot;internal alias&quot; data-slug=&quot;function-abstraction&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Function Abstraction&lt;/a&gt;, &lt;a href=&quot;../../function-application&quot; class=&quot;internal alias&quot; data-slug=&quot;function-application&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Function Application&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt;, &lt;a href=&quot;../../functional-programming&quot; class=&quot;internal alias&quot; data-slug=&quot;functional-programming&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Functional Programming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt;, &lt;a href=&quot;../../combinatory-logic&quot; class=&quot;internal alias&quot; data-slug=&quot;combinatory-logic&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Combinatory Logic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Lambda calculus has no native numbers or data structures—they must be encoded&lt;/li&gt;
&lt;li&gt;Some terms have no normal form (don’t reduce to a final value)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Lambda calculus is the foundation for functional programming languages (Lisp, Haskell) and provides a pure mathematical model of computation based on functions rather than state machines.&lt;/p&gt;</content>
  </entry><entry>
    <title>model-of-computation</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/model-of-computation" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/model-of-computation.md" />
    <summary>The Problem How do we rigorously study computation without being tied to specific hardware implementations? Core Idea A model of computation is a mathematical abstraction of a computer used to formally analyze what problems can be solved and how efficiently.</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="foundations" label="foundations" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;How do we rigorously study computation without being tied to specific hardware implementations?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;A model of computation is a mathematical abstraction of a computer used to formally analyze what problems can be solved and how efficiently.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Computer scientists work with various models:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Turing machine&lt;/strong&gt; - most commonly examined, simple to formulate and analyze&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lambda calculus&lt;/strong&gt; - function-based computation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Register machine&lt;/strong&gt; - idealized computer with numbered registers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;μ-recursive functions&lt;/strong&gt; - mathematical function definition&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;The Turing machine is preferred because it is simple to formulate, can be analyzed to prove results, and represents what many consider the most powerful “reasonable” model of computation (Church-Turing thesis).&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Mathematical abstraction of computers&lt;/li&gt;
&lt;li&gt;Used to prove results about computability and complexity&lt;/li&gt;
&lt;li&gt;Different models have different capabilities but are often equivalent&lt;/li&gt;
&lt;li&gt;Enables rigorous analysis without hardware dependencies&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt;, &lt;a href=&quot;../../lambda-calculus&quot; class=&quot;internal alias&quot; data-slug=&quot;lambda-calculus&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Lambda Calculus&lt;/a&gt;, &lt;a href=&quot;../../register-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;register-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Register Machine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt;, &lt;a href=&quot;../../computational-complexity-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computational-complexity-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computational Complexity Theory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../theory-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;theory-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Theory of Computation&lt;/a&gt;, &lt;a href=&quot;../../algorithm&quot; class=&quot;internal alias&quot; data-slug=&quot;algorithm&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Algorithm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;All reasonable models of computation are equivalent (Church-Turing thesis)&lt;/li&gt;
&lt;li&gt;The infinite memory of Turing machines is idealized—any decidable problem needs only finite memory&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry><entry>
    <title>p-vs-np-problem</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/p-vs-np-problem" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/p-vs-np-problem.md" />
    <summary>The Problem If you can verify a solution quickly, can you also find a solution quickly? Core Idea The P vs NP problem asks whether every problem whose solution can be verified in polynomial time can also be solved in polynomial time.</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="open-problem" label="open-problem" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;If you can verify a solution quickly, can you also find a solution quickly?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The P vs NP problem asks whether every problem whose solution can be verified in polynomial time can also be solved in polynomial time. It is one of the seven Millennium Prize Problems with a $1 million reward.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;P (Polynomial)&lt;/strong&gt; - problems solvable in polynomial time&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NP (Non-deterministic Polynomial)&lt;/strong&gt; - problems verifiable in polynomial time&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;All P problems are in NP, but whether NP ⊆ P (i.e., P = NP) is unknown. If P = NP, problems like factorization, SAT, and many optimization problems would become efficiently solvable.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;One of the seven Millennium Prize Problems&lt;/li&gt;
&lt;li&gt;Asks if P = NP&lt;/li&gt;
&lt;li&gt;If true, many hard problems become easy&lt;/li&gt;
&lt;li&gt;Current consensus: probably false&lt;/li&gt;
&lt;li&gt;Has profound implications for cryptography, optimization, AI&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../computational-complexity-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computational-complexity-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computational Complexity Theory&lt;/a&gt;, &lt;a href=&quot;../../np-complete&quot; class=&quot;internal alias&quot; data-slug=&quot;np-complete&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;NP-Complete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../polynomial-time&quot; class=&quot;internal alias&quot; data-slug=&quot;polynomial-time&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Polynomial Time&lt;/a&gt;, &lt;a href=&quot;../../nondeterministic-turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;nondeterministic-turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Non-deterministic Turing Machine&lt;/a&gt;, &lt;a href=&quot;../../sat-problem&quot; class=&quot;internal alias&quot; data-slug=&quot;sat-problem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;SAT Problem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Even if P = NP, the polynomial might be too large to be practical&lt;/li&gt;
&lt;li&gt;Cryptography assumes P ≠ NP&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The P vs NP problem is the most important open problem in computer science. Its resolution would revolutionize computing, cryptography, and our ability to solve complex optimization problems.&lt;/p&gt;</content>
  </entry><entry>
    <title>rices-theorem</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/rices-theorem" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/rices-theorem.md" />
    <summary>The Problem Can we automatically determine non-trivial properties of programs? Core Idea Rice’s theorem states that for all non-trivial properties of partial functions (computed by Turing machines), it is undecidable whether a given Turing machine computes a partial function with that property.</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="undecidability" label="undecidability" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Can we automatically determine non-trivial properties of programs?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Rice’s theorem states that for all non-trivial properties of partial functions (computed by Turing machines), it is undecidable whether a given Turing machine computes a partial function with that property.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;A property is “non-trivial” if it is not always true or always false for all Turing machines. Examples:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;“Does this machine’s output equal its input?”&lt;/li&gt;
&lt;li&gt;“Does this machine output a prime number?”&lt;/li&gt;
&lt;li&gt;“Does this machine halt on empty input?”&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;All such properties are undecidable—proving many problems are unsolvable without case-by-case analysis.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Proved by Henry Gordon Rice in 1953&lt;/li&gt;
&lt;li&gt;Applies to all non-trivial properties of partial functions&lt;/li&gt;
&lt;li&gt;Generalizes the halting problem to many properties&lt;/li&gt;
&lt;li&gt;Any property about the function a program computes is undecidable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../turing-machine&quot; class=&quot;internal alias&quot; data-slug=&quot;turing-machine&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Turing Machine&lt;/a&gt;, &lt;a href=&quot;../../halting-problem&quot; class=&quot;internal alias&quot; data-slug=&quot;halting-problem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Halting Problem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../undecidability&quot; class=&quot;internal alias&quot; data-slug=&quot;undecidability&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Undecidability&lt;/a&gt;, &lt;a href=&quot;../../computational-complexity-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computational-complexity-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computational Complexity Theory&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;The theorem applies to properties of the function computed, not the program’s syntax&lt;/li&gt;
&lt;li&gt;Trivial properties (always true/false) are still decidable&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Rice’s theorem tells us that any non-trivial property of program behavior is undecidable. This fundamental limit applies to program verification, malware detection, and many other areas.&lt;/p&gt;</content>
  </entry><entry>
    <title>theory-of-computation</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/theory-of-computation" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/theory-of-computation.md" />
    <summary>The Problem What are the fundamental capabilities and limitations of computers? Which problems can be solved by algorithms, and how efficiently? Core Idea Theory of computation is the branch of theoretical computer science and mathematics that studies what problems can be solved on a model of comput...</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="foundations" label="foundations" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;What are the fundamental capabilities and limitations of computers? Which problems can be solved by algorithms, and how efficiently?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Theory of computation is the branch of theoretical computer science and mathematics that studies what problems can be solved on a model of computation using an algorithm, how efficiently they can be solved, and to what degree.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The field is divided into three major branches that work together to answer the core question:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;strong&gt;Automata theory&lt;/strong&gt; studies abstract machines and what languages they can recognize&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Computability theory&lt;/strong&gt; determines which problems are solvable at all&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Computational complexity theory&lt;/strong&gt; measures how efficiently problems can be solved&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;Computer scientists use mathematical abstractions called models of computation to perform rigorous analysis. The most common is the Turing machine.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Deals with algorithmic solvability and efficiency&lt;/li&gt;
&lt;li&gt;Uses mathematical abstraction of computers (models of computation)&lt;/li&gt;
&lt;li&gt;Has three major branches linked by the fundamental question of computational limits&lt;/li&gt;
&lt;li&gt;Separated from mathematics in the last century with its own conferences and awards&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../mathematical-logic&quot; class=&quot;internal alias&quot; data-slug=&quot;mathematical-logic&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Mathematical Logic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computational-complexity-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computational-complexity-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computational Complexity Theory&lt;/a&gt;, &lt;a href=&quot;../../automata-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;automata-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Automata Theory&lt;/a&gt;, &lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../algorithm&quot; class=&quot;internal alias&quot; data-slug=&quot;algorithm&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Algorithm&lt;/a&gt;, &lt;a href=&quot;../../model-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;model-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Model of Computation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;The potentially infinite memory of a Turing machine seems unrealizable, but any decidable problem only requires finite memory&lt;/li&gt;
&lt;li&gt;The field abstracts away practical constraints to focus on fundamental limits&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Understanding computational limits informs what problems are tractable, guides algorithm design, and shapes the entire field of computer science.&lt;/p&gt;</content>
  </entry><entry>
    <title>turing-machine</title>
    <link href="https://animishraa05.github.io/wiki/theory-of-computation/turing-machine" />
    <link rel="alternate" type="text/markdown" href="https://animishraa05.github.io/wiki/theory-of-computation/turing-machine.md" />
    <summary>The Problem What is the most powerful reasonable model of computation that can be rigorously analyzed? Core Idea A Turing machine is an abstract machine that consists of an infinite tape, a read-write head, and a finite state control.</summary>
    <published>2026-04-11T00:00:00.000Z</published>
    <updated>2026-04-11T00:00:00.000Z</updated>
    <publishedTime>Apr 11, 2026</publishedTime>
    <updatedTime>Apr 11, 2026</updatedTime>
    <category term="theory" label="theory" />
<category term="models" label="models" />
    <author>
      <name>Animesh Mishra</name>
      <email>animesh.mishra818@gmail.com</email>
    </author>
    <content type="html">&lt;h2 id=&quot;the-problem&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;The Problem&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#the-problem&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;What is the most powerful reasonable model of computation that can be rigorously analyzed?&lt;/p&gt;
&lt;h2 id=&quot;core-idea&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Core Idea&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#core-idea&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;A Turing machine is an abstract machine that consists of an infinite tape, a read-write head, and a finite state control. It can simulate any algorithm and is the standard model for studying computability.&lt;/p&gt;
&lt;h2 id=&quot;how-it-works&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;How It Works&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#how-it-works&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The machine operates as follows:&lt;/p&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li&gt;Reads the symbol under the head from the infinite tape&lt;/li&gt;
&lt;li&gt;Based on current state and symbol, writes a new symbol&lt;/li&gt;
&lt;li&gt;Moves the head left or right&lt;/li&gt;
&lt;li&gt;Transitions to a new state or halts&lt;/li&gt;
&lt;/ol&gt;
&lt;p dir=&quot;auto&quot;&gt;Any problem that can be solved by a computer can be solved by a Turing machine. The Church-Turing thesis states that this model captures all computable functions.&lt;/p&gt;
&lt;h2 id=&quot;key-properties&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Key Properties&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#key-properties&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Most powerful “reasonable” model of computation&lt;/li&gt;
&lt;li&gt;Simple to formulate, analyze, and prove results&lt;/li&gt;
&lt;li&gt;Can simulate any algorithm&lt;/li&gt;
&lt;li&gt;Despite infinite tape, any decidable problem needs only finite memory&lt;/li&gt;
&lt;li&gt;Represents the foundation of computability theory&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connections&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Connections&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#connections&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Built from: &lt;a href=&quot;../../model-of-computation&quot; class=&quot;internal alias&quot; data-slug=&quot;model-of-computation&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Model of Computation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds into: &lt;a href=&quot;../../computability-theory&quot; class=&quot;internal alias&quot; data-slug=&quot;computability-theory&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Computability Theory&lt;/a&gt;, &lt;a href=&quot;../../halting-problem&quot; class=&quot;internal alias&quot; data-slug=&quot;halting-problem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Halting Problem&lt;/a&gt;, &lt;a href=&quot;../../rices-theorem&quot; class=&quot;internal alias&quot; data-slug=&quot;rices-theorem&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Rice&#039;s Theorem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Contrasts with: &lt;a href=&quot;../../finite-automaton&quot; class=&quot;internal alias&quot; data-slug=&quot;finite-automaton&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Finite Automaton&lt;/a&gt;, &lt;a href=&quot;../../lambda-calculus&quot; class=&quot;internal alias&quot; data-slug=&quot;lambda-calculus&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Lambda Calculus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Related: &lt;a href=&quot;../../church-turing-thesis&quot; class=&quot;internal alias&quot; data-slug=&quot;church-turing-thesis&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;Church-Turing Thesis&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;edge-cases--gotchas&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Edge Cases &amp;#x26; Gotchas&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#edge-cases--gotchas&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;The infinite tape is an abstraction—in practice, any useful computation needs finite memory&lt;/li&gt;
&lt;li&gt;Not the only model; lambda calculus, register machines are all equivalent&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-this-matters&quot; dir=&quot;auto&quot;&gt;&lt;span class=&quot;highlight-span&quot;&gt;Why This Matters&lt;/span&gt;&lt;a data-role=&quot;anchor&quot; data-no-popover href=&quot;#why-this-matters&quot; class=&quot;internal&quot;&gt;&lt;span class=&quot;indicator-hook&quot;&gt;&lt;/span&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;16&quot; height=&quot;16&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot;&gt;&lt;use href=&quot;#github-anchor&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The Turing machine is the foundation for all computability theory. It defines what we mean by “computable” and provides the tool to prove limits like the undecidability of the halting problem.&lt;/p&gt;</content>
  </entry>
</feed>