Interface
* Declarative part of the interface of CoqIDE calls to Coq
* Generic structures
type goal = {
goal_id : string; | (* Unique goal identifier *) |
goal_hyp : Pp.t list; | (* List of hypotheses *) |
goal_ccl : Pp.t; | (* Goal conclusion *) |
goal_name : string option; | (* User-level goal name *) |
}
The type of coqtop goals
type status = {
}
type option_state = {
opt_sync : bool; | (* Whether an option is synchronous *) |
opt_depr : bool; | (* Whether an option is deprecated *) |
opt_value : option_value; | (* The current value of the option *) |
}
Summary of an option status
type search_constraint =
type search_flags = (search_constraint * bool) list
A list of search constraints; the boolean flag is set to false
whenever the flag should be negated.
type goal_flags = {
gf_mode : string; |
gf_fg : bool; |
gf_bg : bool; |
gf_shelved : bool; |
gf_given_up : bool; |
}
Subset of goals to print.
type 'a coq_object = {
coq_object_prefix : string list; |
coq_object_qualid : string list; |
coq_object_object : 'a; |
}
A named object in Coq. coq_object_qualid
is the shortest path defined for the user. coq_object_prefix
is the missing part to recover the fully qualified name, i.e fully_qualified = coq_object_prefix + coq_object_qualid
. coq_object_object
is the actual content of the object.
Calls result
type state_id = Stateid.t
type route_id = Feedback.route_id
type ('a, 'b) union = ( 'a, 'b ) Util.union
add ((((s,eid),(sid,v)), bp), (line_nb, bol_pos)
adds the phrase s
with edit id eid
on top of the current edit position (that is asserted to be sid
). v
set to true indicates "verbose". The response (id,rc)
is the new state id
assigned to the phrase. rc
is Inl
if the new state id is the tip of the edit point, or Inr tip
if the new phrase closes a focus and tip
is the new edit tip. bp
, line_nb
and bol_pos
are the Loc.t values for the phrase in the buffer, needed to return the correct location for s
to the debugger
type edit_at_sty = state_id
edit_at id
declares the user wants to edit just after id
. The response is Inl
if the document has been rewound to that point, Inr (start,(stop,tip))
if id
is in a zone that can be focused. In that case the zone is delimited by start
and stop
while tip
is the new document tip
. Edits made by subsequent add
are always performed on top of id
.
query s id
executes s
at state id
.
query used to reply with the contents of Coq's console output, and has been deprecated in favor of sending the query answers as feedback. It will be removed in a future version of the protocol.
Fetching the list of current goals. Return None
if no proof is in progress, Some gl
otherwise.
type goals_rty = goals option
type subgoals_sty = goal_flags
Same as above, but specific kind of goals can be retrieved by setting the flags.
type subgoals_rty = goals option
Retrieve the list of uninstantiated evars in the current proof. None
if no proof is in progress.
type evars_rty = evar list option
Retrieving the tactics applicable to the current goal. None
if there is no proof in progress.
The status, for instance "Ready in SomeSection, proving Foo", the input boolean (if true) forces the evaluation of all unevaluated statements
type status_rty = status
type search_sty = search_flags
Search for objects satisfying the given search flags.
type search_rty = string coq_object list
type proof_diff_sty = string * Stateid.t
Diffs between the proof term at a given stateid and the previous one
type proof_diff_rty = Pp.t
update one or more breakpoints in the specified file
type db_continue_sty = db_continue_opt
continue execution (in various ways)
type db_vars_rty = (string * Pp.t) list
type get_options_rty = (option_name * option_state) list
type set_options_sty = (option_name * option_value) list
Set the options to the given values. Warning: this is not atomic, so whenever the call fails, the option state can be messed up... This is the caller duty to check that everything is correct.
Create a "match" template for a given inductive type. For each branch of the match, we list the constructor name followed by enough pattern variables.
type init_rty = state_id
type about_rty = coq_info
type handle_exn_sty = Exninfo.iexn
type interp_rty = state_id * ( string, string ) Util.union
type print_ast_sty = state_id
type print_ast_rty = Xml_datatype.xml
type annotate_rty = Xml_datatype.xml
type handler = {
}