4 Cic.term * (* left side *)
5 Cic.term * (* right side *)
6 Utils.comparison) * (* ordering *)
7 Cic.metasenv * (* environment for metas *)
8 Cic.term list (* arguments *)
11 type environment = Cic.metasenv * Cic.context * CicUniv.universe_graph;;
14 exception MatchingFailure
17 Cic.metasenv -> Cic.context -> Cic.term -> Cic.term ->
18 CicUniv.universe_graph ->
19 Cic.substitution * Cic.metasenv * CicUniv.universe_graph
22 Cic.metasenv -> Cic.context -> Cic.term -> Cic.term ->
23 CicUniv.universe_graph ->
24 Cic.substitution * Cic.metasenv * CicUniv.universe_graph
28 Performs the beta expansion of the term "where" w.r.t. "what",
29 i.e. returns the list of all the terms t s.t. "(t what) = where".
32 ?metas_ok:bool -> ?match_only:bool -> Cic.term -> Cic.term -> Cic.term ->
33 Cic.context -> Cic.metasenv -> CicUniv.universe_graph ->
34 (Cic.term * Cic.substitution * Cic.metasenv * CicUniv.universe_graph) list
38 scans the context to find all Declarations "left = right"; returns a
39 list of tuples (proof, (type, left, right), newmetas). Uses
40 PrimitiveTactics.new_metasenv_for_apply to replace bound variables with
44 ?eq_uri:UriManager.uri -> Cic.context -> ProofEngineTypes.proof ->
48 exception TermIsNotAnEquality;;
51 raises TermIsNotAnEquality if term is not an equation.
52 The first Cic.term is a proof of the equation
54 val equality_of_term: ?eq_uri:UriManager.uri -> Cic.term -> Cic.term ->
58 superposition_left env target source
59 returns a list of new clauses inferred with a left superposition step
60 the negative equation "target" and the positive equation "source"
62 val superposition_left: environment -> equality -> equality -> equality list
65 superposition_right newmeta env target source
66 returns a list of new clauses inferred with a right superposition step
67 the positive equations "target" and "source"
68 "newmeta" is the first free meta index, i.e. the first number above the
69 highest meta index: its updated value is also returned
71 val superposition_right:
72 int -> environment -> equality -> equality -> int * equality list
74 val demodulation: int -> environment -> equality -> equality -> int * equality
76 val meta_convertibility_eq: equality -> equality -> bool
78 val is_identity: environment -> equality -> bool
80 val string_of_equality: ?env:environment -> equality -> string
82 val subsumption: environment -> equality -> equality -> bool
84 val metas_of_term: Cic.term -> int list
86 val fix_metas: int -> equality -> int * equality
88 val extract_differing_subterms:
89 Cic.term -> Cic.term -> (Cic.term * Cic.term) option