summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--flake.lock25
-rw-r--r--flake.nix19
-rw-r--r--makefile19
-rw-r--r--presentation.tex70
5 files changed, 136 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..00fd323
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
1result
2.envrc
3.direnv
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..2a45856
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,25 @@
1{
2 "nodes": {
3 "nixpkgs": {
4 "locked": {
5 "lastModified": 1607855778,
6 "narHash": "sha256-D4/b7xDssBKxgYqw818fz2r4ZKcgEgfenaq72O7id7I=",
7 "owner": "NixOS",
8 "repo": "nixpkgs",
9 "rev": "37dfd61f02dbbb75c088786b24c37eb08ddf446e",
10 "type": "github"
11 },
12 "original": {
13 "id": "nixpkgs",
14 "type": "indirect"
15 }
16 },
17 "root": {
18 "inputs": {
19 "nixpkgs": "nixpkgs"
20 }
21 }
22 },
23 "root": "root",
24 "version": 7
25}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..19f063e
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,19 @@
1{
2 description = "Project presentation for Finite Automata and Formal Languages";
3
4 outputs = { self, nixpkgs }:
5 let
6 pkgs = import nixpkgs { system = "x86_64-linux"; };
7 in
8 with pkgs;
9 {
10 defaultPackage.x86_64-linux = stdenv.mkDerivation {
11 name = "fafl";
12 src = ./.;
13 buildInputs = [
14 texlive.combined.scheme-full
15 gnumake
16 ];
17 };
18 };
19}
diff --git a/makefile b/makefile
new file mode 100644
index 0000000..9539d3b
--- /dev/null
+++ b/makefile
@@ -0,0 +1,19 @@
1DOCNAME=presentation
2PDFLATEX="pdflatex -interaction=nonstopmode"
3
4.PHONY: $(DOCNAME).pdf all clean
5
6all: $(DOCNAME).pdf
7
8$(DOCNAME).pdf: $(DOCNAME).tex
9 latexmk -pdf -pdflatex=$(PDFLATEX) -use-make $(DOCNAME).tex
10
11watch: $(DOCNAME).tex
12 latexmk -pvc -pdf -pdflatex=$(PDFLATEX) -use-make $(DOCNAME).tex
13
14clean:
15 latexmk -CA
16
17install:
18 cp $(DOCNAME).pdf ${out}/
19
diff --git a/presentation.tex b/presentation.tex
new file mode 100644
index 0000000..0ca6878
--- /dev/null
+++ b/presentation.tex
@@ -0,0 +1,70 @@
1\documentclass{beamer}
2
3\usepackage[utf8]{inputenc}
4
5
6\title{Finite Automata and Formal Languages (18CS52)}
7\author{Akshay O}
8\institute[R V College of Engineering]
9{
10 Submitted To: Dr. Krishnappa H K\\
11 Assistant Professor
12 \and
13 Self Study Assignment
14}
15
16\begin{document}
17
18\frame{\titlepage}
19
20\begin{frame}
21 \frametitle{Problem Statement}
22 Suppose that $M_1(Q, \Sigma, \delta, p_0, F)$ and $M_2(Q, \Sigma, \delta, q_0, F)$ are both DFAs accepting the language $L$, and both have as few states as possible. Show that $M_1$ and $M_2$ are isomorphic.
23\end{frame}
24
25\begin{frame}
26 \frametitle{Proof}
27 Let $M_1$ and $M_2$ be two minimal DFAs (have as few states as possible) accepting the language $L$. Both $M_1$ and $M_2$ must have exactly the same number of states because, if one had more states than the other, it would not be a minimal DFA.
28\end{frame}
29
30\begin{frame}
31 \frametitle{Proof}
32
33 For an empty input, $|w| = 0$, both DFAs remain in the start state.
34 The start states of $M_1$ and $M_2$, $p_0$ and $q_0$ respectively; are indistinguishable because
35 \begin{equation}
36 L(M_1) = L(M_2) = L
37 \end{equation}
38
39 Any successor state that is reachable by input of one symbol is also indistinguishable. The reason being, if they were distinguishable, then we could distinguish $p_0$ and $q_0$.
40\end{frame}
41
42\begin{frame}
43 \frametitle{Proof}
44
45 Assume an input of length $k$, that is, $w = a_1 a_2 a_3 ... a_k$, is applied to DFAs $M_1$ and $M_2$. This string takes the state of $M_1$ to a state, say $p$, and $M_2$ to a state, say $q$.
46
47 From $(1)$, we know that their start states are indistinguishable. Hence, on an input of $a_1$, the successor states, $p_1$ and $q_1$ are also indistinguishable. The successors of those states on an input of $a_2$; $p_2$ and $q_2$ are also indistinguishable, and so on.
48\end{frame}
49
50\begin{frame}
51 \frametitle{Conclusion}
52
53 Every state in $M_1$ has a corresponding state in $M_2$ such that the two states are indistinguishable. Also, the transition rules for $M_1$ and $M_2$ are similarly identical:
54 \[ \hat{\delta_{M_1}}(p_0, a_1 a_2 a_3 ... a_k) = \hat{\delta_{M_1}}(p_1, a_2 a_3 ... a_k) = \ldots = \delta_{M_1}(p_{k-1}, a_k) = p_k \]
55 \[ \hat{\delta_{M_2}}(q_0, a_1 a_2 a_3 ... a_k) = \hat{\delta_{M_2}}(q_1, a_2 a_3 ... a_k) = \ldots = \delta_{M_2}(q_{k-1}, a_k) = q_k \]
56\end{frame}
57
58\begin{frame}
59 \frametitle{Conclusion (contd.)}
60 There is a one-one mapping between $M_1$ and $M_2$:
61
62 \[ p_0 \leftrightarrow q_0 \]
63 \[ \delta_{M_1} \leftrightarrow \delta_{M_2} \]
64 \[ p_f \leftrightarrow q_f \]
65
66 Hence, $M_1$ and $M_2$ are isomorphic.
67
68\end{frame}
69
70\end{document}