Commit e4b924f3 authored by Michael Sammler's avatar Michael Sammler
Browse files

Add evar_safe_vm_compute

parent 75053945
Pipeline #57139 passed with stage
in 22 minutes and 10 seconds
...@@ -89,6 +89,19 @@ Ltac solve_sep_entails := ...@@ -89,6 +89,19 @@ Ltac solve_sep_entails :=
end); end);
eauto with iFrame. eauto with iFrame.
Lemma tac_evar_safe_vm_compute {A} (x y : A):
( z, y = z x = z)
x = y.
Proof. naive_solver. Qed.
(* vm_compute likes to mess with evars that it find in the goal so
evar_safe_vm_compute hides them. *)
Ltac evar_safe_vm_compute :=
apply tac_evar_safe_vm_compute;
let H := fresh in
intros ? H;
vm_compute;
apply H.
(* (*
The following tactics are currently not used. The following tactics are currently not used.
......
...@@ -71,15 +71,14 @@ Arguments vm_compute_hint : simpl never. ...@@ -71,15 +71,14 @@ Arguments vm_compute_hint : simpl never.
Typeclasses Opaque vm_compute_hint. Typeclasses Opaque vm_compute_hint.
Program Definition vm_compute_hint_hint {Σ A B} (f : A option B) x a : Program Definition vm_compute_hint_hint {Σ A B} (f : A option B) x a :
( y, Some x = y f a = y) f a = Some x
TacticHint (vm_compute_hint (Σ:=Σ) f a) := λ H, {| TacticHint (vm_compute_hint (Σ:=Σ) f a) := λ H, {|
tactic_hint_P T := T x; tactic_hint_P T := T x;
|}. |}.
Next Obligation. move => ????????. iIntros "HT". iExists _. iFrame. iPureIntro. naive_solver. Qed. Next Obligation. move => ????????. iIntros "HT". iExists _. iFrame. iPureIntro. naive_solver. Qed.
Global Hint Extern 10 (TacticHint (vm_compute_hint _ _)) => Global Hint Extern 10 (TacticHint (vm_compute_hint _ _)) =>
eapply vm_compute_hint_hint; eapply vm_compute_hint_hint; evar_safe_vm_compute : typeclass_instances.
let H := fresh in intros ? H; vm_compute; apply H : typeclass_instances.
(** * [RelatedTo] *) (** * [RelatedTo] *)
Class RelatedTo {Σ} (pat : iProp Σ) : Type := { Class RelatedTo {Σ} (pat : iProp Σ) : Type := {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment