[01:39:31] Thanks, it's good to have a sanitiser. But applying it on any multiplication seems now to impose the "default assumption" on everything downstream. I'm also a bit surprised that the null-bounded tests pass with a sanitised answer - I'll have to take a look at the equality function. (re @Al: No, void only means that there is no value on Wikidata. In practice, though, [01:39:32] our default [01:39:32] interpretation is that the bound is equ...) [03:00:15] New test for the equality function Z26965 works exactly when the existing bound test Z26530 fails. I'll work on some of the implementations. (re @u99of9: Thanks, it's good to have a sanitiser. But applying it on any multiplication seems now to impose the "default assumption" on eve...) [03:32:21] Okay, now I've tightened the equality testing composition so even yours fails the void bound tests 😳 sorry! (re @u99of9: New test for the equality function Z26965 works exactly when the existing bound test Z26530 fails. I'll work on some of the impl...) [08:15:19] I’d expect nothing less! 😏 It’s the implementation of a different function, really. (re @u99of9: Okay, now I've tightened the equality testing composition so even yours fails the void bound tests 😳 sorry!) [10:06:19] Z26977 is a less successful attempt. I can’t find a function that multiplies an unsimplified rational to give an unsimplified rational. I’m not sure that’s all that’s required here but I haven’t looked for a “simplify it a bit” function yet. (re @u99of9: Okay, now I've tightened the equality testing composition so even yours fails the void bound tests 😳 sorry!) [10:18:25] Yes the composition is going to be complicated. I had enough trouble thinking it through in python! (re @Al: Z26977 is a less successful attempt. I can’t find a function that multiplies an unsimplified rational to give an unsimplified ra...) [10:22:15] I think your logic applied to just an unsimplified rational number (or a representation of one as a list of three objects) would do the trick. (re @u99of9: Yes the composition is going to be complicated. I had enough trouble thinking it through in python!) [10:25:35] 🔪Will you carve or shall I? 🪓 (re @u99of9: Yes the composition is going to be complicated. I had enough trouble thinking it through in python!) [11:14:28] Sorry, just saw your message. I've been writing helper functions. Eventually it will be at Z26978. (re @Al: 🔪Will you carve or shall I? 🪓) [11:20:03] Yeah, I saw you were on the case so I left you to it. Happy to pitch in by prior arrangement! (re @u99of9: Sorry, just saw your message. I've been writing helper functions. Eventually it will be at Z26978.) [12:19:37] I think this is now working. There is an intermediate function that could be much faster, but the current messy composition seems to work. (re @wikilinksbot: Z26978 – multiply rational with precision by exact rational) [12:20:20] Don't forget to switch upper and lower bounds when the multiplier is negative. [12:25:21] I would have 🙏 (re @u99of9: Don't forget to switch upper and lower bounds when the multiplier is negative.)