Basicamente, a lei de Morgan fala pra distribuir o “not” ou “!” em expressões booleanas.

 

Exemplo:

 

!(lVarA .Or. lVarB .Or. lVarC)   =>  (!lVarA) .And. (!lVarB) .And. (!lVarC)

 

ou

!(lVarA .And. lVarB .And. lVarC)   =>  (!lVarA) .Or. (!lVarB) .Or. (!lVarC)

 

Isto facilita a compreensão, pois a maioria das vezes é confuso traduzir essas operações na cabeça, principalmente quando envolvem dupla negação (a negação de uma variável False).

 

A aplicação da regra consiste simplesmente em distribuir a negação e trocar o .AND. por .OR. (e vice-versa).

  • Sem rótulos