Skip to content

Ad-hoc totality proof #3792

Description

@ypytomets

There's cases, when build-in checker is not able to verify totality.
There's some workarounds, like add extra index to data type to proof structural recursion, or create a data wrapper as a single recursion step for the mutual recursion case, or split proof on several explicit cases over simpler data types. But that requires additional term-level boilerplate, and can lead to reducing computational complexity, extra runtime overhead, worse overall concept splitting and codebase readability.

That would be handy instead of constraining hacky workaround for each such case for developers just to allow to write custom ad-hoc proof strategies (on meta/reflection level, which wouldn't affect actual runtime), instead of just believe_me: that can improve the actual correct code development speed without wasting time on workarounds and/or extra compiler proposals (and can be a convenient local sandbox for such potential proposals eventually).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions