diff options
| author | Hugo Herbelin | 2019-11-17 09:39:50 +0100 |
|---|---|---|
| committer | Hugo Herbelin | 2019-11-19 20:03:53 +0100 |
| commit | a81c2de033b37c22be1ca6794ab32347a9917610 (patch) | |
| tree | 16aed2178d8586322bfa00a95703c3a06c5dc231 /test-suite | |
| parent | 622b4f3ace40313d8dc17141285da32de80b3183 (diff) | |
Fixing bugs in the computation of implicit arguments for fix with a let binder.
Diffstat (limited to 'test-suite')
| -rw-r--r-- | test-suite/bugs/closed/bug_3282.v | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test-suite/bugs/closed/bug_3282.v b/test-suite/bugs/closed/bug_3282.v index ce7cab1cba..f32e0969c8 100644 --- a/test-suite/bugs/closed/bug_3282.v +++ b/test-suite/bugs/closed/bug_3282.v @@ -5,3 +5,25 @@ Definition foo := fix f (m : nat) (o := true) (n : nat) {struct n} := Fixpoint f (m : nat) (o := true) (n : nat) {struct n} := match n with 0 => 0 | S n' => f 0 n' end. + +Definition foo' := fix f {m : nat} (o := true) (n : nat) {struct n} := + match n with 0 => 0 | S n' => f (m:=0) n' end. +Check foo' (m:=0) 0. + +Fixpoint f' {m : nat} (o := true) (n : nat) {struct n} := + match n with 0 => 0 | S n' => f' (m:=0) n' end. +Check f' (m:=0) 0. + +CoInductive Stream := { hd : nat; tl : Stream }. + +Definition cofoo := cofix f (o := true) {m} := {| hd := 0; tl := f (m:=0) |}. +Check cofoo (m:=0). + +CoFixpoint cof (o := true) {m} := {| hd := 0; tl := cof (m:=0) |}. +Check cof (m:=0). + +Definition cofoo' := cofix f {m} (o := true) := {| hd := 0; tl := f (m:=0) |}. +Check cofoo' (m:=0). + +CoFixpoint cof' {m} (o := true) := {| hd := 0; tl := cof' (m:=0) |}. +Check cof' (m:=0). |
