Skip to content
Snippets Groups Projects
Commit 119f7f41 authored by Ralf Jung's avatar Ralf Jung
Browse files

Merge branch 'ralf/mod-pretty' into 'master'

prettify after iMod

See merge request FP/iris-coq!201
parents 7de018e3 3a8a6fe7
No related branches found
No related tags found
No related merge requests found
...@@ -8,7 +8,7 @@ test: $(TESTFILES:.v=.vo) ...@@ -8,7 +8,7 @@ test: $(TESTFILES:.v=.vo)
.PHONY: test .PHONY: test
COQ_TEST=$(COQTOP) $(COQDEBUG) -batch -test-mode COQ_TEST=$(COQTOP) $(COQDEBUG) -batch -test-mode
COQ_BROKEN=$(shell echo "$(COQ_VERSION)" | egrep "^8\.10\b" > /dev/null && echo 1) COQ_BROKEN=$(shell echo "$(COQ_VERSION)" | egrep "^8\.(9|10)\b" > /dev/null && echo 1)
# Can't use pipes because that discards error codes and dash provides no way to control that. # Can't use pipes because that discards error codes and dash provides no way to control that.
# Also egrep errors if it doesn't match anything, we have to ignore that. # Also egrep errors if it doesn't match anything, we have to ignore that.
......
...@@ -338,3 +338,34 @@ ...@@ -338,3 +338,34 @@
--------------------------------------∗ --------------------------------------∗
WP code {{ v, Φ v }} WP code {{ v, Φ v }}
"Prettification"
: string
1 subgoal
Σ : gFunctors
heapG0 : heapG Σ
P : val → iProp Σ
============================
--------------------------------------∗
∀ Φ : language.val heap_lang → iProp Σ, AU << ∀
x : val,
P x >> @ ⊤, ∅
<< ∃ y : val, P y, COMM Φ #() >>
-∗ WP ! #0 {{ v, Φ v }}
1 subgoal
Σ : gFunctors
heapG0 : heapG Σ
P : val → iProp Σ
Φ : language.val heap_lang → iProp Σ
============================
"AU" : ∃ x : val, P x
∗ (P x
={∅,⊤}=∗ AU << ∀ x0 : val,
P x0 >> @ ⊤, ∅
<< ∃ y : val, P y, COMM Φ #() >>)
∧ (∀ x0 : val, P x0 ={∅,⊤}=∗ Φ #())
--------------------------------------∗
WP ! #0 @ ∅ {{ v, |={∅,⊤}=> Φ v }}
...@@ -88,4 +88,13 @@ Section printing. ...@@ -88,4 +88,13 @@ Section printing.
Show. iIntros (Q Φ) "? AU". Show. Show. iIntros (Q Φ) "? AU". Show.
Abort. Abort.
Check "Prettification".
Lemma iMod_prettify (P : val iProp Σ) :
<<< x, P x >>> !#0 @ <<< y, P y, RET #() >>>.
Proof.
iApply wp_atomic_intro. Show.
iIntros (Φ) "AU". iMod "AU". Show.
Abort.
End printing. End printing.
...@@ -1214,7 +1214,7 @@ Tactic Notation "iModCore" constr(H) := ...@@ -1214,7 +1214,7 @@ Tactic Notation "iModCore" constr(H) :=
fail "iMod: cannot eliminate modality" P "in" Q fail "iMod: cannot eliminate modality" P "in" Q
|iSolveSideCondition |iSolveSideCondition
|pm_reflexivity |pm_reflexivity
|(* subgoal *)]. |pm_prettify(* subgoal *)].
(** * Basic destruct tactic *) (** * Basic destruct tactic *)
Local Ltac iDestructHypGo Hz pat := Local Ltac iDestructHypGo Hz pat :=
......
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