Você está na página 1de 9

UNIVERSIDADE FEDERAL DE ALAGOAS

INSTITUTO DE COMPUTAÇÃO
LÓGICA APLICADA À COMPUTAÇÃO

A LÓGICA MODAL

Daniel Vassalo
França Mac Dowell
Gabriel Barbosa
Lucas Amorim
Lucas Raggi

Professor Doutor Fábio Paraguaçu


OUTONO DE 2017
Sumário

I. História da Lógica Modal......................................................................................................3


II. Definição de Lógica Modal...................................................................................................4
III. Simbologia, operações e axiomas.........................................................................................4
IV. A problemática.....................................................................................................................7
V. Aplicações............................................................................................................................7
VI. Conclusão.............................................................................................................................9
VII. Bibliografia...........................................................................................................................9

A LÓGICA MODAL – LÓGICA APLICADA À COMPUTAÇÃO – OUTONO DE 2017 2


I. História da Lógica Modal

A lógica modal surgiu pioneiramente com os trabalhos do matemático Hugh MacColl, que foi o
primeiro a trabalhar com a definição de lógica modal, em sua obra “Symbolic Logic and its
Applications” (1906). Nesta obra ele lançou as bases do que viria a ser a lógica modal e seu
trabalho foi sucedido pelo filósofo Clarence Irving Lewis.
Em 1918, Lewis fez um estudo mais sistemático da lógica modal em sua obra “A Survey of
Symbolic Logic”. Motivado principalmente pelo seu desejo de excluir a implicação material,
que permitia que um consequente verdadeiro se seguisse de um antecedente falso. Lewis então
desenvolveu o conceito de “implicação estrita” que não permite que antecedentes falsos
impliquem em consequentes verdadeiros. Lewis também se utilizou de um novo operador modal
unário que indica a possibilidade, cuja representação é um losango. Atualmente a proposta
inicial de Lewis não é aceita, hoje tem-se que o operador “necessidade”, cuja representação é
um quadrado, é um operador primitivo e que o operador de “possibilidade” é um derivado deste.
Também houveram estudos no âmbito fenomenológico com lógica modal, sendo Oskar Becker
o precursor desta ramificação, com sua obra “Zur Logik der Modalitäten” (1930).
Em 1932, C. I. Lewis aparece novamente junto com C. H. Langdorf para trazer a primeira
formalização clara da lógica modal na obra “Symbolic Logic”. Sendo essa a primeira grande
referência deste assunto.
No entanto, nem todos que se deparavam com a lógica modal acreditavam que ela fosse vingar.
Como é o caso do fundador da lógica formal moderna, Gottlob Frege, que duvidava que a lógica
modal fosse ser viável. Contudo, dois de seus mais conhecidos leitores, Rudolf Carnap e Kurt
Gödel, contrariaram Frege e escolheram buscar a estrutura matemática de uma lógica que
lidasse com as três modalidades clássicas: possibilidade, necessidade e probabilidade.
No decorrer do século XX foram propostos vários sistemas lógicos, que foram essenciais para o
estabelecimento da lógica modal. Alguns desses sistemas são: Sistema T, proposto por Robert
Feyes em 1937; Sistema M (elaborado sobre o Sistema T), proposto por Georg Henrik von
Wright em 1951; Sistemas S1, S2, S3, S4 e S5 (elaborados sobre o Sistema M), propostos por
C. I. Lewis em 1932 e desenvolvidos na década de 1950 pelo mesmo. O estudo de tais sistemas
levou a novos desenvolvimentos até que desenvolveu-se o Sistema Modal Normal Mínimo K,
proposto pelo filósofo Saul Kripke. Tal sistema é baseado na lógica de mundos possíveis e
tornou-se padrão em lógica modal, inaugurando a era atual desta lógica.

Figura 1: Linha do tempo com respeito ao desenvolvimento da lógica


modal

A LÓGICA MODAL – LÓGICA APLICADA À COMPUTAÇÃO – OUTONO DE 2017 3


II. Definição de Lógica Modal

A lógica modal trabalha com expressões que tratam de modos, tais como probabilidade, tempo,
poder, dever, etc. Sendo os modos mais trabalhados nesta lógica: possibilidade e necessidade.
Ela representa as modalidades utilizando operados modais (operadores unários). Que devido as
duas modalidades mais trabalhadas, surgiram dois novos operadores: o operador
“possibilidade”, representado por um losango, e o operador “necessidade”, representado por um
quadrado.

III. Simbologia, operações e axiomas

Lógica proposicional modal


Antes de começarmos a falar da análise da Lógica Proposicional Modal (LPM), vale a pena
ressaltar que a Lógica Modal não precisa estabelecer-se uma discussão filosófica do conceito de
“mundos possíveis”. No entanto, muitos filósofos e lógicos entraram nesse conflito filosófico e
descreveram inúmeras interpretações sobre “mundos possíveis”, como, por exemplo, Kripke,
David Lewis, Stalnaker, Armstrong, entre outros. O fundamental para a lógica modal e para o
objetivo deste trabalho é entender que este tipo de lógica é primitiva e nos preocuparemos em
falar da semântica. Lógica Proposicional Modal desenvolveu uma sintaxe e uma semântica,
assim como a Lógica Proporcional Clássica (LPC). Se acreditarmos que a LPM é um ramo da
LPC, podemos avançar neste trabalho adotando as noções lógicas primitivasem da LPC como
negação, conjunção, disjunção inclusiva, equivalência material, implicação material, e
adicionando agora as noções de possibilidade e necessidade. O símbolo de possibilidade é
representado pelo diamante “◇” e o símbolo de necessidade pela caixa “□”. Assim, ◇α
representa “é possível que α” e □α representa “é necessário que α”. Vale a pena ressaltar que a
LPM não só trabalha com possibilidade e necessidade, ela pode trabalhar também com noções
de conhecimento, crença, tempo, provabilidade, mudança e obrigação.

Os sistemas de lógica modal


Temos agora o problema de estender o cálculo proposicional e chegar a um sistema de lógica
modal. De início, devemos começar acrescentando o símbolo ◇, que para nós significa ‘é
possível que’. Acrescentamos então as regras de formação a seguinte: Se U é uma fórmula bem
formada, então ◇U também o é. O símbolo □p é abreviação de ¬◇¬p. Dessa forma, □p
significa que não é verdade que não p seja possível. Ou seja, p é necessário. Para começar a
pensar em Lógica Modal, devemos afirmar quais são as propriedades que essa lógica deve ter.
Antes disso, como compreendemos as modalidades? Bom, compreendemos as modalidades
como absolutas e não relativas. Assim, queremos que uma fórmula necessária seja aquela
logicamente necessária. Em outras palavras, aquilo que é um teorema no sistema lógico é
necessário. Para explicar tal idéia, vamos acrescentar a seguinte regra de transformação:

A LÓGICA MODAL – LÓGICA APLICADA À COMPUTAÇÃO – OUTONO DE 2017 4


Necessitação: Se U é um teorema, então □U é um teorema. Essa regra de transformação
simplesmente transforma a ideia primordial que queremos para a palavra ‘necessário’ e será
adotada em qualquer sistema de lógica modal que considerarmos. Outra propriedade que será
considerada fundamental é a ‘Lei de Aristóteles’, que diz que de uma implicação estrita
(necessária) e uma premissa necessária resulta numa consequência necessária. Em símbolos,
□(p ⊃ q) ⊃ (□p ⊃ □q). Esse axioma é chamado de axioma K.
Agora iremos analisar outras propriedades que queremos que nossos sistemas tenham e procurar
os axiomas com os quais pretendemos estender nosso sistema básico K.
É aceitável que o que é necessário é válido (□p ⊃ p). No entanto, dependendo do que queremos
que o nosso sistema traduza, a propriedade acaba sendo inadequada. Por exemplo, se quisermos
que □p signifique ‘é obrigatório que p’, não é razoável aceitar que o que é obrigatório vá
acontecer. Definindo □p dessa forma, ◇p = ¬□¬p significa ‘não é verdade que a negação de p
seja obrigatória’, ou seja, ‘p é permitido’. Em um tal contexto, é tranquilo aceitar como regra
que o que é obrigatório é permitido (□p ⊃ ◇p). Como nenhuma das duas propriedades
representa algo que temos até o momento, cada uma delas pode ser anunciada como axioma e
elas são denomidadas T e D, respectivamente.
T = □p ⊃ p
D = □p ⊃ ◇p
Uma proposição é contingente quando ela é possível e sua negação também é possível. Vamos
trabalhar um pouco com o conceito de contingência. Usando o símbolo ∇ para denominar
contingência, isso quer dizer, em termos matemáticos, com a seguinte definição: ∇p = ◇p ∧
◇¬p. Usaremos o símbolo ∆ para denominar não-contingência. Então, ∆p = ¬∇p.
Intuitivamente, contingente é o que é possível e cuja negação também é possível. Assim,
necessário é aquilo que é verdadeiro e não poderia ser falso. Com outras palavras, é aquilo que é
verdadeiro e não é contingente. É de se esperar, que 2p ≡ (p ∧ ∆p) seja um teorema. Mas será
que pode-se assumir ∇ como operador primitivo e definir ◇ e □ a partir dele? Para isso,
devemos ter a equivalências ◇p ≡ (p ∨ ∇¬p), o que equivale a □p ≡ (p ∧ ∆p). Chamemos de E a
segunda equivalência. O teorema a seguir nos dará uma resposta:
Teorema: O axioma T é equivalente em K à equivalência E = (2p ≡ (p ∧ ∆p)).
Demonstração usando LMP:

- T ⊃E

Antes, independentemente de T , (□p ∧ p) ⊃ □p e □p ⊃ □p são teoremas. Assim, □p ⊃ p é


equivalente a (□p ∧ p) ≡ □p.

Vamos então à demonstração:

(1)□p ≡ (> ⊃ (p ∧ □p))


[(1) segue da equivalência que mencionamos acima e da equivalência p ≡ (> ⊃ p)]

A LÓGICA MODAL – LÓGICA APLICADA À COMPUTAÇÃO – OUTONO DE 2017 5


(2)□p ≡ (⊥ ∨ (p ∧ □p))
[(2) segue de (1) e da equivalência (p ⊃ q) ≡ (¬p ∨ q)]

(3)□p ≡ ((p ∧ □¬p) ∨ (p ∧ □p))


[(3) segue de (2) e do fato de que (p ∧ □¬p) é uma contradição (já que foi determinado que T ),
equivalente, a ⊥]

(4) □p ≡ (p ∧ (□p ∨ □¬p))


[(4) segue de (3) e da equivalência (p ∨ (q ∧ r)) ≡ ((p ∨ q) ∧ (p ∨ r))]

((5))□p ≡ (p ∧ ∆p)
[(5) segue de (4) e da definição de ∆, pois (□p ∨ □¬p) ≡ ¬(¬□p ∧ ¬□¬p) ≡ ¬(◇¬p ∧ ◇p)]

-E⊃T
(1)□p ⊃ (p ∧ ∆p)
[A implicação segue da equivalência que determinamos]

(2)(p ∧ ∆p) ⊃ p
(3)□p ⊃ p
[(3) segue de (1) e (2) por Modus Ponens]

Com isso, é provado que assumir T é equivalente a assumir como teorema a citada definição
intuitiva de necessidade a partir de contingência. Então, se quisermos estender o cálculo
proposicional a partir de ∇ ao invés de ◇, precisamos assumir T , porém, em algumas situações,
pode não ser tão bom o fazer. Portanto, assumir ∇ como primitivo não é conveniente. Isso fecha
a discussão e demonstramos como funciona o Cálculo Proposicional da Lógica Modal.

A LÓGICA MODAL – LÓGICA APLICADA À COMPUTAÇÃO – OUTONO DE 2017 6


IV. A problemática

“Como a lógica modal pode ajudar nas mais diversas aplicações computacionais?”
Uma das grandes vantagens da lógica modal é que ela é adaptável, ela pode mudar de acordo
com o modo que ela está sendo usada, por exemplo, em um sistema de recomendação, cujo
programa vai sugerir produtos ao usuário de acordo com o que ele acessou no programa, com a
lógica modal nós poderíamos de acordo com o que o usuário visitou, fazer sugestões usando o
modo de possibilidade (se usuário x acessou um video do estilo y musical, é possível que ele
também se interesse em outras música do estilo y musical). Tendo em vista a dinamicidade da
lógica modal, poderíamos melhorar ainda mais o sistema de recomendação, entre os diversos
modos possíveis de usar, poderíamos usar o modo temporal, pois o que o usuário está acessando
nesse momento, ele pode não o querer acessar semana que vem por exemplo, ou seja, sugerir o
mesmo tipo de conteúdo para o usuário porque ele acessou o mesmo algumas vezes seria
inviável.
Percebemos que ao querer tentar fazer um sistema de recomendação para o usuário, não é
possível achar um padrão que satisfaça todos, por isso o sistema deve ser personalizado para
cada pessoa, ou seja, não é possível usar a lógica binária. É preciso de uma lógica que leve em
consideração diversos fatores para então fazer um sugestão. Devido a essas condições, a lógica
modal é excelente para programas que trabalham com os gostos do usuário, pois as pessoas não
são previsíveis.

V. Aplicações

A lógica modal é parte importante da computação, entretanto isso talvez não fique claro à
primeira vista. Visamos aqui clarificar as aplicações dessa lógica na vida real, em especial na
computação, pois é nosso objeto de estudo. Apenas para início de conversa, a lógica modal é
parte importante em diversas áreas da computação, como Inteligência Artificial, Sistemas
distribuídos ou linguagens.
Na Inteligência Artificial, um operador modal é usado para descrever o que cada agente em um
grupo sabe. Entretanto podem existir vários agentes, o que acarreta vários operadores, o que
sairia do nosso escopo de lógica uni-modal. Encontramos uma aplicação importante também em
teste de programas, nesse caso, com a lógica temporal, que é um estilo modal usado tipicamente
para teste de programas, já que estes não podem retornar à instâncias do tempo que já tenham
passado. Essa lógica (temporal) é especialmente conhecida no campo de programação paralela.
O tempo de execução de processos simultâneos precisa ser coordenado precisamente para
garantir que a integridade das informações compartilhadas entre esses processos seja mantida.
Um exemplo prático disso é quando precisamos trabalhar com threads ao criar um programa. E
veja que mesmo as linguagens de mais alto nível, como C# ou Java, fazem diversos alertas ao
utilizar threads. Uma solução incorreta ou mal programada pode acarretar em incosistências
gravíssimas ao fluxo padrão do programa, assim como pode não fazer nada, tudo depende do
estado atual da máquina. E é exatamente por isso que um planejamento inicial é importante,
para que essas inconsistências jamais ocorram.

A LÓGICA MODAL – LÓGICA APLICADA À COMPUTAÇÃO – OUTONO DE 2017 7


Outro ponto em que a aplicação da lógica modal é de suma importância é na modelagem de
sistemas. Quando se projeta um sistema do zero, certamente existem vários estados em que esse
sistema pode estar, e dependendo das ações a serem tomadas, podemos transitar entre outros
estados. Um exemplo prático disso é um autômato finito do projeto de um eletrodoméstico,

Figura 2: Autômato finito determinístico de um forno de microondas


como por exemplo o autômato abaixo, que demonstra o funcionamento de um forno de
microondas.
Por fim, os sistemas reativos, que são um conjunto de princípios para criar sistemas modernos
preparados para enfrentar a crescente demanda que as aplicações recebem hoje, também têm a
lógica modal em seus fundamentos. Esses sistemas foram pensados por volta dos anos 70-80,
mas foi por volta da última década que a indústria da tecnologia foi forçada a repensar as suas
práticas para desenvolvimento de sistemas empresariais e começou a aprender como aplicar os
conhecimentos de sistemas reativos no atual mundo de multi processamento, internet das coisas
e computação na nuvem.
Sistemas são complexo por padrão. E para entregar sistemas em que usuários ou empresas
possam tê-los como dependência, é necessário que eles sejam resposivos. O sistema deve
entregar o conteúdo solicitado, quando lhe é solicitado, não depois. Para obter essa
responsividade, utilizamos os conceitos de resiliência, em que a responsividade é mantida
mesmo na ocorrência de falhas e elasticidade, onde a responsividade é mantida mesmo quando
o sistema está operando perto dos limites (próximo de uma sobrecarga, mas não nela ainda).
Essas são características dos sistemas reativos, que funcionam através de mensagens, ao invés
de eventos. A lógica modal é importante aqui em seu conceito de possibilidade. Se um módulo
do sistema falhar, o resto deve continuar operando, devido a resiliência. Então se uma tarefa não
puder ser cumprida por condições adversas, o sistema deve ter a autonomia e capacidade para
verificar se outros módulos podem concluí-la, e caso não seja possível, delegar a tarefa para o
componente supervisor, que tratará do problema daí em diante. Veja que a falha de um módulo
não acarreta na parada de todo o sistema, isso é importantíssimo principalmente em sistemas
grandes, onde uma parada geral pode ser catastrófica. Infelizmente vemos exemplos desse tipo

A LÓGICA MODAL – LÓGICA APLICADA À COMPUTAÇÃO – OUTONO DE 2017 8


de coisa ocorrendo com sistemas legados a todo momento, mas tudo caminha para que um dia
todos os sistemas tenham já aplicados os discutidos conceito de resiliência e elasticidade.

VI. Conclusão

Portanto conclui-se que a lógica modal é sim útil na computação, tendo em vista sua
flexibilidade e a dinamicidade que ela possibilita a variados tipos de sistemas, haja visto, como
mostrado durante o trabalho, suas vantagens em relação a outros tipos de lógicas. Vantagens
essas derivadas principalmente do fato de que a lógica modal lida com modalidades (modos
quanto a tempo, possibilidade, probabilidade), tendo como principais as de possibilidade e
necessidade, possibilitando uma computação adaptável, ou seja, diferente para cada usuário, o
que é importantíssimo já que cada usuário tem seu gosto e suas preferências, o que gera a
dinamicidade citada anteriormente (pois para cada usuário há um tipo diferente de tela, de
sugestão, do que for tratado).
Com isso, foi-se visto que, na computação, ela é mais usada na inteligência artificial (fato
derivado da própria definição de lógica modal que é, em resumo, o estudo do comportamento
dedutivo de expressões que tratam de modos), e em sistemas de recomendação (por causa das
modalidades principais trabalhadas, as de possibilidade e necessidade e em como elas
possibilitam uma computação adaptável). Mas o que não a impede de ser usada em outras áreas
da computação tais como em sistemas distribuídos, em Labeled transition systems (LTSs), entre
outros.
Logo, como dito anteriormente, a lógica modal é sim muito importante para a computação e
deveria ser mais estudada e implementada em diversos tipos de sistemas.

VII. Bibliografia

 P. N. Melo, Breno; Felipe, Diego; J. Medeiros, Diego; R. M. Silva, Igor; Paulo do C. Confessor,
João; C. Pinheiro, Lorena. Lógica Modal. Disponível em:
<http://aquilesburlamaqui.wdfiles.com/local--files/logica-aplicada-a-
computacao/texto_modal.pdf>. Acesso em 28 de Março de 2017;
 Lamberrt, Leight; Hemaspaandra, Edith. Modal Logic in Computer Science. Disponível em:
<http://www.cs.brandeis.edu/~cs112/cs1122004/newReadings/ModalLogicInCS.pdf>. Acesso
em 12 de Abril de 2017;
 G.E. Hughes; M.J. Cresswell, Routledge. A new introduction to Modal Logic, 1996. Acesso em
14 de Abril de 2017;
 W. A. Carnielli; C.Pizzi, Springer. Modalities and Multimodalities, 2008. Acesso em 15 de Abril
de 2017;
 P. Gouveia; F.M. Dionísio; J.Marcos. Lógica Computacional, 2000. Acesso em 15 de Abril de
2017
 Stanford Encyclopedia of Philosophy. Disponível em: <https://plato.stanford.edu/entries/logic-
modal>. Acesso em 16 de Abril de 2017;
 C. Coscarelli, Bruno. Introdução a Lógica Modal. Acesso em 29 de Abril de 2017;
 Reactive Programming vs Reactive Systems. Jonas Bonér e Viktor Klang. Disponível em
<https://www.oreilly.com/ideas/reactive-programming-vs-reactive-systems >. Acesso em 16 de
Abril de 2017.

A LÓGICA MODAL – LÓGICA APLICADA À COMPUTAÇÃO – OUTONO DE 2017 9

Você também pode gostar