aboutsummaryrefslogtreecommitdiff
path: root/tactics
diff options
context:
space:
mode:
Diffstat (limited to 'tactics')
-rw-r--r--tactics/class_tactics.ml415
1 files changed, 11 insertions, 4 deletions
diff --git a/tactics/class_tactics.ml4 b/tactics/class_tactics.ml4
index bb73d40948..aa509ba771 100644
--- a/tactics/class_tactics.ml4
+++ b/tactics/class_tactics.ml4
@@ -368,6 +368,7 @@ let respectful_dep = lazy (gen_constant ["Classes"; "Morphisms"] "respectful_dep
let respectful = lazy (gen_constant ["Classes"; "Morphisms"] "respectful")
let equivalence = lazy (gen_constant ["Classes"; "Relations"] "Equivalence")
+let default_relation = lazy (gen_constant ["Classes"; "Relations"] "DefaultRelation")
let iff_equiv = lazy (gen_constant ["Classes"; "Relations"] "iff_equivalence")
let eq_equiv = lazy (gen_constant ["Classes"; "SetoidClass"] "eq_equivalence")
@@ -858,8 +859,14 @@ let require_library dirpath =
let qualid = (dummy_loc, Libnames.qualid_of_dirpath (Libnames.dirpath_of_string dirpath)) in
Library.require_library [qualid] (Some false)
+let check_required_library d =
+ let d' = List.map id_of_string d in
+ let dir = make_dirpath (List.rev d') in
+ if not (Library.library_is_opened dir) then
+ error ("Library "^(list_last d)^" has to be required first")
+
let init_setoid () =
- require_library "Coq.Setoids.Setoid"
+ check_required_library ["Coq";"Setoids";"Setoid"]
let declare_instance_refl a aeq n lemma =
let instance = declare_instance a aeq (add_suffix n "_refl") "Reflexive"
@@ -1029,9 +1036,9 @@ let build_morphism_signature m =
in
let sig_, evars = build_signature isevars env t cstrs snd in
let _ = List.iter
- (fun (ty, relty) ->
- let equiv = mkApp (Lazy.force equivalence, [| ty; relty |]) in
- ignore(Evarutil.e_new_evar isevars env equiv))
+ (fun (ty, rel) ->
+ let default = mkApp (Lazy.force default_relation, [| ty; rel |]) in
+ ignore(Evarutil.e_new_evar isevars env default))
evars
in
let morph =