diff --git a/theories/hashset.v b/theories/hashset.v index 920b49495980f659175e55efad3dcbbe8a336579..1ed944a9f287a1447de22b64d05d1c78f82689ed 100644 --- a/theories/hashset.v +++ b/theories/hashset.v @@ -104,6 +104,7 @@ Proof. intros (l&?&?). exists (hash x, l); simpl. by rewrite elem_of_map_to_list. - unfold elements, hashset_elements. intros [m Hm]; simpl. rewrite map_Forall_to_list in Hm. generalize (NoDup_fst_map_to_list m). + (* FIXME: trailing [?] works around Coq bug #12944. *) induction Hm as [|[n l] m' [??] Hm ?]; csimpl; inversion_clear 1 as [|?? Hn]; [constructor|]. apply NoDup_app; split_and?; eauto. diff --git a/theories/sorting.v b/theories/sorting.v index afdab4957007a1561530605f8bc329581bf2ec7a..d405d4c0df1ba6fd6079c3ab974aedf9e0c883b7 100644 --- a/theories/sorting.v +++ b/theories/sorting.v @@ -180,6 +180,7 @@ Section merge_sort_correct. Sorted R l1 → Sorted R l2 → Sorted R (list_merge R l1 l2). Proof. intros Hl1. revert l2. induction Hl1 as [|x1 l1 IH1]; + (* FIXME: trailing [?] works around Coq bug #12944. *) induction 1 as [|x2 l2 IH2 ?]; rewrite ?list_merge_cons; simpl; repeat case_decide; repeat match goal with H : ¬R _ _ |- _ => apply total_not in H end;