Um Grafo Lógico é um tipo especial de estrutura da teoria dos grafos que Charles Sanders Peirce desenvolveu para a lógica.

Nos seus documentos sobre lógica quantitativa, grafos entitativos e grafos existenciais, Peirce desenvolveu várias versões de uns formalismos gráficos, ou linguagem formal grafo – teórica, designada para ser interpretada pela lógica.

Desde que Peirce iniciou esta linha de desenvolvimento, tem surgido uma série de sistemas formais os quais consistem na mesma base da estrutura da teoria dos grafos. Este artigo examina as bases em comum desse sistema formal a partir de uma “visão de águia”.

Ponto de vista abstrato

A “visão de águia” em questão é mais formalmente conhecida como a perspectiva de equivalência formal, da qual não se pode ver muita distinção significativa de um nível de abstração baixo. Em particular, expressões de formalismos diferentes cujas estruturas sintáticas são isomorfismos do ponto de vista da álgebra ou da topologia não são reconhecidas como sendo diferentes um da outra em qualquer sentido.

Introdução

Antes de mais nada, achamos por bem introduzir uma noção a duas transformações que serão utilizadas durante o texto, são elas:

o-----------------------------------------------------------o | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` `( ) ( )` ` ` = ` ` ` `( )` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | o-----------------------------------------------------------o | Denota a transformação de duas fórmulas em uma. ` ` ` ` ` | o-----------------------------------------------------------o

o-----------------------------------------------------------o | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` (( )) ` ` ` = ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | o-----------------------------------------------------------o | Denota a absorção das fórmulas. ` ` ` ` ` ` ` ` ` ` ` ` ` | o-----------------------------------------------------------o

Podemos nos referir a tais transformação como axiomas.

Dualidade, Lógica e Topológica

Há dois tipos de dualidade que devem ser vistos separadamente no uso de grafos lógicos, a dualidade lógica e a dualidade topológica. Existe um caminho padrão que grafos da ordem que Peirce considerou, aqueles encaixados em uma variedade contínua, geralmente representada como uma folha de papel plana, pode ser representada em texto linear chamado parse strings ou traversal strings e representados por ponteiros na memória do computador.

Uma folha de papel em branco pode ser representada em texto linear por um espaço em branco, mas esse tipo de representação tende a ser confuso a menos que a expressão lógica em consideração seja colocada em um canto separado.

Por exemplo, considere o axioma desenhado em formato caixa logo abaixo:

` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o-----------o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | o-------o | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` | | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` | | ` ` ` = ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` | | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | o-------o | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o-----------o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `

Isso pode ser escrito em texto linear como “(( )) =”, ou como segue:

(( )) =

Note que o sentido entre as duas representações foi mantido.

Quando representamos as expressões correspondentes na memória do computador, onde elas podem ser representadas com maior facilidade, começamos transformando os grafos planares em seus duais topológicos. As regiões planas dos grafos originais correspondem aos nós (ou pontos, representado aqui por um “o” interno) do grafo dual, e as divisas entre regiões planas no grafo original correspondem aos fios (ou linhas) entre os nós do grafo dual.

Por exemplo, sobrepondo o grafo dual correspondente ao grafo mostrado acima, obtemos a seguinte figura:

` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o-----------o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | o-------o | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` | | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` o ` | | ` ` ` = ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` | ` | | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | o---|---o | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` o ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o-----|-----o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` O ` ` ` ` ` ` = ` ` ` ` O ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `

Podemos remover a região externa de forma a deixá-la representada pelo nó raiz do grafo dual (“o”). Extraindo o grafo dual da sua matriz composta, obtemos a figura abaixo:

` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` O ` ` ` ` ` = ` ` ` ` ` O ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `

É fácil de ver o relacionamento entre as expressões dos grafos lógicos de Peirce e os grafos duais associados, os quais correspondem a um arraigado de nós formando um tipo de árvore.

No caso do nosso último exemplo, se refletirmos a cerca da figura seguinte, veremos que podemos pegar o parêntese correspondente começando da raiz da árvore, subindo pelo lado esquerdo da árvore até encontrar o topo, depois descendo pelo lado direito até voltar à raiz, enquanto isso lendo os símbolos, nesse caso em particular tanto “(” quanto “)”, que encontraremos no percurso.

o-----------------------------------------------------------o | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` ` o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` ( | ) ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` ` o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` ( | ) ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` ` O ` ` ` ` = ` ` ` ` O ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | o-----------------------------------------------------------o | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` (( )) ` ` ` = ` ` ` ` ` ` ` ` ` ` ` ` ` ` | | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | o-----------------------------------------------------------o

Esse ritual é conhecido como percurso de árvore, e a string de fim de leitura é freqüentemente chamada string de percurso da árvore. O processo inverso, que passa da string para a árvore, é chamado análise da string, e a árvore construída, grafo analisado da string.

Tratamos até agora com alguns detalhes, várias formas do axioma que é formulado na forma de string como “(( )) =”. Por comparação, vamos lembrar das formas plana e dual do axioma que é formulado na forma de uma string como “( )( ) = ( )”.

Primeiro a forma plana: ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o-------o ` ` ` o-------o ` ` ` ` ` ` ` o-------o ` ` ` ` ` ` | ` ` ` | ` ` ` | ` ` ` | ` ` ` ` ` ` ` | ` ` ` | ` ` ` ` ` ` | ` ` ` | ` ` ` | ` ` ` | ` ` ` = ` ` ` | ` ` ` | ` ` ` ` ` ` | ` ` ` | ` ` ` | ` ` ` | ` ` ` ` ` ` ` | ` ` ` | ` ` ` ` ` ` o-------o ` ` ` o-------o ` ` ` ` ` ` ` o-------o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `

A seguir a forma plana e dual sobrepostas:

` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o-------o ` ` ` o-------o ` ` ` ` ` ` ` o-------o ` ` ` ` ` ` | ` ` ` | ` ` ` | ` ` ` | ` ` ` ` ` ` ` | ` ` ` | ` ` ` ` ` ` | ` o ` | ` ` ` | ` o ` | ` ` ` = ` ` ` | ` o ` | ` ` ` ` ` ` | ` `\` | ` ` ` | `/` ` | ` ` ` ` ` ` ` | ` | ` | ` ` ` ` ` ` o-----\-o ` ` ` o-/-----o ` ` ` ` ` ` ` o---|---o ` ` ` ` ` ` ` ` ` `\` ` ` ` `/` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` \ ` ` ` / ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` `\` ` `/` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` \ ` / ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` `\`/` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` O ` ` ` ` ` ` ` ` ` = ` ` ` ` ` O ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `

E finalmente a forma dual:

` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o ` ` ` ` ` ` ` o ` ` ` ` ` ` ` ` ` ` ` o ` ` ` ` ` ` ` ` ` ` `\` ` ` ` ` ` `/` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` \ ` ` ` ` ` / ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` `\` ` ` ` `/` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` \ ` ` ` / ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` `\` ` `/` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` \ ` / ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` `\`/` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` O ` ` ` ` ` ` ` ` ` = ` ` ` ` ` O ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `

Temos, a partir de agora, material suficiente para pensar sobre as formas da analogia, iconicidade, metáfora, morfismo, como queira chamar, que são pertinentes ao uso de grafos lógicos nas suas várias interpretações lógicas, por exemplo, aquelas que Peirce descreveu como grafos entitativos e grafos existenciais.

Representação computacional

Ao analisarmos o grafo o qual nos detemos ate agora, podemos ver que ele nos leva um passo em direção aos grafos de ponteiros que são usados para construir árvores na memória do computador, no entanto, tais passos ainda se mostram abstratos para sugerimos com detalhes as estruturas de dados dinâmicas que nos são necessárias.

Nos em um grafo descrevem registros em memória de computador. Um registro é uma coleção de dados que pode ser considerados como residentes de um endereço especifico. Um endereço pode ser considerado como um tipo de índice.

Como próximo nível, vamos representar um registro de nó como mostrado abaixo:

` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o-----------------------------o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | dado_1 dado_2 dado_3 ... | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o-----------------------------o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ^ ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | endereço_0 ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `

Isso descreve a circunstância na qual endereço_0 é o endereço do registro em questão o qual contém os seguintes dados:

dado_1, dado_2, dado_3 e assim por diante.

O que torna possível a representação de estruturas grafo - teóricas como estruturas de dados em memória é o fato de que um endereço é apenas mais um dado, sendo assim podemos ter a seguinte circunstância:

` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o-----o o-----o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | ... | | ... | ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o-----o o-----o ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ^ ` ` ` ^ ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` o---------------------|-------|-----------o ` ` ` ` ` ` ` ` | dado_1 dado_2... endereço_1 endereço_2 .| ` ` ` ` ` ` ` ` ` o-----------------------------------------o ` ` ` ` ` ` ` ` ` ^ ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` | endereço_0 ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `