Module Interface
* Declarative part of the interface of CoqIde calls to Coq
type raw= booltype verbose= booltype goal={goal_id : string;Unique goal identifier
goal_hyp : Pp.t list;List of hypotheses
goal_ccl : Pp.t;Goal conclusion
}The type of coqtop goals
type evar={evar_info : string;A string describing an evar: type, number, environment
}type status={}type 'a pre_goals={}type goals= goal pre_goalstype hint= (string * string) listA list of tactics applicable and their appearance
type option_name= string listtype option_value=|BoolValue of bool|IntValue of int option|StringValue of string|StringOptValue of string optiontype 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) listA list of search constraints; the boolean flag is set to
falsewhenever the flag should be negated.
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_qualidis the shortest path defined for the user.coq_object_prefixis the missing part to recover the fully qualified name, i.efully_qualified = coq_object_prefix + coq_object_qualid.coq_object_objectis the actual content of the object.
type coq_info={coqtop_version : string;protocol_version : string;release_date : string;compile_date : string;}
type location= (int * int) optiontype state_id= Stateid.ttype route_id= Feedback.route_idtype edit_id= inttype 'a value=|Good of 'a|Fail of state_id * location * Pp.ttype ('a, 'b) union= ('a, 'b) Util.uniontype add_sty= (string * edit_id) * (state_id * verbose)add ((s,eid),(sid,v))adds the phraseswith edit ideidon top of the current edit position (that is asserted to besid) verbosely ifvis true. The response(id,(rc,s)is the new stateidassigned to the phrase.rcisInlif the new state id is the tip of the edit point, orInr tipif the new phrase closes a focus andtipis the new edit tipsused to contain Coq's console output and has been deprecated in favor of sending feedback, it will be removed in a future version of the protocol.
type add_rty= state_id * ((unit, state_id) union * string)type edit_at_sty= state_idedit_at iddeclares the user wants to edit just afterid. The response isInlif the document has been rewound to that point,Inr (start,(stop,tip))ifidis in a zone that can be focused. In that case the zone is delimited bystartandstopwhiletipis the new documenttip. Edits made by subsequentaddare always performed on top ofid.
type edit_at_rty= (unit, state_id * (state_id * state_id)) uniontype query_sty= route_id * (string * state_id)query s idexecutessat stateid.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.
type query_rty= unittype goals_sty= unitFetching the list of current goals. Return
Noneif no proof is in progress,Some glotherwise.
type goals_rty= goals optiontype evars_sty= unitRetrieve the list of uninstantiated evars in the current proof.
Noneif no proof is in progress.
type evars_rty= evar list optiontype hints_sty= unitRetrieving the tactics applicable to the current goal.
Noneif there is no proof in progress.
type hints_rty= (hint list * hint) optiontype status_sty= boolThe status, for instance "Ready in SomeSection, proving Foo", the input boolean (if true) forces the evaluation of all unevaluated statements
type status_rty= statustype search_sty= search_flagsSearch for objects satisfying the given search flags.
type search_rty= string coq_object listtype proof_diff_sty= string * Stateid.tDiffs between the proof term at a given stateid and the previous one
type proof_diff_rty= Pp.ttype get_options_sty= unitRetrieve the list of options of the current toplevel
type get_options_rty= (option_name * option_state) listtype set_options_sty= (option_name * option_value) listSet the options to the given value. 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.
type set_options_rty= unittype mkcases_sty= stringCreate 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 quit_rty= unittype init_sty= string optiontype init_rty= state_idtype about_sty= unittype about_rty= coq_infotype handle_exn_sty= Exninfo.iexntype handle_exn_rty= state_id * location * Pp.ttype interp_sty= (raw * verbose) * stringtype interp_rty= state_id * (string, string) Util.uniontype stop_worker_sty= stringtype stop_worker_rty= unittype print_ast_sty= state_idtype print_ast_rty= Xml_datatype.xmltype annotate_sty= stringtype annotate_rty= Xml_datatype.xmltype wait_sty= unittype wait_rty= unittype handler={add : add_sty -> add_rty;edit_at : edit_at_sty -> edit_at_rty;query : query_sty -> query_rty;goals : goals_sty -> goals_rty;evars : evars_sty -> evars_rty;hints : hints_sty -> hints_rty;status : status_sty -> status_rty;search : search_sty -> search_rty;get_options : get_options_sty -> get_options_rty;set_options : set_options_sty -> set_options_rty;mkcases : mkcases_sty -> mkcases_rty;about : about_sty -> about_rty;stop_worker : stop_worker_sty -> stop_worker_rty;print_ast : print_ast_sty -> print_ast_rty;annotate : annotate_sty -> annotate_rty;proof_diff : proof_diff_sty -> proof_diff_rty;handle_exn : handle_exn_sty -> handle_exn_rty;init : init_sty -> init_rty;quit : quit_sty -> quit_rty;wait : wait_sty -> wait_rty;interp : interp_sty -> interp_rty;}