We recently ran into an issue when testing Rubi on older versions. It boils down to this simple example which I didn't dare to simplify further as I cannot test it in versions < 10
Test[XXX[expr_, x_], n_Integer : Infinity, OptionsPattern] := True /; Head[x] === Symbol && n > 0; Test[___] := False; XXX[blub, x] // Test
The important part is
n in the pattern and it should say
nis an integer
nis optional an
nmust be greater zero
Above code gives
False in versions 8 and 9, but
True in version 10 and 11. I'm not looking for a workaround, but I'd like to understand why it returns
False in the older versions.
Maybe someone who still has access can give me some insight.