lean4-htt/tests/lean/421.lean
Leonardo de Moura 030f53fa43 fix: closes #421
The unifier used to implement the `cases` tactic should not discard
equations of the form `x = t` and `t = x` using proof irrelanvance.
The new test demonstrates the issue. The unifier was reaching the
state
```
x : Conw Con.nil
|- x = Conw.nilw -> x = Conw.nilw
```
and discarding the equality instead of substituting `x`
because `x` and `Conw.nilw` are definionally equal due to
proof irrelevance.

@javra Do you have more complicated examples that were being
affected by this issue?
2021-04-23 12:27:39 -07:00

11 lines
177 B
Text

inductive Con : Type
| nil : Con
| foo : Con
inductive Conw : Con → Prop
| nilw : Conw Con.nil
example (x : Conw Con.nil) : x = Conw.nilw := by
cases x
traceState
rfl