(VAR b x y z )
(RULES 
        ge(x, 0) -> true
        ge(0, s(y)) -> false
        ge(s(x), s(y)) -> ge(x, y)
        minus(x, 0) -> x
        minus(0, y) -> 0
        minus(s(x), s(y)) -> minus(x, y)
        id_inc(x) -> x
        id_inc(x) -> s(x)
        quot(x, y) -> div(x, y, 0)
        div(x, y, z) -> if(ge(y, s(0)), ge(x, y), x, y, z)
        if(false, b, x, y, z) -> div_by_zero
        if(true, false, x, y, z) -> z
        if(true, true, x, y, z) -> div(minus(x, y), y, id_inc(z))
        
)