Porta NAND – Wikipédia, a enciclopédia livre

 Nota: Se procura a memória flash do tipo NAND, veja Memória flash.

NAND ou Conectivo de Sheffer é um conectivo utilizado em lógica. Esse conectivo equivale à negação da conjunção, expressa usualmente como "não (algo)... e (algo)... ". Também conhecido como conectivo da negação alternativa, é verdadeiro se pelo menos um dos operandos for falso.

No âmbito da álgebra booleana e na eletrônica digital é conhecido como NAND ("não...e..."). É um dos operadores que, por si só, pode ser usado para expressar todas as funções booleanas que podem ser escritas na lógica proposicional. Juntamente com o NEM, é um dos dois operadores unários funcionalmente completos da lógica proposicional.

O conectivo NAND foi inventado por Henry M. Sheffer, que provou (Sheffer 1913) que todos os operadores comuns da lógica proposicional (não (not), e (and), ou (or), implicação, e os demais), podem ser expressos em termos do NAND. Charles Sanders Peirce (1880) descobriu esse fato mais de 30 anos antes, mas nunca publicou sua descoberta.

Definição[editar | editar código-fonte]

O NAND é uma operação lógica binária, através da qual normalmente, os valores de duas proposições produzem um valor falso se e somente se ambos seus operandos forem verdadeiros. Ou seja, o NAND produz um valor verdadeiro se, e somente se pelo menos um de seus operandos for falso.

Tabela Verdade[editar | editar código-fonte]

A tabela verdade de p NAND q (escrito também como ou ) é como segue:

NAND
A B S
0 0 1
0 1 1
1 0 1
1 1 0

Uma maneira usual de se expressar p NAND q é , onde o símbolo significa E a linha sobre a expressão significa NÃO, ou seja, se trata da negação lógica dessa expressão.

O NAND não é usado em sentenças do dia a dia porque gera uma confusão relacionada com uma dupla negação. Está aqui um exemplo do uso da sentença:

Operador NAND: Nós morreremos certamente se tivermos água “NAND” comida.

Termos comuns: Nós morreremos certamente se não tivermos comida e água.

ou ainda: Nós morreremos certamente se não tivermos comida e/ou água. (Este é mais comum em textos que na vida real)

Expressões equivalentes[editar | editar código-fonte]

Em termos de NAND, os outros operadores lógicos podem ser expressos como:

"não p" é equivalente a "p NAND p"
"p e q" é equivalente a "(p NAND q) NAND (p NAND q)"
"p ou q" é equivalente a "(p NAND p) NAND (q NAND q)"
"p implica q" é equivalente a "(p NAND q) NAND p"

Descrição do Hardware[editar | editar código-fonte]

As portas NAND são portas lógicas básicas que são reconhecidas na TTL e circuitos integrados CMOS.

Esse diagrama esquemático mostra como as portas NAND estão arranjadas na parte interna de um circuito integrado CMOS 4011.
  1. Entrada A1
  2. Entrada B1
  3. Saída Q1
  4. Saída Q2
  5. Entrada B2
  6. Entrada A2
  7. VSS
  8. Entrada A3
  9. Entrada B3
  10. Saída Q3
  11. Saída Q4
  12. Entrada B4
  13. Entrada A4
  14. VDD

Os sistemas digitais que empregam circuitos lógicos utilizam a propriedade de que todas as operações booleanas podem ser escritas através da porta NAND. Em algumas expressões lógicas mais complexas, normalmente escritas em função de outras funções lógicas tais como E(AND), OU (OR), e NÃO (NOT), se escritas em função de NAND têm um menor custo, porque a implementação desses circuitos usando essa porta gera um resultado mais compacto que as implementações normais.

Sistema Formal Baseado no Conectivo de Sheffer[editar | editar código-fonte]

Este é um exemplo de um sistema formal baseado inteiramente no conectivo de Sheffer, contudo tem expressividade funcional da lógica proposicional.

Símbolos[editar | editar código-fonte]

A B C D E F G '

( | )

O Conectivo de Sheffer possui a propriedade da comutatividade, porém não goza da associatividade. Todo o sistema formal que o inclui deve incluir também como estão agrupados os símbolos. Será empregado “(” e ”)” para representar esse agrupamento.

Gramática[editar | editar código-fonte]

As letras A, B, C, D, E, F e G são átomos. Quaisquer das letras que apareceram uma vez ou diversas vezes também são átomos (por exemplo, de A', B', C', D' são átomos).

Regra de Construção: Um átomo é uma fórmula bem formada (fbf).

Regra de Construção 2: Se X e Y são fórmulas bem formadas, então também o é.

Regra de Fechamento: Se uma fórmula não puder ser construída usando as definições da regra de Construção 1 e 2, ela não é uma fórmula bem formada.

Um procedimento da decisão para determinar se uma fórmula é bem formada pode ser descrito assim: "Decompõe-se" a fórmula, aplicando as regras de construção para trás, desse modo a fórmula é quebrada em subfórmulas menores; e repetir esse processo de decomposição a cada uma das subfórmulas; nota-se que esse passo é feito de maneira recursiva. Eventualmente, a fórmula deve ser reduzida aos seus átomos, porém, se alguma dessas subfórmulas não puder ser reduzida a um átomo, então não é uma fórmula bem formada.

Axiomas[editar | editar código-fonte]

Considere o seguinte axioma esquemático, no qual todas as metavariáveis são substituídas por fórmulas bem formadas:

   

Regras de Inferência[editar | editar código-fonte]

Substituição dos equivalentes: A fbf (fórmula bem formada) X contém uma ou mais instancias da subfórmula U. Se , então substituir uma ou mais instancias de U em X por V não altera o valor verdade de X. Em particular, se for um teorema, esse fato permanece após qualquer substituição de V por U.

Comutatividade:

Dualidade: Se as fórmulas e aparecerem em um teorema, então se forem substituídas uma pela outra em todas as vezes que aparecerem, o resultado disso também será um teorema.

Mimese:

Dupla Negação:

MP-1:

MP-2:

Nota: A fórmula tem a interpretação de . Modus Ponens é um caso especial de MP-1 e MP-2 quando V e X são idênticos.

Simplificação[editar | editar código-fonte]

Como o único conectivo desta lógica é "|", o símbolo poderia ser descartado completamente, deixando somente os parênteses para agrupar as letras. Um par dos parênteses deve sempre incluir um par das fbfs (fórmulas bem formadas). Exemplos nesta notação simplificada são:

(A(A(B(B((AB)(AB)))))) e (A(A((BB)(AA)))).

A notação pode ser simplificada ainda mais, deixando:

(U):= (UU)

((U)) := U

equivalente a qualquer U. Essa simplificação implica mudar algumas regras:

1. Mais de duas letras são permitidas entre parênteses.

2. Para letras ou fbfs entre parênteses é permitida a comutação.

3. Letras ou fbfs repetidas entre os mesmos conjuntos de parênteses podem ser eliminadas.

Ver também[editar | editar código-fonte]