@@ -149,19 +149,35 @@ Elpi Accumulate Db derive.param1.trivial.db.
149149Elpi Accumulate File param1_inhab.
150150Elpi Accumulate File param1_trivial.
151151Elpi Accumulate lp:{{
152- main [str I, str O] :- !, coq.locate I (indt GR),
153- derive.param1.inhab.main GR O CL,
154- CL => derive.param1.trivial.main GR O _.
155152 main [str I] :- !, coq.locate I (indt GR),
156153 derive.param1.inhab.main GR "_witness" CL,
157154 CL => derive.param1.trivial.main GR "_trivial" _.
158155 main _ :- usage.
159156
160157 usage :-
161- coq.error "Usage: derive.param1.trivial <inductive type name> [<output suffix>] ".
158+ coq.error "Usage: derive.param1.trivial <inductive type name>".
162159}}.
163160Elpi Typecheck.
164161
162+ Elpi Command derive.param1.inhab.
163+ Elpi Accumulate File derive_hook.
164+ Elpi Accumulate File paramX.
165+ Elpi Accumulate File param1.
166+ Elpi Accumulate Db derive.param1.db.
167+ Elpi Accumulate Db derive.param1.congr.db.
168+ Elpi Accumulate Db derive.param1.trivial.db.
169+ Elpi Accumulate File param1_inhab.
170+ Elpi Accumulate lp:{{
171+ main [str I] :- !, coq.locate I (indt GR),
172+ derive.param1.inhab.main GR "_witness" _.
173+ main _ :- usage.
174+
175+ usage :-
176+ coq.error "Usage: derive.param1.inhab <inductive type name>".
177+ }}.
178+ Elpi Typecheck.
179+
180+
165181(* hook into derive *)
166182Elpi Accumulate derive Db derive.param1.trivial.db.
167183Elpi Accumulate derive File param1_inhab.
0 commit comments