You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The totality/coverage checker fails to recognize that this definition isn't total, but only if both unlift and x are marked as irrelevant. It correctly identifies the missing coverage if x is made relevant. This works with other types, like Bits8 and a valid number, as well.
Loading the file in the REPL, and using irrelevantEq to recover a value shows the discrepancy:
I suspect it's due to the checker seeing the Bool is 0 and so it assumes the pattern must have been forced by another split. Except that we are in an erased context and so are allowed to split on 0s...
The totality/coverage checker fails to recognize that this definition isn't total, but only if both
unlift
andx
are marked as irrelevant. It correctly identifies the missing coverage ifx
is made relevant. This works with other types, likeBits8
and a valid number, as well.Loading the file in the REPL, and using
irrelevantEq
to recover a value shows the discrepancy:Using a similar definition thanks to @gallais, is is possible to prove
Void
:The text was updated successfully, but these errors were encountered: