; @origtpdbfilename ./TRS/currying/D33/12.trs
; @xtcfilename "./TRS_Standard/Applicative_first_order_05/12.xml"
(format TRS)
(fun app 2)
(fun not 0)
(fun or 0)
(fun and 0)
(fun map 0)
(fun nil 0)
(fun cons 0)
(fun filter 0)
(fun filter2 0)
(fun true 0)
(fun false 0)
(rule (app not (app not x)) x)
(rule (app not (app (app or x) y)) (app (app and (app not x)) (app not y)))
(rule (app not (app (app and x) y)) (app (app or (app not x)) (app not y)))
(rule (app (app and x) (app (app or y) z)) (app (app or (app (app and x) y)) (app (app and x) z)))
(rule (app (app and (app (app or y) z)) x) (app (app or (app (app and x) y)) (app (app and x) z)))
(rule (app (app map f) nil) nil)
(rule (app (app map f) (app (app cons x) xs)) (app (app cons (app f x)) (app (app map f) xs)))
(rule (app (app filter f) nil) nil)
(rule (app (app filter f) (app (app cons x) xs)) (app (app (app (app filter2 (app f x)) f) x) xs))
(rule (app (app (app (app filter2 true) f) x) xs) (app (app cons x) (app (app filter f) xs)))
(rule (app (app (app (app filter2 false) f) x) xs) (app (app filter f) xs))