-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paththesis.tex
255 lines (211 loc) · 13.8 KB
/
thesis.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
% Outras Opções:
% * openright -- Força início de capítulos em páginas ímpares (padrão da
% biblioteca)
% * oneside -- Desliga frente-e-verso
% * nominatalocal -- Lê os dados da nominata do arquivo nominatalocal.def
\documentclass[ppgc,diss,english,openright]{iiufrgs}
\usepackage[utf8]{inputenc}
\usepackage[alf,abnt-emphasize=bf]{abntex2cite} % pacote para usar citações abnt
\usepackage{lmodern}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{enumitem}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{amsfonts}
\usepackage{newtxtext,newtxmath}
\usepackage{semantic}
\usepackage{float}
\usepackage{mdframed}
\usepackage{stmaryrd}
\usepackage{multicol}
\usepackage{graphicx}
\usepackage{todonotes}
\usepackage{mathtools}
\usepackage{etoolbox}
\usepackage[normalem]{ulem}
\usepackage{fontawesome}
\usepackage{times}
\usepackage{palatino}
\usepackage[all,knot,arc,import,poly]{xy}
\usepackage{tikz,tkz-euclide}
\usetikzlibrary{backgrounds,calc,shapes,shapes.geometric}
%\usepackage{subfig}
\usepackage{caption}
\usepackage{subcaption}
\captionsetup[subfigure]{justification=centering}
\usepackage{pdfpages}
\usepackage{wasysym}
\usepackage{minted}
%For todo notes, remove in final version
\setlength{\marginparwidth}{2cm}
\newcommand{\tinytodo}[2][]
{\todo[caption={#2}, size=\footnotesize, #1]{\renewcommand{\baselinestretch}{0.5}\selectfont#2\par}}
\newcommand{\critical}[1]{\todo[color=red]{\textbf{Critical:} #1}}
\newcommand{\important}[1]{\textcolor{red}{\textbf{\texttt{#1}}}}
%\newcommand{\newadd}[1]{\uline{#1}}
\newcommand{\newadd}[1]{#1}
\theoremstyle{plain}
\newtheorem{thm}{Theorem}[chapter]
\theoremstyle{definition}
\newtheorem{definition}[thm]{Definition}
\newtheorem{example}[thm]{Example}
\newtheorem{assumption}[thm]{Assumption}
\newtheorem*{remark}{Remark}
\newtheorem*{notation}{Notation}
\AtEndEnvironment{definition}{\hfill\qedsymbol}%put \null before \hfill?
\AtEndEnvironment{assumption}{\hfill\qedsymbol}
\AtEndEnvironment{remark}{\hfill\qedsymbol}
\AtEndEnvironment{notation}{\hfill\qedsymbol}
\AtEndEnvironment{example}{\hfill$\blacksquare$}
\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
\let\endchangemargin=\endlist
\newenvironment{intuition}{\begin{changemargin}{1cm}{1cm}}{\end{changemargin}}
%% Diagram commands
\newcommand{\diagram}[1]{\centerline{\xymatrix{#1}}}
\newcommand{\parens}[1]{\left(#1\right)}
\newcommand{\morph}[3]{\mbox{${#1} : {#2} \rightarrow {#3}$}}
%% Graph Grammars constructions
\newcommand{\graphrule}{\mbox{$p = \left(L \xleftarrow{l} K \xrightarrow{r} R\right)$}}
\newcommand{\ruleone}{\mbox{$p_1 = \left(L_1 \leftarrow K_1 \rightarrow R_1\right)$}}
\newcommand{\ruletwo}{\mbox{$p_2 = \left(L_2 \leftarrow K_2 \rightarrow R_2\right)$}}
\newcommand{\inversegraphrule}{\mbox{$p^{-1} = \left(R \xleftarrow{r} K \xrightarrow{l} L\right)$}}
\newcommand{\lefthand}{\mbox{$l : K \rightarrow L$}}
\newcommand{\righthand}{\mbox{$r : K \rightarrow R$}}
\newcommand{\nac}{\mbox{$n : L \rightarrow N$}}
\newcommand{\nacone}{\mbox{$n_1 : L_1 \rightarrow N_1$}}
\newcommand{\nactwo}{\mbox{$n_2 : L_2 \rightarrow N_2$}}
\newcommand{\rightnac}{\mbox{$n : R \rightarrow N$}}
\newcommand{\match}{\mbox{$m : L \rightarrow G$}}
\newcommand{\comatch}{\mbox{$m' : R \rightarrow H$}}
\newcommand{\rulesequence}{\mbox{$p_0,\ldots,p_{n-1},p_n$}}
\newcommand{\graphGrammar}{\mbox{$GG = \left(TG,I,P\right)$}}
%% Doubly-typed Graph Gramars constructions
\newcommand{\doublyTypedGraph}{\mbox{$G^{TG^{T}}$}}
\newcommand{\doublyTypedRule}{\mbox{$p^{TG^T} = \left(L^{TG^T} \leftarrow K^{TG^T} \rightarrow R^{TG^T}\right)$}}
\newcommand{\inverseDoublyTypedRule}{\mbox{$\parens{p^{TG^T}}^{-1} = \left(R^{TG^T} \leftarrow K^{TG^T} \rightarrow L^{TG^T}\right)$}}
\newcommand{\doublyTypedGraphGrammar}{\mbox{$GG = \left(TG^T, I^{TG^T},P \right)$}}
\newcommand{\doublyTypedGraphGrammarCore}{\mbox{\ensuremath{GG = \left(C^T, I^{C^T},P \right)}}}
\newcommand{\occurrenceGrammar}{\mbox{\ensuremath{OGG = \left(C^T, I^{C^T},A \right)}}}
\newcommand{\coreGraph}{\ensuremath{C^T}}
\newcommand{\action}{\mbox{$a = \left(L_a \xleftarrow{l} K_a \xrightarrow{r} R_a, L_a \xrightarrow{n_i} [N_i]\right)$}}
\newcommand{\initialGraph}{\mbox{\ensuremath{I^{\coreGraph}}}}
%% Category Constructions
\newcommand{\cat}[1]{\mbox{\ensuremath{\mathbf{#1}}}}
\newcommand{\typedGraphCategory}{\cat{TGraph_T}}
\newcommand{\doublyTypedGraphCategory}{\cat{DTGraph_{TG^T}}}
\newcommand{\code}[1]{\texttt{#1}}
\newcommand{\hide}[1]{}
\newcounter{doubly-typed-grammar-counter}
\addtocounter{doubly-typed-grammar-counter}{0}
% avoid LaTeX Font Warning: Font shape `U/stmry/b/n' undefined
\SetSymbolFont{stmry}{bold}{U}{stmry}{m}{n}
\title{Occurrence Graph Grammars with Negative Application Conditions}
\author{Santos Bezerra}{Jonas}
\advisor[Prof$^a$.]{Ribeiro}{Leila}
%\date{maio}{2001}
\location{Porto Alegre}{RS}
% itens individuais da nominata podem ser redefinidos com os comandos
% abaixo:
% \renewcommand{\nominataReit}{Prof\textsuperscript{a}.~Wrana Maria Panizzi}
% \renewcommand{\nominataReitname}{Reitora}
% \renewcommand{\nominataPRE}{Prof.~Jos{\'e} Carlos Ferraz Hennemann}
% \renewcommand{\nominataPREname}{Pr{\'o}-Reitor de Ensino}
% \renewcommand{\nominataPRAPG}{Prof\textsuperscript{a}.~Joc{\'e}lia Grazia}
% \renewcommand{\nominataPRAPGname}{Pr{\'o}-Reitora Adjunta de P{\'o}s-Gradua{\c{c}}{\~a}o}
% \renewcommand{\nominataDir}{Prof.~Philippe Olivier Alexandre Navaux}
% \renewcommand{\nominataDirname}{Diretor do Instituto de Inform{\'a}tica}
% \renewcommand{\nominataCoord}{Prof.~Carlos Alberto Heuser}
% \renewcommand{\nominataCoordname}{Coordenador do PPGC}
% \renewcommand{\nominataBibchefe}{Beatriz Regina Bastos Haro}
% \renewcommand{\nominataBibchefename}{Bibliotec{\'a}ria-chefe do Instituto de Inform{\'a}tica}
% \renewcommand{\nominataChefeINA}{Prof.~Jos{\'e} Valdeni de Lima}
% \renewcommand{\nominataChefeINAname}{Chefe do \deptINA}
% \renewcommand{\nominataChefeINT}{Prof.~Leila Ribeiro}
% \renewcommand{\nominataChefeINTname}{Chefe do \deptINT}
\keyword{Graph Grammars}
\keyword{Occurrence Graph Grammars}
\keyword{Negative Aplication Conditions}
\keyword{Semantics}
\input{conf/macros.tex}
\input{conf/listings.tex}
\input{conf/figures.tex}
\captionsetup[figure]{position=below,labelfont=bf}
\captionsetup[subfigure]{position=bottom}
\sloppy
\begin{document}
\hide{ Template for code snippets
\begin{figure}[!ht]
\caption{Colimit Implementation}
\begin{minted}[linenos=true, breaklines,fontsize=\small]{haskell}
\end{minted}
\label{fig:tests-colimit}
\end{figure}
}
\maketitle
\clearpage
% dedicatoria
\clearpage
\begin{flushright}
\mbox{}\vfill
{\sffamily\itshape
``Poste, kiam \^si pripensis la aferon,\\
\^si opiniis ke tio ja estis mirinda,\\
sed kiam \^gi okazis \^cio \^sajnis tute natura.''\\}
--- \textsc{Alico en Mirlando}
\end{flushright}
% agradecimentos
\chapter*{Acknowledgement}
I'm very happy with everything I've accomplished so far and although I still have a long way to go, I must thank some amazing people in my life without whom this path would be a lot harder, if not impossible.
First of all, I would like to thank Prof. Leila Ribeiro for giving me the opportunity to work with her even without previously knowing me: You are such an inspiring advisor and working with you always made me feel like I can improve myself and push me to the next level. Working with you was, at the same time, very challenging and joyful. I also need to thank professors Rodrigo Machado, Érika Cota and Lúcio Duarte, for always being there for conversations and feedback about this work, you were really a great help.
I owe a very special thank you to Calebe and Marília, for helping me settle in Porto Alegre when I knew nothing, nowhere and nobody here. You guys really made my life a lot easier.
To Andrei, Guilherme, Leonardo and Ana, my colleagues and friends, it was both an honour and a pleasure to work and live with you. I will always cherish our memories together as some of my favourites. To all the guys from lab 202, Diego, Fabi, Marcelo, Marina, Marlo, Felipe Tanus, Michele, Felipe Grando, Jéssica e Pedro: we need to go out more. To my very first friends in Porto Alegre, Shauna and Maurício, thank you for all the good moments.
To my old friends, Wendell, Gabriel, Malu and Jéssica, who were always by my side despite the 3178km of distance, your constant contact and kindness helped me through a lot of critical moments. I love you guys.
Ao meu irmão, Mateus, com quem eu sei que sempre posso contar e por quem eu sempre tentei dar o melhor de mim, de tal forma que ele tenha tanto orgulho de quem eu sou e da família que formamos: obrigado por me aceitar como eu sou.
Finalmente, para mainha, Dona Necila... eu jamais poderei expressar suficientemente o quão a senhora foi importante em todas as minhas conquistas até agora. A senhora sempre foi a pessoa que mais admiro na vida, por toda sua luta, dedicação e sacrifícios para dar a mim e aos meus irmãos todas as oportunidades que a senhora não teve. Esse mestrado é tão seu quanto meu. Vou te amar pra sempre.
\begin{abstract}
Graph Grammars are based on the application of rules that are able to modify graphs, as such, they provide a suitable formalism to model complex systems in an intuitive and precise manner, providing both a graphical language and a solid formal background for systems analysis. Therefore, they have been used in a wide range of applications within Computer Science, specially in the field of Model-Driven Development.
Particularly, the study of the Semantics of Graph Grammars, i.e. which graphs belong to the language of a grammar and which derivations are possible within the context of a grammar, provides a powerful framework for reasoning about the execution behaviour of systems modelled as Graph Grammars.
There are several different ways of specifying the Semantics of Graph Grammars.
One notable possibility is the use of Occurrence Graph Grammars, which encodes the Semantics in a structure that is also a Graph Grammar itself. Occurrence Graph Grammars differ from other semantic models such as Unfolding and Canonical Derivations mainly by providing a more compact, easier to analyse structure. They were introduced in the nineties and used ever since, however the original definitions lack the inclusion of Negative Application Conditions, additional structures imposed over the rules of a grammar to better tune their possible applications according to the execution context.
Given the important role Negative Application Conditions play in the modelling and analysis of complex systems as Graph Grammars nowadays, this thesis presents an extension of the framework of Occurrence Graph Grammars to include them. It also presents its implementation in Verigraph, a system specification and verification tool based on graph rewriting.
\end{abstract}
\begin{englishabstract}{Gramáticas de Grafos de Ocorrência com Condições Negativas de Aplicação}{Gramáticas de Grafos. Gramáticas de Grafos de Ocorrência. Condições Negativas de Aplicação. Semântica}
Gramáticas de Grafos baseiam-se na aplicação de regras que modificam grafos, fornecendo assim um formalismo adequado para a modelagem de sistemas complexos de forma intuitiva e precisa, além de fornecer uma notação gráfica descomplicada e uma base formal sólida para a análise de sistemas. Dados tais atributos, essas gramáticas possuem uma ampla gama de aplicações dentro da Ciência da Computação, especialmente no campo do Desenvolvimento Orientado a Modelos. Particularmente, o estudo da semântica de
Gramáticas de Grafos (isto é, quais grafos pertencem à linguagem da gramática e quais derivações são permitidas no contexto da gramática) provê uma poderosa ferramenta para compreender e analisar o comportamento de sistemas modelados como Gramáticas de Grafos. Existem diversas formas de especificar a semântica de Gramáticas de Grafos, uma delas é o uso de Gramáticas de Grafos de Ocorrência que codificam tal semântica em estruturas que também são, por sua vez, Gramáticas de Grafos.
O uso de Gramáticas de Grafos de Ocorrência ao invés de outros modelos semânticos, como por exemplo \emph{Unfolding} e Derivações Canônicas, possui a vantagem de fornecer uma estrutura mais compacta e fácil de analisar. Gramáticas de Ocorrência foram introduzidas nos anos noventa e utilizadas desde então, porém as definições originais não incluem o uso de Condições Negativas de Aplicação, estruturas adicionais anexadas às regras de uma gramática para refinar as possíveis aplicações das regras em determinados contextos. Dada a atual importância das Condições Negativas de Aplicação na modelagem de sistemas complexos, essa dissertação propõe uma extensão da teoria das Gramáticas de Grafos de Ocorrência de forma a
incluí-las, além de apresentar a implementação desta teoria no Verigraph, uma ferramenta de especificação e verificação de sistemas baseada em reescrita de grafos.
\end{englishabstract}
\begin{listofabbrv}{SPMD}
\item[DPO] Double Pushout
\item[GG] Graph Grammar
\item[GTS] Graph Transformation System
\item[GUI] Graphical User Interface
\item[NAC] Negative Application Condition
% \item[NC] Negative Atomic Constraint
\item[OGG] Occurrence Graph Grammar
% \item[PB] Pullback
% \item[PC] Positive Atomic Constraint
\item[PO] Pushout
\item[SPO] Single Pushout
\end{listofabbrv}
% \begin{listofsymbols}{$\alpha\beta\pi\omega$}
% \item[$\leftarrow$] Morphism
% \end{listofsymbols}
\listoffigures
\tableofcontents
\include{chapters/introduction}
\include{chapters/gts}
%\include{chapters/concurrent-rules}
\include{chapters/process}
\include{chapters/verigraph}
\include{chapters/generating-tests}
\include{chapters/related-work}
\include{chapters/conclusions}
\bibliographystyle{abntex2-alf}
\bibliography{biblio}
\appendix
\include{appendix/category-theory}
%\include{appendix/tutorial}
%\include{appendix/use-cases}
\end{document}