aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-04-02 15:53:35 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-04-09 11:52:17 +0200
commit8d69323dff6e1afd17a13dfa8a980e76acb44cdc (patch)
tree18c6e4a6d2ebca4743bd717d357ef67d610ff871
parent70930579d8454a4ff50ee0ea1e97a55863bf01f6 (diff)
Documenting how the recursive indices of a fixpoint are computed.
Also documenting how the implicit arguments by position are computed.
-rw-r--r--intf/constrexpr.mli2
-rw-r--r--kernel/constr.ml9
2 files changed, 10 insertions, 1 deletions
diff --git a/intf/constrexpr.mli b/intf/constrexpr.mli
index 49bafadc8..a4a6eb909 100644
--- a/intf/constrexpr.mli
+++ b/intf/constrexpr.mli
@@ -19,7 +19,7 @@ open Decl_kinds
type notation = string
type explicitation =
- | ExplByPos of int * Id.t option
+ | ExplByPos of int * Id.t option (* a reference to the n-th product starting from left *)
| ExplByName of Id.t
type binder_kind =
diff --git a/kernel/constr.ml b/kernel/constr.ml
index ce20751ab..d0c580d13 100644
--- a/kernel/constr.ml
+++ b/kernel/constr.ml
@@ -107,7 +107,16 @@ type constr = t
type existential = existential_key * constr array
type rec_declaration = Name.t array * constr array * constr array
type fixpoint = (int array * int) * rec_declaration
+ (* The array of [int]'s tells for each component of the array of
+ mutual fixpoints the number of lambdas to skip before finding the
+ recursive argument (e.g., value is 2 in "fix f (x:A) (y:=t) (z:B)
+ (v:=u) (w:I) {struct w}"), telling to skip x and z and that w is
+ the recursive argument);
+ The second component [int] tells which component of the block is
+ returned *)
type cofixpoint = int * rec_declaration
+ (* The component [int] tells which component of the block of
+ cofixpoint is returned *)
type types = constr