Graph Grammars: A Comparison between Verification Methods

10
Gram´ atica de Grafos: um comparativo de etodos de verificac ¸˜ ao Andr´ e Moura de Mello, Luiz Carlos Lemos Junior, Luciana Foss, Simone Andr´ e Costa Cavalheiro 1 Centro de Desenvolvimento Tecnol´ ogico – Universidade Federal de Pelotas (UFPEL) Caixa Postal 354 - 96010-900 - Pelotas, RS - Brasil {ammello,lclemos,lfoss,simone.costa}@inf.ufpel.edu.br Abstract. Graph grammars are a formal specification language well-suited to applications in which states have a complex topology (involving not only many types of elements, but also different types of relations between them) and in which behaviour is essentially data-driven, that is, events are triggered basically by particular configurations of the state. Many reactive systems are examples of this class of applications, such as protocols for distributed and mobile sys- tems, simulation of biological systems, and many others. Graph grammars can be analysed through model-checking and theorem proving. Each verification technique has arguments for and against its use, but we can say that model- checking and theorem proving are complementary. The main aim of this paper is to present the existing approaches for the analysis of graph grammars con- sidering each one of these techniques, describing a brief comparative between them. Resumo. Gram´ atica de grafos ´ e uma linguagem de especificac ¸˜ ao formal bas- tante adequada para a descric ¸˜ ao de sistemas cujos estados possuem uma topologia complexa (que envolvem v´ arios tipos de elementos e diferentes tipos de relac ¸˜ oes entre eles) e cujo comportamento ´ e essencialmente orientado a da- dos, isto ´ e, eventos s˜ ao disparados por configurac ¸˜ oes particulares do estado. arios sistemas reativos s˜ ao exemplos desta classe de aplicac ¸˜ oes, como pro- tocolos para sistemas distribu´ ıdos e m´ oveis, simulac ¸˜ ao de sistemas biol´ ogicos, entre outros. Gram´ atica de grafos podem ser analisadas atrav´ es das t´ ecnicas de verificac ¸˜ ao de modelos e de prova de teoremas. Cada t´ ecnica tem argumentos pr´ o e contra o seu uso, mas ´ e poss´ ıvel dizer que a verificac ¸˜ ao de modelos e a prova de teoremas s˜ ao complementares. O objetivo deste artigo ´ e o de apresen- tar as principais abordagens existentes para a an´ alise de gram´ atica de grafos dentro de cada uma destas t´ ecnicas, trac ¸ando um comparativo entre elas. 1. Introduc ¸˜ ao A cada dia nos deparamos com sistemas mais complexos e com hardwares cada vez mais sofisticados. A tarefa de especificar um software ou um hardware ao ´ e algo natural. Di- versas t´ ecnicas e metodologias s˜ ao utilizadas para fazer essas especificac ¸˜ oes. O fato das ecnicas difundidas no mercado permitirem gerar resultados diferentes do que foi especifi- cado fez com que surgisse a necessidade de utilizar m´ etodos formais para especificac ¸˜ ao e verificac ¸˜ ao de sistemas. Neste caso, o sistema de software ou de hardware ´ e especificado

Transcript of Graph Grammars: A Comparison between Verification Methods

Gramatica de Grafos: um comparativo demetodos de verificacao

Andre Moura de Mello, Luiz Carlos Lemos Junior,Luciana Foss, Simone Andre Costa Cavalheiro

1Centro de Desenvolvimento Tecnologico – Universidade Federal de Pelotas (UFPEL)Caixa Postal 354 - 96010-900 - Pelotas, RS - Brasil

{ammello,lclemos,lfoss,simone.costa}@inf.ufpel.edu.br

Abstract. Graph grammars are a formal specification language well-suited toapplications in which states have a complex topology (involving not only manytypes of elements, but also different types of relations between them) and inwhich behaviour is essentially data-driven, that is, events are triggered basicallyby particular configurations of the state. Many reactive systems are examplesof this class of applications, such as protocols for distributed and mobile sys-tems, simulation of biological systems, and many others. Graph grammars canbe analysed through model-checking and theorem proving. Each verificationtechnique has arguments for and against its use, but we can say that model-checking and theorem proving are complementary. The main aim of this paperis to present the existing approaches for the analysis of graph grammars con-sidering each one of these techniques, describing a brief comparative betweenthem.

Resumo. Gramatica de grafos e uma linguagem de especificacao formal bas-tante adequada para a descricao de sistemas cujos estados possuem umatopologia complexa (que envolvem varios tipos de elementos e diferentes tiposde relacoes entre eles) e cujo comportamento e essencialmente orientado a da-dos, isto e, eventos sao disparados por configuracoes particulares do estado.Varios sistemas reativos sao exemplos desta classe de aplicacoes, como pro-tocolos para sistemas distribuıdos e moveis, simulacao de sistemas biologicos,entre outros. Gramatica de grafos podem ser analisadas atraves das tecnicas deverificacao de modelos e de prova de teoremas. Cada tecnica tem argumentospro e contra o seu uso, mas e possıvel dizer que a verificacao de modelos e aprova de teoremas sao complementares. O objetivo deste artigo e o de apresen-tar as principais abordagens existentes para a analise de gramatica de grafosdentro de cada uma destas tecnicas, tracando um comparativo entre elas.

1. IntroducaoA cada dia nos deparamos com sistemas mais complexos e com hardwares cada vez maissofisticados. A tarefa de especificar um software ou um hardware nao e algo natural. Di-versas tecnicas e metodologias sao utilizadas para fazer essas especificacoes. O fato dastecnicas difundidas no mercado permitirem gerar resultados diferentes do que foi especifi-cado fez com que surgisse a necessidade de utilizar metodos formais para especificacao everificacao de sistemas. Neste caso, o sistema de software ou de hardware e especificado

formalmente atraves de um modelo matematico, isto e, atraves de uma linguagem formalque possui sintaxe e semantica bem definidas. E a verificacao formal permite garantirpropriedades deste sistema descrito atraves da linguagem formal.

Gramatica de grafos [?] e uma linguagem formal bastante adequada para sistemascujos estados possuem uma topologia complexa (que envolvem varios tipos de elementose diferentes tipos de relacoes entre eles) e cujo comportamento e essencialmente orientadoa dados, isto e, eventos sao disparados por configuracoes particulares do estado. Variossistemas reativos sao exemplos desta classe de aplicacoes, como protocolos para sistemasdistribuıdos e moveis, simulacao de sistemas biologicos, entre outros. A ideia basicadeste formalismo consiste em modelar um estado de um sistema com um grafo (grafo-estado) e as possıveis mudancas de estado com regras (cujos lados direito e esquerdo saografos). O comportamento operacional do sistema e descrito via aplicacao das regras aosgrafos, detalhando o estado atual do modelo. Regras operam localmente no grafo-estado,de forma que diversas regras podem ser aplicadas simultaneamente.

Gramatica de grafos e considerada uma linguagem atraente de especificacaoporque alem de ser formal e baseada em um mecanismo simples, mas poderoso para descr-ever comportamento. Ao mesmo tempo ela tem um layout grafico interessante, que per-mite mesmo os nao-teoricos entenderem uma especificacao. Devido ao seu estilo declar-ativo (usando regras), concorrencia pode ser descrita naturalmente em uma especificacao:se regras nao estao em conflito (nao tentam atualizar uma mesma porcao do estado simul-taneamente), elas podem ser aplicadas em paralelo (nao e necessario dizer explicitamentequais regras devem ocorrer concorrentemente). Consequentemente, gramatica de grafospode ser vista como um formalismo adequado para se obter uma descricao clara e com-preensıvel de sistemas concorrentes [?].

A analise de sistemas especificados em gramatica de grafos pode ser realizadaatraves da tecnica de verificacao de modelos [?] e de prova de teoremas [?]. A tecnicade verificacao de modelos tem como entrada um modelo finito representando o sistemae uma propriedade a ser verificada neste modelo, e entao uma busca exaustiva no espacode estados permite decidir se a propriedade e valida no modelo dado. O processo e au-tomatico, em muitos casos eficiente e pode ser utilizado para verificar especificacoes par-ciais. Embora esta tecnica constitua um metodo de analise bastante importante, ela temcomo desvantagem a necessidade de construir o espaco de estados completo do sistema,o que pode levar ao problema da explosao de estados [?].

Alem da verificacao de modelos, a prova de teoremas constitui outra tecnicaconsolidada para verificacao formal. Nesta tecnica tanto o sistema quanto suas pro-priedades sao expressas em alguma logica. O processo de prova consiste em encon-trar uma prova a partir dos axiomas e lemas intermediarios do sistema. Este processo esemi-automatico, isto e, alguns passos da prova sao realizados automaticamente, poremrequerem intervencao humana para ser completada. Cada tecnica tem argumentos pro econtra o seu uso, mas e possıvel dizer que a verificacao de modelos e a prova de teoremassao complementares. A maioria das abordagens utilizam verificadores de modelos paraanalisar propriedades de computacoes, isto e, sobre a sequencia de passos de um sistema.Propriedades sobre estados alcancaveis so sao verificadas de forma restrita. Ja a tecnicade prova de teoremas se mostra adequada a prova de propriedades estruturais sobre osestados alcancaveis de um sistema, permitindo a prova para sistemas com um espaco de

estados infinito.

O objetivo deste artigo e o de apresentar as principais abordagens existentes paraa analise de gramatica de grafos dentro de cada uma das tecnicas, verificacao de modelose prova de teoremas, tracando um comparativo entre elas. A secao 2 apresenta uma brevedescricao das duas tecnicas de analise consideradas. A secao 3 apresenta o formalismo degramatica de grafos, juntamente com um exemplo. A secao 4 descreve as principais abor-dagens existentes para analise de gramatica de grafos atraves de cada uma das tecnicas,bem como faz um resumo comparativo das propostas apresentadas. A secao 5 destacaalgumas conclusoes e trabalhos futuros.

2. Verificacao de Modelos versus Prova de TeoremasVerificacao automatica de modelos (model-checking - termo mais encontrado na liter-atura) e prova de teoremas sao metodologias muito utilizadas para verificacao formal desistemas de software e hardware, as quais buscam certificar o comportamento especifi-cado em linguagem matematica. Para isso, e criado um modelo que parte de abstracoesdo sistema no mundo real e o descreve claramente [?, ?].

Existem inumeras linguagens para a especificacao de um modelo dentro da tecnicade model-checking, as quais podem ser interpretadas por ferramentas denominadas model-checkers. De uma maneira geral, o modelo construıdo e traduzido para uma maquina deestados finitos (grafo) que simula o comportamento do sistema. Neste grafo, os verticescorrespondem aos estados em que o sistema podera se encontrar durante a sua execucaoe as arestas correspondem as mudancas de um estado para outro. Problemas como aexplosao de estados e a representacao de modelos com numero infinito de estados im-pedem que esta tecnica seja aplicada a muitas classes de problemas [?, ?]. No entanto,quando aplicavel, a verificacao de modelos permite constatar se em algum momento dasua execucao, as transicoes entre estados podem levar o modelo a um estado inaceitavel(que contraria as regras de especificacao do modelo).

A verificacao e executada automaticamente sem a intervencao do usuario, sendoque para isso, deve-se construir o modelo e especificar as propriedades que se deseja veri-ficar. De uma maneira geral, o processo de verificacao e bastante simples, a barreira maioresta em descrever as propriedades a serem verificadas (geralmente usando logica tempo-ral), o que demanda certa experiencia para essa etapa. Quando o verificador de modelosacaba o processo de verificacao, se nao encontrar nenhuma violacao das propriedades, aresposta da ferramenta e que o modelo satisfaz todas as propriedades especificadas. Casocontrario, ele geralmente aponta onde existem caminhos que nao satisfazem o que foiespecificado, fornecendo contra-exemplos para ajudar na depuracao do problema.

Como o numero de estados de um sistema normalmente e exponencial ao tamanhoda sua descricao, a principal desvantagem da verificacao de modelos e o problema deexplosao de estados. Sabe-se que existem algumas maneiras de contornar o problema[?, ?, ?]. Muito progresso foi feito para lidar com essa dificuldade, e muitas tecnicassurgiram com essa finalidade. Podem ser citadas algumas delas [?]: abstracao, tecnicade reducao por ordem parcial, representacao simbolica, entre outros. No entanto, estesmetodos geralmente derivam o modelo como uma sub ou super-aproximacao do compor-tamento do sistema, o que pode resultar em relatorios de erro ou relatorios de verificacaoque nao mostram a realidade do sistema por tratar de aproximacoes do comportamento.

Prova de teoremas e uma tecnica em que tanto o sistema como as propriedadesdesejadas sao descritas como formulas em uma logica matematica. Um sistema formaldefine o sistema de software ou hardware, estabelecendo um conjunto de axiomas e regrasde inferencia. O processo de verificacao consiste em encontrar a prova da propriedadenecessaria a partir de axiomas ou lemas intermedios [?]. A prova de teoremas permitelidar diretamente com espaco de estados infinito, pois se baseia em tecnicas de provacomo a inducao estrutural que permite a prova sobre domınios infinitos. A desvantagemdesta tecnica e que, em geral, as provas sao semi-automatizadas e o usuario, para auxiliarnas provas, deve ter um conhecimento avancado sobre a ferramenta e sobre o sistema queesta sendo especificado.

Uma estrategia de prova comumente utilizada para a verificacao de propriedadesquando aplicada a tecnica de prova de teoremas e a inducao matematica. Apos especi-ficado o sistema a ser analisado como um sistema formal, utilizando logica matematica,a propriedade e especificada tambem usando formulas logicas. O processo de prova erealizado da seguinte maneira: inicialmente a propriedade e verificada para o caso base(em geral o que define o estado inicial do sistema) e entao e verificada se a propriedadee preservada pela aplicacao das regras de inferencia. Usualmente estas provas nao saoconcluıdas de forma automatica e o usuario deve auxiliar o provador de teoremas que estasendo utilizado: ou adicionando novas hipoteses ou fazendo simplificacoes algebricas, ouenunciando e provando propriedades intermediarias, entre outros.

Importante salientar que, quando esta tecnica de prova e utilizada, as propriedadessao enunciadas em logica de primeira (ou possivelmente de alta) ordem e devem serpreservadas por todos os estados alcancaveis do sistema. Nao e usual fazer provas de pro-priedades temporais quando se adota esta tecnica de analise. As propriedades provadastratam sobre caracterısticas dos estados alcancaveis e nao das possıveis computacoes.

Diversas propostas propoem integrar estes dois metodos de verificacao [?, ?, ?,?, ?], de forma a explorar as vantagens de cada um deles. Existem pelo menos duasabordagens principais em que esta integracao pode ser realizada: na primeira, busca-seadicionar tecnicas de prova de teoremas dentro de verificadores de modelos, de forma apermitir que um numero grande de estados possam ser verificados; na segunda, procura-seimplementar algoritmos de verificacao automatica de modelos nos provadores de teore-mas, permitindo que com a mesma abstracao para a definicao do sistema, uma maiorvariedade de propriedades possa ser analisada. Algumas propostas [?, ?], utilizam osdois metodos de analise, isto e, especificacoes grandes sao divididas em componentesmenores, cujas correcoes locais sao feitas com verificadores automatico de modelos e acorrecao da composicao, que dizem respeito a correcao global do sistema, e feita com oauxılio de provadores de teoremas.

3. Gramatica de Grafos

Na especificacao de sistemas [?] as fabricas e agencias de desenvolvimento de software,adotaram o padrao criado pela OMG (Object Management Group) que e a UML (Uni-fied Modeling Language). Esses modelos nao sao descritos matematicamente e podemgerar alguns problemas de projeto. A linguagem natural e outras tecnicas de modelageme especificacao geram, na maioria das vezes, especificacoes ambıguas, inconsistentes eincompletas [?].

Gramatica de Grafos (GG) [?] e uma linguagem formal e tambem intuitiva deespecificacao, a qual e definida atraves conceitos matematicos. Esse formalismo e con-veniente para aplicacoes complexas (com varios tipos de elementos e tambem diferentesrelacoes entre eles) e em que o comportamento e essencialmente orientado a dados, ouseja, os eventos sao acionados basicamente por configuracoes especıficas do estado.

A ideia basica de GG e modelar os estados de um sistema na forma de grafos eusar regras de transformacao de grafos para descrever as transicoes de um estado paraoutro. O comportamento do sistema e descrito atraves de aplicacoes destas regras nosgrafos que modelam os estados reais do sistema. Uma regra define elementos que devemestar presentes no grafo para que ela possa ser aplicada. Alem disso, uma regra defineas alteracoes realizadas pela sua aplicacao: alguns elementos sao eliminados e outros saocriados. E possıvel que uma ou mais regras estejam habilitadas em um mesmo estado,deste modo, pode-se descrever comportamentos paralelos e concorrentes.

De forma geral, um sistema descrito por gramatica de grafos e composto por umgrafo tipo, caracterizando os tipos de vertices e arcos permitidos no sistema; um grafoinicial, representando o estado inicial do sistema; e um conjunto de regras, que descreveas possıveis mudancas de estados que podem ocorrer. Uma regra possui um lado es-querdo e um lado direito, os quais sao descritos por grafos, e um morfismo parcial degrafos que conecta estes grafos de forma compatıvel (por exemplo, respeitando o mapea-mento dos vertices origem e destino no mapeamento de arcos) e determina o que deve sermodificado pela aplicacao da regra. Dependo das condicoes impostas por estas regras,elas podem ou nao ser mutuamente exclusivas. Se forem, uma delas deve ser escolhidanao-deterministicamente para ser aplicada. O estado inicial tem a funcao de restringira computacao e os estados alcancaveis permitidos no sistema. Todos os grafos-estadosdevem ser rotulados por um grafo tipo via morfismos de grafos. Isto permite que algunsestados inconsistentes sejam excluıdos pela compatibilidade de tipagem.

O comportamento do modelo e determinado pela aplicacao de regras aos grafosque representam o estado atual do sistema a partir do grafo inicial. A aplicacao de umaregra a um grafo so e possıvel se houver um match, isto e, uma ocorrencia do lado es-querdo da regra no grafo estado. A interpretacao operacional da aplicacao de uma regrae a seguinte: itens do lado esquerdo que nao tem imagem no lado direito sao removidos;itens do lado esquerdo que sao mapeados para o lado direito sao preservados; itens dolado direito que nao tem uma pre-imagem no lado esquerdo sao criados.

Geralmente, a semantica de gramaticas de grafos e definida como o conjunto detodas as computacoes que podem ser realizadas usando as regras da gramatica, a partir doestado inicial. Gramaticas de grafos tem sido utilizadas como linguagem de especificacaonas mais diversas aplicacoes, como geracao e reconhecimento de imagem, sistemas dis-tribuıdos, analise de comportamento de falhas, modelos de banco de dados, computacaode DNA, composicao musical, linguagens de programacao, entre outras.

Para exemplificar o uso de GG para a especificacao formal, mostra-se a aplicacaoem uma rede que usa o protocolo Token Ring. Esse protocolo e utilizado para controlaro acesso de varias estacoes a um meio de transmissao compartilhado, em uma rede quetem a topologia de anel. De acordo com esse protocolo, um padrao especial, denomi-nado token, e transmitido de estacao em estacao em apenas uma direcao. Quando uma

estacao quer enviar algum conteudo pela rede, ela espera pelo token, retem ele, e envia amensagem pelo anel. A mensagem circula no anel de forma que todas as estacoes podemcopiar o seu conteudo. Quando a mensagem completa o ciclo, ela e recebida pela estacaooriginal, a qual remove a mensagem do anel e envia o token para a proxima estacao, reini-ciando o ciclo. Se apenas um token existe, somente uma estacao pode estar transmitindonum instante de tempo. E modelado um protocolo em um ambiente em que novas estacoespodem ser adicionadas a qualquer instante. A Figura 1, ilustra a GG para este exemplo.

Figura 1. Gramatica de Grafos para o Token Ring

O grafo tipo T define um unico tipo de vertice (Estacao), e cinco tipos de arcos,(Mensagem), (Token), (Conexao), (Estacao Ativa) e (Estacao em Espera). representauma estacao na rede e define uma porcao de dados. As estacoes sao conectadas por arcosdo tipo . O representa um sinal especial o qual permite que uma estacao inicie umatransmissao. Cada estacao ou esta ativa (), significando que ela esta transmitindo umamensagem pela rede, ou esta em espera (). So pode existir uma estacao ativa no anel acada instante de tempo. O grafo inicial G0 define um anel com tres estacoes. Inicialmenteo Token esta em uma estacao especıfica e nenhuma estacao esta transmitindo informacaopela rede (todas as estacoes tem um arco ).

O comportamento do protocolo e modelado pelas regras. Na representacaografica, usualmente o morfismo nao e representado explicitamente; assume-se que ositens do grafo esquerdo sao mapeados para itens com o mesmo nome no lado direito.Uma estacao em espera com um arco token pode reter este arco e enviar uma mensagem,tornando-se uma estacao ativa (regra α1), ou pode passar o token para a proxima estacao(regra α2). Quando uma mensagem e recebida por uma estacao em espera, a regra α3pode ser aplicada e a mensagem e repassada para a proxima estacao. Se a estacao querecebe o token esta ativa, entao a regra α4 pode ser aplicada, removendo a mensagem doanel e enviando o token para a proxima estacao. Regra α5 e aplicada para inserir novasestacoes no anel. Este modelo tem um espaco de estados infinito e gera um numero in-finito de computacoes, uma vez que pode-se ter sempre uma nova estacao no grafo-estado.Se eliminarmos a regra α5, o espaco de estados do modelo se torna finito.

4. Metodos de Verificacao para GGNesta secao e feita uma breve descricao das principais abordagens propostas para averificacao de gramatica de grafos, utilizando model-checking ou prova de teoremas.

4.1. Verificacao de Modelos para GG

Diversos metodos e ferramentas foram propostos para permitir a aplicacao da tecnica demodel-checking para o formalismo de gramatica de grafos.

GROOVE (GRaphs for Object-Oriented Verification) [?] e uma ferramenta quepermite a especificacao direta do sistema em gramatica de grafos e a partir dela, gera oespaco de estados do modelo. Instanciando uma propriedade em logica temporal (LTL ouCTL), o sistema de transicao resultante e verificado de forma automatica. A ferramentapermite que sejam definidos grafos com atributos (integrando tipos de dados nos grafos) etambem condicoes de aplicacoes negativas, descrevendo estruturas proibidas na aplicacao

de uma regra (o que muitas vezes aumenta a expressividade da regra). Uma das desvan-tagens no uso de tal ferramenta e que ela nao fornece o contra-exemplo, quando umapropriedade e violada. Outra questao, abordada em [?] e que o GROOVE nao competeem tempo de execucao com outros verificadores de modelos estabelecidos, como SPIN[?] por exemplo.

Por essa razao, uma estrategia comum que tem sido adotada e a traducao degramatica de grafos em linguagens que sao entradas de verificadores de modelos estabele-cidos. Neste caso, os principais passos para a verificacao de especificacoes em gramaticasde grafos sao [?]: i) traduz-se a especificacao para um modelo de verificacao que servecomo entrada de um model checker; ii) definem-se as propriedades em alguma logicatemporal; iii) verifica-se cada propriedade no modelo (model-checking); iv) analisam-seos resultados.

Foss [?] propoe uma traducao de uma classe especıfica de gramatica de grafos,Gramatica de Grafos Baseada em Objetos (GGBO) para π-calculus [?]. GGBOs incor-poram conceitos como comunicacao por troca de mensagens e encapsulamento, que per-mitem a descricao de sistemas baseados em objetos. A partir deste metodo, verificadoresautomaticos (por exemplo, HAL [?] e Mobility Workbench [?]) podem ser usados paraa verificacao automatica. A compatibilidade semantica da traducao pode ser encontradaem [?]. No entanto, como destacado em [?], alguns problemas foram encontrados nestaabordagem: os modelos tiveram que ser consideravelmente restritos, de forma que a es-trutura interna dos objetos nao puderam ser representadas e tambem limitacoes foramencontradas no uso dos verificadores existentes (em especial, no suporte ao operador dereplicacao do π-calculus). Como resultado, apenas exemplos pequenos podem ser verifi-cados atraves desta abordagem.

Outra proposta [?] traduz especificacoes GGBO para PROMELA (PRO-cess/PROtocol MEta LAnguage), linguagem de entrada do verificador SPIN (SimplePromela INterpreter). SPIN [?] e uma ferramenta bastante eficiente (em termos de tempode processamento) e permite que propriedades sejam especificadas em logica tempo-ral. Contra-exemplos sao fornecidos quando as propriedades sao violadas. Entretanto,esta abordagem permite que sejam provadas somente propriedades baseadas em eventos.Verificacao de propriedades baseadas em estados somente e possıvel para especificoescom um numero estatico de objetos. Para especificacoes com criacao dinamica de objetos,seria necessario criar dinamicamente novas variaveis globais (caracterıstica nao suportadapela ferramenta). Entao, esta proposta se mostra adequada para provar propriedades sobrepossıveis derivacoes de GGBOs.

Uma outra abordagem [?] propoe uma extensao de gramatica de grafos paramodelar explicitamente restricoes de tempo, permitindo a verificacao automatica de pro-priedades atraves do verificador UPPAAL [?]. Nesta proposta, a semantica de sistemasde tempo real especificados em gramatica de grafos e definida em termos de automatostemporizados [?], linguagem de entrada do UPPAAL. A linguagem para especificacaode propriedades nesta ferramenta e um subconjunto de TCTL (CTL Temporizada) [?, ?].No entanto, a traducao da gramatica especificada para o automato temporizado, emboradefinida, deve ser feita de forma manual.

Paolo Baldan and Barbara Konig propoem [?] aproximar o comportamento de sis-

temas de transformacao de grafos (GTSs) usando uma cadeia finita de sub-aproximacoesou de super-aproximacoes, num nıvel k de precisao do unfolding completo do sistema.Um GTS e um conjunto finito de regras de grafos. Entao, uma gramatica de grafospode ser vista como um GTS com um estado inicial. A semantica de unfolding deuma gramatica de grafos [?] define um modelo operacional de computacao que repre-senta todas suas possıveis derivacoes sequenciais e concorrentes (isto e, todas as suascomputacoes). Ela e geralmente infinita para sistemas nao triviais, e portanto nao podeser diretamente verificada por model-checking. As sub-aproximacoes do comportamentode uma gramatica de grafos sao obtidas truncando o comportamento do unfolding ateuma profundidade finita k. As super-aproximacoes sao alcancadas construindo um grafo-Petri (que constitui uma rede de Petri [?] com uma estrutura de hipergrafo nos lugares)ate uma profundidade k (a k-cobertura). Uma rede de Petri ou rede de transicao euma das varias representacoes matematicas para sistemas distribuıdos discretos. Umacobertura representa todas as possıveis computacoes (mas possivelmente mais). As sub-aproximacoes nao permitem executar todas as computacoes do sistema original, por trun-car as derivacoes e as super-aproximacoes nao permitem verificar propriedades do tipo“existe uma execucao”, devido a presenca de execucoes que nao ocorrem. No entanto,diversas outras propriedades podem ser verificadas em cada caso e uma ferramenta paraanalise de GTs (AUGUR) usando as super-aproximacoes esta em desenvolvimento [?].

4.2. Prova de Teoremas para GG

Ate o momento, apenas uma abordagem [?, ?] foi proposta para permitir a prova de teo-remas de gramatica de grafos. O trabalho propoe uma aboragem logica e relacionalpara gramatica de grafos, provendo uma codificacao de grafos e regras com relacoes.As relacoes que definem uma gramatica definem axiomas que podem ser utilizados nasprovas. Condicoes logicas (usando logica de primeira ordem e teoria dos conjuntos) im-postas sobre as relacoes garantem que elas codificam grafos e morfismos de grafos. Estascondicoes sao declaradas como invariantes do modelo. A aplicacao de uma regra e de-scrita por um evento que pode ser visto como uma regra de inferencia: quando um con-junto de variaveis satisfaz condicoes de guarda (o que garante a existencia de um matchem um grafo-estado), a aplicacao de regra e realizada.

As propriedades a serem provadas devem ser declaradas como invariantes (pro-priedades estruturais a serem provadas sobre todos os estados). O metodo de provautilizado e o de inducao matematica: no caso base, a propriedade e verificada para ografo inicial e entao, no passo indutivo, a propriedade e verificada para cada regra dagramatica aplicavel a um grafo alcancavel (considerando, por hipotese de inducao, que apropriedade e valida para o grafo alcancavel). O processo de prova e semi-automatico,exigindo interacao com o usuario. Ele procede ate que um teorema auxiliar seja requerido;neste caso, este teorema deve ser demonstrado antes de retornar a prova do objetivo origi-nal. Em muitos casos, a prova de uma propriedade depende da prova de um outro conjuntode propriedades e teoremas. Entretanto, todos os teoremas auxiliares podem ser usadoscomo regras de simplificacao, podendo ser reutilizados em provas futuras.

A abordagem relacional foi definida para o caso de grafos tipados simples e es-tendido para grafos com atributos e gramaticas com condicoes de aplicacao negativas [?].A proposta para grafos simples foi traduzida para estruturas event-B [?], o que permitiuo uso dos provadores disponıveis para event-B (atraves da plataforma Rodin [?]) para o

desenvolvimento das provas.

4.3. Analise Comparativa dos Metodos de VerificacaoOs metodos de verificacao para modelos descritos em gramatica de grafos apresenta-dos neste artigo apresentam pros e contras que devem ser levados em conta quando sedeseja escolher um deles. A Tabela 1 sumariza as principais caracterısticas que difer-enciam as abordagens previamente descritas. Nesta tabela, sao destacados os metodosde verificacao disponıveis para cada abordagem: model-checking (MC) ou prova de teo-remas (PT); os tipos de sistemas com os quais cada abordagem pode lidar: sistemas deestados finitos (EF) ou sistemas de estados infinitos (EI); os tipos usados de gramaticas degrafos: GG tipadas (Tipos), GG com atributos (Atrib.), GG com condicoes de aplicacaonegativas (NACs) e GG temporizadas (Tempo); as linguagens usadas para especificar aspropriedades a serem verificadas: logicas CTL (Computation Tree Logic), TCLT (TimedComputation Tree Logic), ACTL (Action Computational Tree Logic), LTL (Linear Tem-poral Logic) [?], [?] e µ-Calculus [?], alem de logica de primeira ordem (Log. 1aord.) e teoria dos conjuntos (Teo. conj.); os tipos de propriedades verificadas: sobreas computacoes (Comp) ou sobre as estruturas dos estados (Est); as abordagens que re-alizam verificacao diretamente sobre a gramatica de grafos (Sim) e aquelas que usamalgum tipo de traducao para outra linguagem (Nao); as abordagens que possuem ferra-mentas disponıveis para especificacao (Espec), verificacao (Verif) e simulacao (Sim); e asabordagens que fornecem uma interface grafica para a especificacao das gramaticas.

Tabela 1. Comparativo entre metodos de verificacao para gramatica de grafosGROOVE AUGUR SPIN Mobility UPPAAL Rodin

WorkbenchVerificacao MC MC MC MC MC PTTipo de Sistema EF EI (aprox.) EF EF EF EITipos de Tipos Atrib. Tipos Tipos Tipos TiposGramaticas NACs Atrib. Atrib. Atrib.

Tempo NACsLinguagem de CTL, LTL LTL, ACTL LTL µ-Calculus TCLT Log. 1a ord.especificacao Teo. conj.de propriedadesTipos de propr. Comp Comp Comp Comp Comp Est

Est (limit.)Analise direta Sim Nao Nao Nao Nao Naosobre GGsSuporte de Espec Espec Espec Verif Verif Verifferramentas Verif Verif Verif

Sim SimInterface grafica Sim Sim (AGG) Sim Nao Nao Naode especificacao

Aspectos como tipo do sistema e propriedades a serem verificadas, familiari-dade com as ferramentas e linguagens de especificacao sao importantes para a escolhado metodo. Pode-se destacar como pontos fortes das abordagens para verificacao demodelos a realizacao automatica das provas, sem necessidade de intervencao do usuario.Alem disso, a abordagem do GROOVE fornecem uma ferramenta que lida diretamentecom a especificacao de gramatica de grafos. Alem disso, prova de propriedades sobre

as computacoes so esta disponıvel para as abordagens de model-checking. A principaldesvantagem esta no problema de explosao de estados quando os sistemas tornam-semaiores. Esta restricao algumas vezes torna inviavel o uso destas abordagens para sis-temas reais. Com a abordagem aproximativa proposta por [?], pode-se tambem verificaralguns tipos de propriedades, ainda que limitadas, para sistemas com um numero infinitode estados.

Para a abordagem da plataforma Rodin, tem-se como principal vantagem a possi-bilidade de provas sobre sistemas infinitos ou com um numero muito grande de estados.Como desvantagem, tem-se a necessidade da intervencao do usuario para completar asprovas, o que requer conhecimentos da logica e dos metodos de provas usados na ferra-menta. Alem disso, a traducao da gramatica de grafos para o Event-B nao e automatizada.

5. ConclusoesNeste artigo apresentamos um comparativo entre os metodos de verificacao para sistemasdescritos usando gramatica de grafos. Neste comparativo, foram analisadas as principaisabordagens existentes para GGs bem como as ferramentas que dao suporte a elas. Nestaanalise, ficou claro que uma abordagem que possa usufruir dos pontos fortes de cada umdos metodos pode ser bastante interessante, visto que em alguns aspectos um e comple-mentar ao outro, como por exemplo nos tipos de propriedades. Como trabalhos futurospretendemos estudar a possibilidade de integrar de alguma forma model-checking e provade teoremas em um framework para especificacao e verificacao formal de gramatica degrafos.