Seems like such a simple thing, but opencyc believes that 16 is not an integer between 1 & 31:
Sentence not Well-Formed
Mt : BaseKB
No repairs available. Could not determine any way to make the above sentence well-formed by adding new knowledge.
Term 16 violates defnIff CYC-INTEGER-RANGE of collection #<(IntegerFromToFn 1 31)> applicable to arg 1 of DayFn in mt BaseKB. Term 16 violates defns of arg-isa #<(IntegerFromToFn 1 31)> applicable to argument 1 of relation DayFn in mt BaseKB.
Copyright © 1995 - 2012 Cycorp. All rights reserved.
Ugh, how embarrassing! This support is implemented via a forward rule that appears to be missing from OpenCyc. It should work if you assert this rule in #$BaseKB, with direction "forward": (Click "show" for Assertion Context in the Assert tool to enable this option):
(different ?HIGH ?LOW)
(IntegerFromToFn ?LOW ?HIGH)))
(Unity ?LOW ?HIGH)))
Yes, that does work as expected.