You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the time of writing, omega does not use full defEq when recognizing atoms, but since #3639 the aim is to consider atoms equal if they are definitionally equal, but differ only in implicit parameters.
Universe parameters are similarly implicit to the user, and cause great confusion in a proof like
theorem sizeOf_snd_lt_sizeOf_list
{α : Type u} {β : Type v} [SizeOf α] [SizeOf β] {x : α × β} {xs : List (α × β)} :
x ∈ xs → sizeOf x.snd < 1 + sizeOf xs
:= by
intro h
have h1 := List.sizeOf_lt_of_mem h
have h2 : sizeOf x = 1 + sizeOf x.1 + sizeOf x.2 := rfl
cases x; dsimp at *
omega
At the time of writing,
omega
does not use full defEq when recognizing atoms, but since #3639 the aim is to consider atoms equal if they are definitionally equal, but differ only in implicit parameters.Universe parameters are similarly implicit to the user, and cause great confusion in a proof like
where the user sees
when they expect
omega
to solve it.To debug the problem I had to come up with #3847 and turn on
set_option pp.universes true
, and now we see what goes wrong:One can work around the problem by changing the lemma statement as such
but arguably one shouldn't have to.
Versions
0aa6831
Impact
Add 👍 to issues you consider important. If others are impacted by this issue, please ask them to add 👍 to it.
The text was updated successfully, but these errors were encountered: