From 0ca486fad19fc3da5160148ee4bce72b1e39ded3 Mon Sep 17 00:00:00 2001 From: Hugo Herbelin Date: Sat, 24 Mar 2018 17:15:28 +0100 Subject: Congruence: Fixing a bug with native projections. There is a code to turn constants denoting projections into proper primitive projections, but it did not drop parameters. The code seems anyway redundant with an "expand_projections" which is already present in Cctac.decompose_term. After removal of this code, the two calls to congruence added to cc.v work. --- test-suite/success/cc.v | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'test-suite/success') diff --git a/test-suite/success/cc.v b/test-suite/success/cc.v index bbfe5ec42..49a8b9cf4 100644 --- a/test-suite/success/cc.v +++ b/test-suite/success/cc.v @@ -151,3 +151,17 @@ Section JLeivant. congruence. Qed. End JLeivant. + +(* An example with primitive projections *) + +Module PrimitiveProjections. +Set Primitive Projections. +Record t (A:Type) := { f : A }. +Goal forall g (a:t nat), @f nat = g -> f a = 0 -> g a = 0. +congruence. +Undo. +intros. +unfold f in H0. (* internally turn the projection to unfolded form *) +congruence. +Qed. +End PrimitiveProjections. -- cgit v1.2.3