; @origtpdbfilename ./TRS/SchneiderKamp/trs/thiemann15.trs
; @xtcfilename "./TRS_Standard/AProVE_07/thiemann15.xml"
(format TRS)
(fun half 1)
(fun |0| 0)
(fun s 1)
(fun inc 1)
(fun zero 1)
(fun true 0)
(fun false 0)
(fun p 1)
(fun bits 1)
(fun bitIter 2)
(fun if 3)
(rule (half |0|) |0|)
(rule (half (s |0|)) |0|)
(rule (half (s (s x))) (s (half x)))
(rule (inc |0|) |0|)
(rule (inc (s x)) (s (inc x)))
(rule (zero |0|) true)
(rule (zero (s x)) false)
(rule (p |0|) |0|)
(rule (p (s x)) x)
(rule (bits x) (bitIter x |0|))
(rule (bitIter x y) (if (zero x) x (inc y)))
(rule (if true x y) (p y))
(rule (if false x y) (bitIter (half x) y))