File: inductive_functor_params.v

package info (click to toggle)
coq-doc 8.16.1-1
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm
  • size: 42,788 kB
  • sloc: ml: 219,673; sh: 4,035; python: 3,372; ansic: 2,529; makefile: 728; lisp: 279; javascript: 87; xml: 24; sed: 2
file content (16 lines) | stat: -rw-r--r-- 413 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Module Type T.
  Parameter foo : nat -> nat.
End T.

Module F (A:T).
  Inductive ind (n:nat) : nat -> Prop :=
  | C : (forall x, x < n -> ind (A.foo n) x) -> ind n n.
End F.

Module A. Definition foo (n:nat) := n. End A.

Module M := F A.
(* Note: M.ind could be seen as having 1 recursively uniform
   parameter, but module substitution does not recognize it, so it is
   treated as a non-uniform parameter. *)