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.
|