Hayward's notes for CMPUT 272

based on the text by Bender and Williamson plus some extra stuff




formal system


sudoku


induction

simple induction example


collatz


beans


boolean functions


truth table

p q r   f(p,q,r)
0 0 0      0
0 0 1      1
0 1 0      0
0 1 1      1
1 0 0      0    
1 0 1      0
1 1 0      1
1 1 1      0

boolean operators

p q   ~p ~q p∧q p∨q p⊕q p→q p←q p↔q
00  11 00 0 11 1
01  10 01 1 10 0
10  01 01 1 01 0
11  00 11 0 11 1

boolean operator precedence


number of n-variable boolean functions?


0,1,2-variable boolean functions

0 variable ? f( ) = ...

1-variable ?   f(x) = ...

2-variable ?   f(x,y) = ...


boolean algebraic rules

~~p = p double negation
p∧~p = 0   p∨~p = 1 negation
p∧0 = 0   p∧1 = p   p∨0 = p   p∨1 = 1 bound
p ◊ (p ∗ q) = p absorption
p ◊ p = p idempotent
p ◊ q = q ◊ p commutative
(p ◊ q) ◊ r = p ◊ (q ◊ r) associative
p ◊ (q ∗ r) = (p ◊ q) ∗ (p ◊ r) distributive
~(p ◊ q) = ~p ∗ ~q DeMorgan
◊ = ∧/∨   ∗ = ∨/∧

bool. fn. repn. thm.

any boolean function can be expressed

proof (sketch)


bool. fn. truth table

p q r  f(p,q,r)
0 0 0     0
0 0 1     1
0 1 0     0
0 1 1     1
1 0 0     0
1 0 1     0
1 1 0     1
1 1 1     0

with variables, ( ), ~ ∨ ∧

let
a = (~p ∧ ~q ∧ r)
b = (~p ∧ q ∧ r)
c = (p ∧ q ∧ ~r)
then f(p,q,r)
=a ∨ b ∨ c
= (~p ∧ ~q ∧ r) ∨ (~p ∧ q ∧ r) ∨ (p ∧ q ∧ ~r)

without ∨

f(p,q,r)
=a ∨ b ∨ c
=~~(a ∨ b ∨ c)
=~(~a ∧ ~b ∧ ~c)
= ~ ( ~(~p ∧ ~q ∧ r) ∧ ~(~p ∧ q ∧ r) ∧ ~(p ∧ q ∧ ~r) )

without ∧

f(p,q,r)
=a ∨ b ∨ c
=~~a ∨ ~~b ∨ ~~c
=~(~a) ∨ ~(~b) ∨ ~(~c)
= ~(p ∨ q ∨ ~r) ∨ ~(p ∨ ~q ∨ ~r) ∨ ~(~p ∨ ~q ∨ r)

dnf and cnf


from tabular to cnf

p q r  f(p,q,r)
0 0 0     0
0 0 1     1
0 1 0     0
0 1 1     1
1 0 0     0
1 0 1     0
1 1 0     1
1 1 1     0
~f(p,q,r)= v ∨ w ∨ x ∨ y ∨ z
where v= (~p ∧ ~q ∧ ~r)
w= (~p ∧ q ∧ ~r)
x= (p ∧ ~q ∧ ~r)
y= (p ∧ ~q ∧ r)
z= (p ∧ q ∧ r)   so
~~f(p,q,r)= ~(v ∨ w ∨ x ∨ y ∨ z)
= ~v ∧ ~w ∧ ~x ∧ ~y ∧ ~z
= (p ∨ q ∨ r)   ∧
(p ∨ ~q ∨ r)   ∧
(~p ∨ q ∨ r)   ∧
(~p ∨ q ∨ ~r)   ∧
(~p ∨ ~q ∨ ~r)  

from dnf to cnf


positional number systems: decimal


positional number systems: binary

  • binary   (base 2)
    110110012 =
    1 × 27 + 1 × 26 + 0 × 25 + 1 × 24 + 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20  

    positional number systems: base b

    6253017 =
    6 × 75 + 2 × 74 + 5 × 73 + 3 × 72 + 0 × 71 + 1 × 70  

    arbitrary d-digit base b number, say
    (xd-1 xd-2 ... x2 x1 x0)b =
    Σk=0d-1 (bk × xk)   =
    xd-1 × bd-1 + xd-2 × bd-2 + ... + x2 × b2 + x1 × b1 + x0 × b0  


    common number systems


    convert decimal-to-(base b)

    110110012
    = 1 × 27 + 1 × 26 + 0 × 25 + 1 × 24 + 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20  
    = 1 × 128 + 1 × 64 + 0 × 32 + 1 × 16 + 1 × 8 + 0 × 4 + 0 × 2 + 1 × 1  
    = 21710

    check work with calculator


    convert (base b)-to-decimal

  • repeat: add digit, multiply by base

    6253017 = ?10

    17 = 1

    017 = 1 + 7*(0)

    3017 = 1 + 7*(0 + 7*(3) )

    53017 = 1 + 7*(0 + 7*(3 + 7*(5) ) )

    ...

    6253017 = 1 + 7*(0 + 7*(3 + 7*(5 + 7*(2 + 7*(6) ) ) ) ) = 10750710


    convert binary to hexadecimal

    1101011101001100010101002 =

    1101 0111 0100 1100 0101 01002 =

    D 7 4 C 5 416 =