aboutsummaryrefslogtreecommitdiff
path: root/test-suite/bugs/closed/bug_9598.v
blob: 00bbfcf5d9bfdaa7be0b2ed8b4ae03550220a61b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Module case.

  Inductive pair := K (n1 : nat) (n2 : nat).
  Definition fst (p : pair) : nat := match p with K n _ => n end.

  Definition alias_K a b := K a b.

  Fixpoint rec (x : nat) : nat := fst (K 0 (rec x)).
  Fixpoint rec_ko (x : nat) : nat := fst (alias_K 0 (rec_ko x)).

End case.

Module fixpoint.

  Inductive pair := K (n1 : nat) (n2 : nat).
  Fixpoint fst (p : pair) : nat := match p with K n _ => n end.

  Definition alias_K a b := K a b.

  Fixpoint rec (x : nat) : nat := fst (K 0 (rec x)).
  Fixpoint rec_ko (x : nat) : nat := fst (alias_K 0 (rec_ko x)).

End fixpoint.

Module primproj.

  Set Primitive Projections.

  Inductive pair := K { fst : nat; snd : nat }.

  Definition alias_K a b := K a b.

  Fixpoint rec (x : nat) : nat := fst (K 0 (rec x)).
  Fixpoint rec_ko (x : nat) : nat := fst (alias_K 0 (rec_ko x)).

End primproj.