*SUPPORT*
IN: wif dax zup OUT: RED YELLOW YELLOW
IN: wif dax gazzer OUT: RED PURPLE PURPLE
IN: zup dax gazzer blicket gazzer OUT: YELLOW PURPLE PURPLE PURPLE
IN: wif dax wif OUT: RED RED RED
IN: wif OUT: RED
IN: lug wif dax lug OUT: GREEN RED GREEN GREEN
IN: zup OUT: YELLOW
IN: lug OUT: GREEN
IN: zup gazzer dax lug blicket gazzer OUT: YELLOW PURPLE GREEN GREEN PURPLE
IN: wif dax wif kiki lug OUT: GREEN RED RED RED
IN: zup dax lug OUT: YELLOW GREEN GREEN
IN: lug kiki wif dax lug OUT: RED GREEN GREEN GREEN
IN: zup gazzer OUT: YELLOW PURPLE
IN: lug gazzer dax zup blicket zup OUT: GREEN PURPLE YELLOW YELLOW YELLOW

*QUERY*
IN: gazzer gazzer dax gazzer blicket lug OUT: PURPLE PURPLE PURPLE PURPLE GREEN
IN: gazzer blicket gazzer OUT: PURPLE PURPLE
IN: wif gazzer OUT: RED PURPLE
IN: gazzer wif gazzer dax lug blicket zup OUT: PURPLE RED PURPLE GREEN GREEN YELLOW
IN: wif blicket zup OUT: RED YELLOW
IN: gazzer OUT: PURPLE
IN: wif zup dax zup blicket wif blicket zup OUT: RED YELLOW YELLOW YELLOW RED YELLOW
IN: zup dax zup blicket wif OUT: YELLOW YELLOW YELLOW RED
IN: gazzer dax gazzer OUT: PURPLE PURPLE PURPLE
IN: gazzer lug OUT: PURPLE GREEN

*GRAMMAR*
wif -> RED 
 lug -> GREEN 
 zup -> YELLOW 
 gazzer -> PURPLE 
 x1 blicket u1 -> [x1] [u1] 
 u1 dax u2 -> [u1] [u2] [u2] 
 x1 kiki x2 -> [x2] [x1] 
 u1 x1 -> [u1] [x1] 
 