Yes, Interval violates ring axioms.
Trouble is that exports perform double duty. We want to be able
to pass intervals to functions accepting rings. IIRC I tried to
trim unsound exports, but in case of Interval it would break
some things.
In the long run more exports should be conditional. And we need
better proving machinery. Part of proving is inside Spad compiler
and we should improve it. At some moment in the future we
probably should get external proving tool. Simply, many
needed reasonings are too complicated to do as part of type
checking. One possible approach could be to have analog of
'pretend', that would assert certain things. Some assertions
can be checked at runtime. But there is also possibility of
trusting validity od assertions at compile time, but having
separate proof checker to prove that they are always valid.
Anyway, having full soundness and proofs is future dream.
--
Waldek Hebisch