aboutsummaryrefslogtreecommitdiff
path: root/plugins/Derive/derive.mli
diff options
context:
space:
mode:
authorArnaud Spiwack2013-11-25 19:05:48 +0100
committerArnaud Spiwack2013-12-04 14:14:33 +0100
commit078efbe2dfff0b783cd35b0b3ab2354f554e95a6 (patch)
treee79c02a053d44a79f841a2e1ba013b12a08bd014 /plugins/Derive/derive.mli
parent3c199b86ddf919d79ad79eb7d69f4b6f81bb73ab (diff)
Derive plugin.
A small plugin to support program deriving (à la Richard Bird) in Coq. It's fairly simple: Require Coq.Derive.Derive. Derive f From g Upto eq As h. Produces a goal (actually two, but the first one is automatically shelved): |- eq g ?42 And closing the proof produces two definitions: f is instantiated with the value of ?42 (it's always transparent). And h is instantiated with the content of the proof (it is transparent or opaque depending on whether the proof was closed with Defined or Qed).
Diffstat (limited to 'plugins/Derive/derive.mli')
-rw-r--r--plugins/Derive/derive.mli12
1 files changed, 12 insertions, 0 deletions
diff --git a/plugins/Derive/derive.mli b/plugins/Derive/derive.mli
new file mode 100644
index 0000000000..33f982bb68
--- /dev/null
+++ b/plugins/Derive/derive.mli
@@ -0,0 +1,12 @@
+(************************************************************************)
+(* v * The Coq Proof Assistant / The Coq Development Team *)
+(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2012 *)
+(* \VV/ **************************************************************)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(************************************************************************)
+
+(** [start_deriving f init r lemma] starts a proof of [r init
+ ?x]. When the proof ends, [f] is defined as the value of [?x] and
+ [lemma] as the proof. *)
+val start_deriving : Names.Id.t -> Constrexpr.constr_expr -> Constrexpr.constr_expr -> Names.Id.t -> unit