diff options
| author | Pierre-Marie Pédrot | 2016-11-20 00:35:43 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2017-02-14 17:30:23 +0100 |
| commit | 67507df457be05ee5b651a423031a8cd584934ef (patch) | |
| tree | 70aa18b06c278818b8329070429a39152218c104 /ltac | |
| parent | e71f6d24465ea7812e9b893ed8e0deb2a44ce4f8 (diff) | |
Class_tactics API using EConstr.
Diffstat (limited to 'ltac')
| -rw-r--r-- | ltac/g_class.ml4 | 6 | ||||
| -rw-r--r-- | ltac/rewrite.ml | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/ltac/g_class.ml4 b/ltac/g_class.ml4 index ea9a2b6e17..45ee86c4ef 100644 --- a/ltac/g_class.ml4 +++ b/ltac/g_class.ml4 @@ -62,15 +62,15 @@ TACTIC EXTEND typeclasses_eauto END TACTIC EXTEND head_of_constr - [ "head_of_constr" ident(h) constr(c) ] -> [ head_of_constr h c ] + [ "head_of_constr" ident(h) constr(c) ] -> [ head_of_constr h (EConstr.of_constr c) ] END TACTIC EXTEND not_evar - [ "not_evar" constr(ty) ] -> [ not_evar ty ] + [ "not_evar" constr(ty) ] -> [ not_evar (EConstr.of_constr ty) ] END TACTIC EXTEND is_ground - [ "is_ground" constr(ty) ] -> [ Proofview.V82.tactic (is_ground ty) ] + [ "is_ground" constr(ty) ] -> [ Proofview.V82.tactic (is_ground (EConstr.of_constr ty)) ] END TACTIC EXTEND autoapply diff --git a/ltac/rewrite.ml b/ltac/rewrite.ml index f2ffb0413b..a2b6cb97c1 100644 --- a/ltac/rewrite.ml +++ b/ltac/rewrite.ml @@ -132,6 +132,7 @@ let find_class_proof proof_type proof_method env evars carrier relation = try let evars, goal = app_poly_check env evars proof_type [| carrier ; relation |] in let evars', c = Typeclasses.resolve_one_typeclass env (goalevars evars) (EConstr.of_constr goal) in + let c = EConstr.Unsafe.to_constr c in if extends_undefined (goalevars evars) evars' then raise Not_found else app_poly_check env (evars',cstrevars evars) proof_method [| carrier; relation; c |] with e when Logic.catchable_exception e -> raise Not_found @@ -1951,6 +1952,7 @@ let default_morphism sign m = in let evars, morph = app_poly_check env evars PropGlobal.proper_type [| t; sign; m |] in let evars, mor = resolve_one_typeclass env (goalevars evars) (EConstr.of_constr morph) in + let mor = EConstr.Unsafe.to_constr mor in mor, proper_projection mor morph let add_setoid global binders a aeq t n = |
