plus 0 x x plus s x y s plus x y times 0 y 0 times s x y plus y times x y p s x x p 0 0 minus x 0 x minus 0 x 0 minus x s y p minus x y isZero 0 true isZero s x false facIter x y if isZero x minus x s 0 y times y x if true x y z y if false x y z facIter x z factorial x facIter x s 0 plus 2 0 0 s 1 times 2 p 1 minus 2 isZero 1 true 0 false 0 facIter 2 if 4 factorial 1 INNERMOST ./TRS/Thiemann/factorial2.trs