Exercise relationalgebra.cnf

Description
To conjunctive normal form

Rules for relationalgebra.cnf

Rule nameArgsUsedSiblingsRewrite rule
relationalgebra.absorp0yesr ∩ (r ∪ s)   ⇒   r
r ∩ (s ∪ r)   ⇒   r
(r ∪ s) ∩ r   ⇒   r
(s ∪ r) ∩ r   ⇒   r
r ∪ (r ∩ s)   ⇒   r
r ∪ (s ∩ r)   ⇒   r
(r ∩ s) ∪ r   ⇒   r
(s ∩ r) ∪ r   ⇒   r
relationalgebra.absorpcompl0yesr ∩ ((r‾) ∪ s)   ⇒   r ∩ s
r ∩ (s ∪ (r‾))   ⇒   r ∩ s
((r‾) ∪ s) ∩ r   ⇒   r ∩ s
(s ∪ (r‾)) ∩ r   ⇒   r ∩ s
r ∪ ((r‾) ∩ s)   ⇒   r ∪ s
r ∪ (s ∩ (r‾))   ⇒   r ∪ s
((r‾) ∩ s) ∪ r   ⇒   r ∪ s
(s ∩ (r‾)) ∪ r   ⇒   r ∪ s
relationalgebra.addoverintersec0yesr † (s ∩ t)   ⇒   (r † s) ∩ (r † t)
(r ∩ s) † t   ⇒   (r † t) ∩ (s † t)
relationalgebra.compoverunion0yesr ; (s ∪ t)   ⇒   (r ; s) ∪ (r ; t)
(r ∪ s) ; t   ⇒   (r ; t) ∪ (s ; t)
relationalgebra.demorganand0yes(r ∩ s)‾   ⇒   (r‾) ∪ (s‾)
relationalgebra.demorganor0yes(r ∪ s)‾   ⇒   (r‾) ∩ (s‾)
relationalgebra.doubleinv0yes(r~)~   ⇒   r
relationalgebra.doublenegation0yes(r‾)‾   ⇒   r
relationalgebra.idempotencyand0yesr ∩ r   ⇒   r
relationalgebra.idempotencyor0yesr ∪ r   ⇒   r
relationalgebra.invoveradd0yes(r † s)~   ⇒   (s~) † (r~)
relationalgebra.invovercomp0yes(r ; s)~   ⇒   (s~) ; (r~)
relationalgebra.invoverintersect0yes(r ∩ s)~   ⇒   (r~) ∩ (s~)
relationalgebra.invovernot0yes(r‾)~   ⇒   (r~)‾
relationalgebra.invoverunion0yes(r ∪ s)~   ⇒   (r~) ∪ (s~)
relationalgebra.notoveradd0yes(r † s)‾   ⇒   (r‾) ; (s‾)
relationalgebra.notovercomp0yes(r ; s)‾   ⇒   (r‾) † (s‾)
relationalgebra.remcompl0yesr ∪ (r‾)   ⇒   V
(r‾) ∪ r   ⇒   V
r ∩ (r‾)   ⇒   V‾
(r‾) ∩ r   ⇒   V‾
relationalgebra.remredunexprs0yesr ∪ V   ⇒   V
V ∪ r   ⇒   V
r ∩ V   ⇒   r
V ∩ r   ⇒   r
V ; V   ⇒   V
r † V   ⇒   V
V † r   ⇒   V
V~   ⇒   V
(V‾)~   ⇒   V‾
r ∪ (V‾)   ⇒   r
(V‾) ∪ r   ⇒   r
r ∩ (V‾)   ⇒   V‾
(V‾) ∩ r   ⇒   V‾
r ; (V‾)   ⇒   V‾
(V‾) ; r   ⇒   V‾
(V‾) † (V‾)   ⇒   V‾
I~   ⇒   I
I ; r   ⇒   r
r ; I   ⇒   r
relationalgebra.unionoverintersec0yesr ∪ (s ∩ t)   ⇒   (r ∪ s) ∩ (r ∪ t)
(r ∩ s) ∪ t   ⇒   (r ∪ t) ∩ (s ∪ t)

Buggy rules for relationalgebra.cnf

Rule nameArgsUsedSiblingsRewrite rule
relationalgebra.buggy.addoverunion0nor † (s ∪ t)   ⇏   (r † s) ∪ (r † t)
(r ∪ s) † t   ⇏   (r † t) ∪ (s † t)
relationalgebra.buggy.assoc0nor ∪ (s ∩ t)   ⇏   (r ∪ s) ∩ t
(r ∪ s) ∩ t   ⇏   r ∪ (s ∩ t)
(r ∩ s) ∪ t   ⇏   r ∩ (s ∪ t)
r ∩ (s ∪ t)   ⇏   (r ∩ s) ∪ t
r ; (s ∪ t)   ⇏   (r ; s) ∪ t
(r ∪ s) ; t   ⇏   r ∪ (s ; t)
r ; (s ∩ t)   ⇏   (r ; s) ∩ t
(r ∩ s) ; t   ⇏   r ∩ (s ; t)
r † (s ∪ t)   ⇏   (r † s) ∪ t
(r ∪ s) † t   ⇏   r ∪ (s † t)
r † (s ∩ t)   ⇏   (r † s) ∩ t
(r ∩ s) † t   ⇏   r ∩ (s † t)
relationalgebra.buggy.compoverintersec0nor ; (s ∩ t)   ⇏   (r ; s) ∩ (r ; t)
(r ∩ s) ; t   ⇏   (r ; t) ∩ (s ; t)
relationalgebra.buggy.demorgan0no(r ∩ s)‾   ⇏   (r‾) ∪ s
(r ∩ s)‾   ⇏   r ∪ (s‾)
(r ∩ s)‾   ⇏   ((r‾) ∪ (s‾))‾
(r ∪ s)‾   ⇏   (r‾) ∩ s
(r ∪ s)‾   ⇏   r ∩ (s‾)
(r ∪ s)‾   ⇏   ((r‾) ∩ (s‾))‾
relationalgebra.buggy.idemadd0nor † r   ⇏   r
relationalgebra.buggy.idemcomp0nor ; r   ⇏   r
relationalgebra.buggy.invoveradd0no(r † s)~   ⇏   (r~) † (s~)
relationalgebra.buggy.invovercomp0no(r ; s)~   ⇏   (r~) ; (s~)
relationalgebra.buggy.notoveradd0no(r † s)‾   ⇏   (r‾) † (s‾)
(r † s)‾   ⇏   (r‾) ; s
(r † s)‾   ⇏   (r‾) † s
(r † s)‾   ⇏   ((r‾) ; (s‾))‾
relationalgebra.buggy.notovercomp0no(r ; s)‾   ⇏   (r‾) ; (s‾)
(r ; s)‾   ⇏   (r‾) ; s
(r ; s)‾   ⇏   (r‾) † s
(r ; s)‾   ⇏   ((r‾) ; (s‾))‾
relationalgebra.buggy.parenth0no(r ∩ s)‾   ⇏   (r‾) ∩ s
(r ∪ s)‾   ⇏   (r‾) ∪ s
((r‾) ∩ s)‾   ⇏   r ∩ s
((r‾) ∪ s)‾   ⇏   r ∪ s
((r‾) ; s)‾   ⇏   r ; s
((r‾) † s)‾   ⇏   r † s
(r ∩ s)~   ⇏   (r~) ∩ s
(r ∪ s)~   ⇏   (r~) ∪ s
((r~) ∩ s)~   ⇏   r ∩ s
((r~) ∪ s)~   ⇏   r ∪ s
((r~) ; s)~   ⇏   r ; s
((r~) † s)~   ⇏   r † s
relationalgebra.buggy.remcompl0nor ∩ (r‾)   ⇏   V
(r‾) ∩ r   ⇏   V
r ∪ (r‾)   ⇏   V‾
(r‾) ∪ r   ⇏   V‾