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?
56 lines
1.3 KiB
Text
56 lines
1.3 KiB
Text
hidingInaccessibleNames.lean:4:15-4:16: error: don't know how to synthesize placeholder
|
||
context:
|
||
⊢ Nat
|
||
hidingInaccessibleNames.lean:3:19-3:20: error: don't know how to synthesize placeholder
|
||
context:
|
||
a b : Nat
|
||
: [a, b] ≠ []
|
||
⊢ Nat
|
||
hidingInaccessibleNames.lean:2:16-2:17: error: don't know how to synthesize placeholder
|
||
context:
|
||
: [] ≠ []
|
||
⊢ Nat
|
||
hidingInaccessibleNames.lean:10:16-10:17: error: don't know how to synthesize placeholder
|
||
context:
|
||
x✝⁵ : List Nat
|
||
x✝⁴ : Nat
|
||
x✝³ : x✝⁵ ≠ []
|
||
x✝² : List Nat
|
||
x✝¹ : Nat
|
||
x✝ : x✝² ≠ []
|
||
⊢ Nat
|
||
hidingInaccessibleNames.lean:9:19-9:20: error: don't know how to synthesize placeholder
|
||
context:
|
||
x✝⁴ : List Nat
|
||
x✝³ : Nat
|
||
x✝² : x✝⁴ ≠ []
|
||
a b x✝¹ : Nat
|
||
x✝ : [a, b] ≠ []
|
||
⊢ Nat
|
||
hidingInaccessibleNames.lean:8:16-8:17: error: don't know how to synthesize placeholder
|
||
context:
|
||
x✝⁴ : List Nat
|
||
x✝³ : Nat
|
||
x✝² : x✝⁴ ≠ []
|
||
x✝¹ : Nat
|
||
x✝ : [] ≠ []
|
||
⊢ Nat
|
||
case inl
|
||
p q : Prop
|
||
: p
|
||
⊢ q ∨ p
|
||
|
||
case inr
|
||
p q : Prop
|
||
: q
|
||
⊢ q ∨ p
|
||
hidingInaccessibleNames.lean:23:25-23:26: error: don't know how to synthesize placeholder
|
||
context:
|
||
x✝² : Prop
|
||
x✝¹ : x✝²
|
||
: x✝²
|
||
⊢ decide x✝² = true
|
||
hidingInaccessibleNames.lean:27:17-27:18: error: don't know how to synthesize placeholder
|
||
context:
|
||
x✝ : Char
|
||
⊢ x✝.val = x✝.val
|