Idris2/tests/idris2/positivity004/expected
Edwin Brady 170af1e87a
Use Closures instead of NF in binders for normal forms (#1823)
* Skip forced arguments in conversion check

This isn't always safe - we have to have also checked the type of the
things we're converting - but in the place where it is safe it can be a
pretty significant saving.

* Use Closures, not NF, in Binders for normal forms

This means we don't need to reduce argument types during unification if
we don't need to. Also, we now try to avoid reducing closures during
unification if they are unified with a metavariable. Together, this
saves a huge amount of unnecessary evaluation in programs that do a lot
of compile time evaluation.

* Didn't mean to update idris2api.ipkg

* Fix dodgy merge
2021-08-08 17:05:29 +01:00

90 lines
2.0 KiB
Plaintext

1/1: Building Issue1771-1 (Issue1771-1.idr)
Error: Fix is not total, not strictly positive
Issue1771-1:3:1--4:29
3 | data Fix : (Type -> Type) -> Type where
4 | MkFix : f (Fix f) -> Fix f
Error: MkFix is not total, not strictly positive
Issue1771-1:4:3--4:8
1 | %default total
2 |
3 | data Fix : (Type -> Type) -> Type where
4 | MkFix : f (Fix f) -> Fix f
^^^^^
Error: yesF is not total, possibly not terminating due to call to Main.MkFix
Issue1771-1:9:1--9:18
5 |
6 | F : Type
7 | F = Fix Not
8 |
9 | yesF : Not F -> F
^^^^^^^^^^^^^^^^^
1/1: Building Issue1771-2 (Issue1771-2.idr)
Error: F is not total, not strictly positive
Issue1771-2:3:1--4:58
3 | data F : Type where
4 | MkFix : ((0 g : Type -> Type) -> g === Not -> g F) -> F
Error: MkFix is not total, not strictly positive
Issue1771-2:4:3--4:8
1 | %default total
2 |
3 | data F : Type where
4 | MkFix : ((0 g : Type -> Type) -> g === Not -> g F) -> F
^^^^^
Error: yesF is not total, possibly not terminating due to call to Main.MkFix
Issue1771-2:6:1--6:18
2 |
3 | data F : Type where
4 | MkFix : ((0 g : Type -> Type) -> g === Not -> g F) -> F
5 |
6 | yesF : Not F -> F
^^^^^^^^^^^^^^^^^
1/1: Building Issue1771-3 (Issue1771-3.idr)
Error: F is not total, not strictly positive
Issue1771-3:9:1--10:26
09 | data F : Type where
10 | MkF : Wrap (Not F) -> F
Error: MkF is not total, not strictly positive
Issue1771-3:10:3--10:6
06 | unwrap : Wrap a -> a
07 | unwrap (MkWrap v) = v
08 |
09 | data F : Type where
10 | MkF : Wrap (Not F) -> F
^^^
Error: notF is not total, possibly not terminating due to call to Main.F
Issue1771-3:15:1--15:13
11 |
12 | yesF : Not F -> F
13 | yesF = MkF . MkWrap
14 |
15 | notF : Not F
^^^^^^^^^^^^
Error: yesF is not total, possibly not terminating due to calls to Main.F, Main.MkF
Issue1771-3:12:1--12:18
08 |
09 | data F : Type where
10 | MkF : Wrap (Not F) -> F
11 |
12 | yesF : Not F -> F
^^^^^^^^^^^^^^^^^