Skip to content

"Unification incomplete for case" error message could be improved #116

@JonathanAldrich

Description

@JonathanAldrich

Due to a typo I put the wrong metavariable inside [brackets] in a case rule construct. This resulted in a "Unification incomplete for case" error message.

Here's the offending code:

                case rule
                    d6: e3 => e5
                    d7: e4[e3'] => e1'
                    ----------------------------- eval-let
                    _: let x = e3 in e4[x] => e1'
                is
                    proof by unproved
                end case

based on the obvious big-step rule for let. Obviously the e3' should be e5 here...but the typo was a bit hard to find.

It's probably genuinely hard to produce a good error message in this case, but I wonder if a bit of engineering could at least pinpoint e3' as the cause of the problem? In this case e3' was already bound, and e5 is fresh, so it should be possible in principle to detect that e3' is the problem.

Not super high priority but this is the kind of thing we should fix to make SASyLF more usable.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions