| (S (x: nat)) \Rightarrow (mult (S x) (fact x)) ]
in
(fact 4)
+###### INTERPRETATION NUMBER 1 ######
+### (* disambiguation environment *)
+alias id S = cic:/Coq/Init/Datatypes/nat.ind#1/1/2
+alias id mult = cic:/Coq/Init/Peano/mult.con
+alias id nat = cic:/Coq/Init/Datatypes/nat.ind#1/1
+alias num (instance 0) = "natural number"
### (* METASENV after disambiguation *)
- |- ?2: Type
- |- ?3: ?2[]
+
### (* TERM after disambiguation *)
[fact:=
Fix fact {
### (* REDUCED disambiguated term *)
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O O)) (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O O)) O)))))) (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O O)) (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O O)) O)))))) (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O O)) (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O O)) O)))))) (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
O O)) (S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m
end}
(S (
Fix plus {
-plus / 0 : (n:nat)(nat->nat) :=
+plus / 0 : (n:nat)(m:nat)nat :=
[n:nat][m:nat]
<[n0:nat]nat>Cases n of
O => m