Open main menu

Changes

22 bytes removed ,  22:52, 26 May 2016
A procedure é chamada '''dual''' (naturalmente) e recebe como argumentos a expressão booleana formada usando as versões inertes dos operadores booleanos.
<pre>dual(false);
dual(true); dual(x &and y); dual(x &or (&not y &or &not x and &not (&not z)));</pre>
A beleza da dualidade é que, uma vez que você provar uma identidade booleana, você pode usar o '''dual''' a vontade!
e formular nossas expressões usando operadores inertes.
<pre>with(logic): # don't forget to define 'bequal'.
left := (x &and &not y) &or (y &and &not z) &or (z &and &not x); right := (&not x &and y) &or (&not y &and z) &or (&not z &and x); bequal(left, right);</pre>
Agora, nos usamos esta afirmação à vontade.
<pre>dual(left);
109

edits