From 84544396cbbf34848be2240acf181b4d5f1f42d2 Mon Sep 17 00:00:00 2001 From: Matthieu Sozeau Date: Sat, 27 Sep 2014 16:08:02 +0200 Subject: Add a boolean to indicate the unfolding state of a primitive projection, so as to reproduce correctly the reduction behavior of existing projections, i.e. delta + iota. Make [projection] an abstract datatype in Names.ml, most of the patch is about using that abstraction. Fix unification.ml which tried canonical projections too early in presence of primitive projections. --- tactics/term_dnet.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tactics/term_dnet.ml') diff --git a/tactics/term_dnet.ml b/tactics/term_dnet.ml index f8d7a197b..9826ecdff 100644 --- a/tactics/term_dnet.ml +++ b/tactics/term_dnet.ml @@ -288,7 +288,7 @@ struct Array.fold_left (fun c a -> Term (DApp (c,a))) (pat_of_constr f) (Array.map pat_of_constr ca) | Proj (p,c) -> - Term (DApp (Term (DRef (ConstRef p)), pat_of_constr c)) + Term (DApp (Term (DRef (ConstRef (Projection.constant p))), pat_of_constr c)) and ctx_of_constr ctx c = match kind_of_term c with | Prod (_,t,c) -> ctx_of_constr (Term(DCons((pat_of_constr t,None),ctx))) c -- cgit v1.2.3