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