Fix instance directions for fractional predicates
Removing the as_fractional_fractional
coercion and its hint mode broke instance progress for some proofs (including those weird mul
instances which were Local
to the fractional.v
file.) I drilled down into why, and it turns out a lot of instances were trying to use AsFractional
backwards by using it to bound output arguments on other class instances.
Following the example of !928 (merged) , this fixes those other instances to only use AsFractional
forwards, with deterministic propositions in all output positions. I believe all of these instances are now correct.
It was helpful to define fractional_as_fractional
for use in these new proofs, so I've added it locally. I'll still leave the discussion over whether or not to add it globally to !926 (closed) , and I've documented the reasons from that MR for not making it global.