diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | flake.lock | 25 | ||||
-rw-r--r-- | flake.nix | 19 | ||||
-rw-r--r-- | makefile | 19 | ||||
-rw-r--r-- | presentation.tex | 70 |
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 @@ | |||
1 | result | ||
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 @@ | |||
1 | DOCNAME=presentation | ||
2 | PDFLATEX="pdflatex -interaction=nonstopmode" | ||
3 | |||
4 | .PHONY: $(DOCNAME).pdf all clean | ||
5 | |||
6 | all: $(DOCNAME).pdf | ||
7 | |||
8 | $(DOCNAME).pdf: $(DOCNAME).tex | ||
9 | latexmk -pdf -pdflatex=$(PDFLATEX) -use-make $(DOCNAME).tex | ||
10 | |||
11 | watch: $(DOCNAME).tex | ||
12 | latexmk -pvc -pdf -pdflatex=$(PDFLATEX) -use-make $(DOCNAME).tex | ||
13 | |||
14 | clean: | ||
15 | latexmk -CA | ||
16 | |||
17 | install: | ||
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} | ||