-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Labels
bugSomething isn't workingSomething isn't workingmeta variablestrackingThis issue is tracked!This issue is tracked!
Description
Code:
prim I
prim Path
variable A : Type
def infix = (a b : A) : Type => Path (\i => A) a b
def refl {a : A} : a = a => \i => a
open inductive Unit | tt
open inductive Bool | true | false
open inductive Wrap Type
| A => wrap A
// pattern matching on bool is necessary, which prevents the call from being unfolded
def someOp {T : Type} (a b : T) (bool : Bool) : Wrap T elim bool
| true => wrap a
| false => wrap b
open inductive SomeDep (T : Type) (l : T) (r : T) (b : Bool)
| con (wrap l = someOp r r b)
def what : SomeDep Unit tt tt true => con refl
Aya says:
In file <baka>:18:42 ->
16 | | con (wrap l = someOp r r b)
17 |
18 | def what : SomeDep Unit tt tt true => con refl
| ^--^
Error: Cannot check the expression
refl
of type
(=) {Wrap ?T} (wrap ?l) (wrap ?l)
(Normalized: wrap tt = wrap tt)
against the type
wrap ?l = someOp {?T} ?r ?r ?b
(Normalized: wrap tt = wrap tt)
In particular, we failed to unify
wrap ?l
(Normalized: wrap tt)
with
someOp {?T} ?r ?r ?b
(Normalized: wrap tt)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingmeta variablestrackingThis issue is tracked!This issue is tracked!