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

Remove tactic `iSolveTC`.

parent 70f443db
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
...@@ -134,10 +134,10 @@ Tactic Notation "wp_pure" open_constr(efoc) := ...@@ -134,10 +134,10 @@ Tactic Notation "wp_pure" open_constr(efoc) :=
reshape_expr e ltac:(fun K e' => reshape_expr e ltac:(fun K e' =>
unify e' efoc; unify e' efoc;
eapply (tac_wp_pure _ _ _ _ K e'); eapply (tac_wp_pure _ _ _ _ K e');
[iSolveTC (* PureExec *) [tc_solve (* PureExec *)
|try solve_vals_compare_safe (* The pure condition for PureExec -- |try solve_vals_compare_safe (* The pure condition for PureExec --
handles trivial goals, including [vals_compare_safe] *) handles trivial goals, including [vals_compare_safe] *)
|iSolveTC (* IntoLaters *) |tc_solve (* IntoLaters *)
|wp_finish (* new goal *) |wp_finish (* new goal *)
]) ])
|| fail "wp_pure: cannot find" efoc "in" e "or" efoc "is not a redex" || fail "wp_pure: cannot find" efoc "in" e "or" efoc "is not a redex"
...@@ -146,7 +146,7 @@ Tactic Notation "wp_pure" open_constr(efoc) := ...@@ -146,7 +146,7 @@ Tactic Notation "wp_pure" open_constr(efoc) :=
reshape_expr e ltac:(fun K e' => reshape_expr e ltac:(fun K e' =>
unify e' efoc; unify e' efoc;
eapply (tac_twp_pure _ _ _ K e'); eapply (tac_twp_pure _ _ _ K e');
[iSolveTC (* PureExec *) [tc_solve (* PureExec *)
|try solve_vals_compare_safe (* The pure condition for PureExec *) |try solve_vals_compare_safe (* The pure condition for PureExec *)
|wp_finish (* new goal *) |wp_finish (* new goal *)
]) ])
...@@ -170,10 +170,10 @@ Tactic Notation "wp_pure" open_constr(efoc) "credit:" constr(H) := ...@@ -170,10 +170,10 @@ Tactic Notation "wp_pure" open_constr(efoc) "credit:" constr(H) :=
reshape_expr e ltac:(fun K e' => reshape_expr e ltac:(fun K e' =>
unify e' efoc; unify e' efoc;
eapply (tac_wp_pure_credit _ _ _ _ Htmp K e'); eapply (tac_wp_pure_credit _ _ _ _ Htmp K e');
[iSolveTC (* PureExec *) [tc_solve (* PureExec *)
|try solve_vals_compare_safe (* The pure condition for PureExec -- |try solve_vals_compare_safe (* The pure condition for PureExec --
handles trivial goals, including [vals_compare_safe] *) handles trivial goals, including [vals_compare_safe] *)
|iSolveTC (* IntoLaters *) |tc_solve (* IntoLaters *)
|finish () (* new goal *) |finish () (* new goal *)
]) ])
|| fail "wp_pure: cannot find" efoc "in" e "or" efoc "is not a redex" || fail "wp_pure: cannot find" efoc "in" e "or" efoc "is not a redex"
...@@ -672,14 +672,14 @@ Tactic Notation "wp_alloc" ident(l) "as" constr(H) := ...@@ -672,14 +672,14 @@ Tactic Notation "wp_alloc" ident(l) "as" constr(H) :=
first first
[reshape_expr e ltac:(fun K e' => eapply (tac_wp_alloc _ _ _ _ Htmp K)) [reshape_expr e ltac:(fun K e' => eapply (tac_wp_alloc _ _ _ _ Htmp K))
|fail 1 "wp_alloc: cannot find 'Alloc' in" e]; |fail 1 "wp_alloc: cannot find 'Alloc' in" e];
[iSolveTC [tc_solve
|finish ()] |finish ()]
in in
let process_array _ := let process_array _ :=
first first
[reshape_expr e ltac:(fun K e' => eapply (tac_wp_allocN _ _ _ _ Htmp K)) [reshape_expr e ltac:(fun K e' => eapply (tac_wp_allocN _ _ _ _ Htmp K))
|fail 1 "wp_alloc: cannot find 'Alloc' in" e]; |fail 1 "wp_alloc: cannot find 'Alloc' in" e];
[idtac|iSolveTC [idtac|tc_solve
|finish ()] |finish ()]
in (process_single ()) || (process_array ()) in (process_single ()) || (process_array ())
| |- envs_entails _ (twp ?s ?E ?e ?Q) => | |- envs_entails _ (twp ?s ?E ?e ?Q) =>
...@@ -712,7 +712,7 @@ Tactic Notation "wp_free" := ...@@ -712,7 +712,7 @@ Tactic Notation "wp_free" :=
first first
[reshape_expr e ltac:(fun K e' => eapply (tac_wp_free _ _ _ _ _ K)) [reshape_expr e ltac:(fun K e' => eapply (tac_wp_free _ _ _ _ _ K))
|fail 1 "wp_free: cannot find 'Free' in" e]; |fail 1 "wp_free: cannot find 'Free' in" e];
[iSolveTC [tc_solve
|solve_mapsto () |solve_mapsto ()
|pm_reduce; wp_finish] |pm_reduce; wp_finish]
| |- envs_entails _ (twp ?s ?E ?e ?Q) => | |- envs_entails _ (twp ?s ?E ?e ?Q) =>
...@@ -734,7 +734,7 @@ Tactic Notation "wp_load" := ...@@ -734,7 +734,7 @@ Tactic Notation "wp_load" :=
first first
[reshape_expr e ltac:(fun K e' => eapply (tac_wp_load _ _ _ _ _ K)) [reshape_expr e ltac:(fun K e' => eapply (tac_wp_load _ _ _ _ _ K))
|fail 1 "wp_load: cannot find 'Load' in" e]; |fail 1 "wp_load: cannot find 'Load' in" e];
[iSolveTC [tc_solve
|solve_mapsto () |solve_mapsto ()
|wp_finish] |wp_finish]
| |- envs_entails _ (twp ?s ?E ?e ?Q) => | |- envs_entails _ (twp ?s ?E ?e ?Q) =>
...@@ -756,7 +756,7 @@ Tactic Notation "wp_store" := ...@@ -756,7 +756,7 @@ Tactic Notation "wp_store" :=
first first
[reshape_expr e ltac:(fun K e' => eapply (tac_wp_store _ _ _ _ _ K)) [reshape_expr e ltac:(fun K e' => eapply (tac_wp_store _ _ _ _ _ K))
|fail 1 "wp_store: cannot find 'Store' in" e]; |fail 1 "wp_store: cannot find 'Store' in" e];
[iSolveTC [tc_solve
|solve_mapsto () |solve_mapsto ()
|pm_reduce; first [wp_seq|wp_finish]] |pm_reduce; first [wp_seq|wp_finish]]
| |- envs_entails _ (twp ?s ?E ?e ?Q) => | |- envs_entails _ (twp ?s ?E ?e ?Q) =>
...@@ -778,7 +778,7 @@ Tactic Notation "wp_xchg" := ...@@ -778,7 +778,7 @@ Tactic Notation "wp_xchg" :=
first first
[reshape_expr e ltac:(fun K e' => eapply (tac_wp_xchg _ _ _ _ _ K)) [reshape_expr e ltac:(fun K e' => eapply (tac_wp_xchg _ _ _ _ _ K))
|fail 1 "wp_xchg: cannot find 'Xchg' in" e]; |fail 1 "wp_xchg: cannot find 'Xchg' in" e];
[iSolveTC [tc_solve
|solve_mapsto () |solve_mapsto ()
|pm_reduce; first [wp_seq|wp_finish]] |pm_reduce; first [wp_seq|wp_finish]]
| |- envs_entails _ (twp ?s ?E ?e ?Q) => | |- envs_entails _ (twp ?s ?E ?e ?Q) =>
...@@ -800,7 +800,7 @@ Tactic Notation "wp_cmpxchg" "as" simple_intropattern(H1) "|" simple_intropatter ...@@ -800,7 +800,7 @@ Tactic Notation "wp_cmpxchg" "as" simple_intropattern(H1) "|" simple_intropatter
first first
[reshape_expr e ltac:(fun K e' => eapply (tac_wp_cmpxchg _ _ _ _ _ K)) [reshape_expr e ltac:(fun K e' => eapply (tac_wp_cmpxchg _ _ _ _ _ K))
|fail 1 "wp_cmpxchg: cannot find 'CmpXchg' in" e]; |fail 1 "wp_cmpxchg: cannot find 'CmpXchg' in" e];
[iSolveTC [tc_solve
|solve_mapsto () |solve_mapsto ()
|try solve_vals_compare_safe |try solve_vals_compare_safe
|pm_reduce; intros H1; wp_finish |pm_reduce; intros H1; wp_finish
...@@ -826,7 +826,7 @@ Tactic Notation "wp_cmpxchg_fail" := ...@@ -826,7 +826,7 @@ Tactic Notation "wp_cmpxchg_fail" :=
first first
[reshape_expr e ltac:(fun K e' => eapply (tac_wp_cmpxchg_fail _ _ _ _ _ K)) [reshape_expr e ltac:(fun K e' => eapply (tac_wp_cmpxchg_fail _ _ _ _ _ K))
|fail 1 "wp_cmpxchg_fail: cannot find 'CmpXchg' in" e]; |fail 1 "wp_cmpxchg_fail: cannot find 'CmpXchg' in" e];
[iSolveTC [tc_solve
|solve_mapsto () |solve_mapsto ()
|try (simpl; congruence) (* value inequality *) |try (simpl; congruence) (* value inequality *)
|try solve_vals_compare_safe |try solve_vals_compare_safe
...@@ -852,7 +852,7 @@ Tactic Notation "wp_cmpxchg_suc" := ...@@ -852,7 +852,7 @@ Tactic Notation "wp_cmpxchg_suc" :=
first first
[reshape_expr e ltac:(fun K e' => eapply (tac_wp_cmpxchg_suc _ _ _ _ _ K)) [reshape_expr e ltac:(fun K e' => eapply (tac_wp_cmpxchg_suc _ _ _ _ _ K))
|fail 1 "wp_cmpxchg_suc: cannot find 'CmpXchg' in" e]; |fail 1 "wp_cmpxchg_suc: cannot find 'CmpXchg' in" e];
[iSolveTC [tc_solve
|solve_mapsto () |solve_mapsto ()
|try (simpl; congruence) (* value equality *) |try (simpl; congruence) (* value equality *)
|try solve_vals_compare_safe |try solve_vals_compare_safe
...@@ -878,7 +878,7 @@ Tactic Notation "wp_faa" := ...@@ -878,7 +878,7 @@ Tactic Notation "wp_faa" :=
first first
[reshape_expr e ltac:(fun K e' => eapply (tac_wp_faa _ _ _ _ _ K)) [reshape_expr e ltac:(fun K e' => eapply (tac_wp_faa _ _ _ _ _ K))
|fail 1 "wp_faa: cannot find 'FAA' in" e]; |fail 1 "wp_faa: cannot find 'FAA' in" e];
[iSolveTC [tc_solve
|solve_mapsto () |solve_mapsto ()
|pm_reduce; wp_finish] |pm_reduce; wp_finish]
| |- envs_entails _ (twp ?s ?E ?e ?Q) => | |- envs_entails _ (twp ?s ?E ?e ?Q) =>
......
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