Skip to content

Plugin can turn a tractable proof into an unsatisfiable wanted #107

@pieter-bos

Description

@pieter-bos

The plugin is careful with how it handles types involving subtractions. This makes sense to me, as it is helpful that we can show things like d - n + n <= d when we can also show n <= d.

Accordingly, there are proofs that are valid, but are not solved by natnormalise, e.g.:

given: n - d <= 1
wanted: n - d <= 2

Note that although the value of n - d is unspecified in the case that d > n, it should be considered an arbitrary but fixed Nat.

I don't think that is a problem by itself (it's fine that the plugin is incomplete), but it is inconvenient that in this case the wanted is resolved, but an additional wanted is emitted: d <= n. The plugin has thus transformed a tractable proof into an intractable one (we can't show d <= n here), meaning subsequent plugins like proof-assist have no chance to solve the constraint.

I think it would be helpful if we could consider abandoning the resolution of a wanted (like n - d <= 2) altogether in the case that not all side conditions (like d <= n) follow from the givens, rather than passing along the side conditions, which may be more restrictive than the original wanted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions