diff --git a/theories/lang/tactics.v b/theories/lang/tactics.v index c7b85fe793d74eeb6d86eb7d6a454f97e4761b20..a7d8e6e56d14e0df5b47829bd2e312f97d9390c5 100644 --- a/theories/lang/tactics.v +++ b/theories/lang/tactics.v @@ -172,7 +172,7 @@ Ltac solve_closed := match goal with | |- Closed ?X ?e => let e' := W.of_expr e in change (Closed X (W.to_expr e')); - apply W.is_closed_correct; exact (I <: W.is_closed X e') + apply W.is_closed_correct; vm_compute; exact I end. Hint Extern 0 (Closed _ _) => solve_closed : typeclass_instances. @@ -188,10 +188,7 @@ Ltac solve_to_val := apply W.to_val_Some; simpl; unfold W.to_expr; unlock; reflexivity | |- is_Some (to_val ?e) => let e' := W.of_expr e in change (is_Some (to_val (W.to_expr e'))); - apply W.to_val_is_Some, (bool_decide_unpack _); - match goal with [|-Is_true (@bool_decide ?P ?dec)] => - exact (I <: Is_true (@bool_decide P dec)) - end + apply W.to_val_is_Some, (bool_decide_unpack _); vm_compute; exact I end. Hint Extern 10 (IntoVal _ _) => solve_to_val : typeclass_instances. Hint Extern 10 (AsVal _) => solve_to_val : typeclass_instances. @@ -200,7 +197,7 @@ Ltac solve_atomic := match goal with | |- Atomic ?s ?e => let e' := W.of_expr e in change (Atomic s (W.to_expr e')); - apply W.is_atomic_correct; exact (I <: W.is_atomic e') + apply W.is_atomic_correct; vm_compute; exact I end. Hint Extern 0 (Atomic _ _) => solve_atomic : typeclass_instances.