Skip to content
Snippets Groups Projects
Commit 133d10e0 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Move `simpl` arround to make stuff work.

parent 08d096c5
No related branches found
No related tags found
No related merge requests found
...@@ -24,12 +24,12 @@ Proof. rewrite /envs_entails=> ? ->. by apply wp_value. Qed. ...@@ -24,12 +24,12 @@ Proof. rewrite /envs_entails=> ? ->. by apply wp_value. Qed.
Ltac wp_value_head := eapply tac_wp_value; [apply _|lazy beta]. Ltac wp_value_head := eapply tac_wp_value; [apply _|lazy beta].
Tactic Notation "wp_pure" open_constr(efoc) := Tactic Notation "wp_pure" open_constr(efoc) :=
iStartProof; iStartProof; simpl; (* simpl possible [of_val]s *)
lazymatch goal with lazymatch goal with
| |- envs_entails _ (wp ?E ?e ?Q) => reshape_expr e ltac:(fun K e' => | |- envs_entails _ (wp ?E ?e ?Q) => reshape_expr e ltac:(fun K e' =>
unify e' efoc; unify e' efoc;
eapply tac_wp_pure; eapply (tac_wp_pure _ _ _ (fill K e'));
[simpl; change e with (fill K e'); apply _ (* PureExec *) [apply _ (* PureExec *)
|try fast_done (* The pure condition for PureExec *) |try fast_done (* The pure condition for PureExec *)
|apply _ (* IntoLaters *) |apply _ (* IntoLaters *)
|simpl_subst; try wp_value_head (* new goal *) |simpl_subst; try wp_value_head (* new goal *)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment