Open IanOrton opened 7 years ago
Thanks for testing and reporting the bug! The following code works:
foo : S1 -> Unit = split
base -> tt
loop @ _ -> tt
c2t' : S1 -> S1 -> Unit = split
base -> foo
loop @ _ -> foo
So the bug seems to be with the local splits. I'll investigate.
Note that his works:
foo1 : S1 -> Unit = split
base -> tt
loop @ _ -> tt
foo2 : S1 -> Unit = split
base -> tt
loop @ _ -> tt
c2t' : S1 -> S1 -> Unit = split
base -> foo1
loop @ _ -> foo2
But this doesn't:
c2t' : S1 -> S1 -> Unit = split
base -> foo1
where
foo1 : S1 -> Unit = split
base -> tt
loop @ _ -> tt
loop @ _ -> foo2
where
foo2 : S1 -> Unit = split
base -> tt
loop @ _ -> tt
I don't see what is wrong now, but if you change the conversion test for Ter (Split _ p _ _) e
to constantly True
all of these go through. :)
There seems to be an issue with using nested splits with HITs. See the example below:
This produces the following error:
I think that
broken_L13_C5 0
should reduce tott
, and so shouldbroken_L10_C5
and so these systems should in fact be equal.