9eb4dc4a81
This commit affects different modules. I used the following approach: 1- I store the metavariable environment at unification_failure_justifications. The idea is to capture the set of instantiated metavariables at the time of failure. 2- I added a remove_detail function. It removes propagation steps from the justification tree object. I also remove the backtracking search space associated with higher-order unificiation. I keep only the search related to case-splits due to coercions and overloads. 3- I use the metavariable environment captured at step 1 when pretty printing the justification of an elaborator_exception. Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
24 lines
545 B
Text
24 lines
545 B
Text
Set: pp::colors
|
||
Set: pp::unicode
|
||
Assumed: myeq
|
||
myeq Bool ⊤ ⊥
|
||
Assumed: T
|
||
Assumed: a
|
||
Failed to solve
|
||
⊢ Bool ≺ T
|
||
(line: 5: pos: 6) Type of argument 2 must be convertible to the expected type in the application of
|
||
myeq
|
||
with arguments:
|
||
T
|
||
⊤
|
||
a
|
||
Assumed: myeq2
|
||
Set: lean::pp::implicit
|
||
Failed to solve
|
||
⊢ Bool ≺ T
|
||
(line: 9: pos: 15) Type of argument 2 must be convertible to the expected type in the application of
|
||
@myeq2
|
||
with arguments:
|
||
T
|
||
⊤
|
||
a
|