this makes `termination_by?` even slicker. The heuristics is agressive in the non-mutual case (will omit `sizeOf` if the argument is non-dependent and the `WellFoundedRelation` relation is via `sizeOfWFRel`. In the mutual case we'd also have to check the arguments, as they line up in the termination argument, have the same types. I did not bother at this point; in the mutual case we omit `sizeOf` only if the argument type is `Nat`. As a drive-by fix, `termination_by?` now also works on functions that have only one plausible measure.
6 lines
168 B
Text
6 lines
168 B
Text
Inferred termination argument:
|
|
termination_by (y, 1, 0)
|
|
Inferred termination argument:
|
|
termination_by (y, 0, 1)
|
|
Inferred termination argument:
|
|
termination_by (y, 0, 0)
|