It also updates the condition for triggering the inaccessible transition. Before this commit, we would only perform this kind of transition if *all* terms were marked inaccessible. Now, we perform it if *some* are marked inaccessible. Reason: when we perform the complete transition we don't have enought information for deciding whether an argument should be marked as inaccessible or not. If this decision creates confusion for users, we may try to mark them with an "maybe-inaccessible" annotation, and then enforce that the inaccessible transition is performed onlty if *all* terms are marked as inaccessible or *maybe-inaccessible"
7 lines
207 B
Text
7 lines
207 B
Text
inductive Foo : Type → Type*
|
|
| mk : Π (X : Type), Foo X
|
|
| wrap : Π (X : Type), Foo X → Foo X
|
|
|
|
def rig : Π {X : Type}, Foo X → Foo X
|
|
| X (Foo.wrap .X foo) := foo
|
|
| X foo := foo
|