Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Lennard Gäher
Iris
Commits
a113503b
Commit
a113503b
authored
Dec 02, 2020
by
Robbert Krebbers
Browse files
Revert "Merge branch 'fix-idestruct-specialize' into 'master'"
This reverts merge request !591
parent
550fea78
Changes
3
Hide whitespace changes
Inline
Side-by-side
iris/base_logic/lib/boxes.v
View file @
a113503b
...
...
@@ -247,7 +247,7 @@ Lemma slice_iff E q f P Q Q' γ b :
Proof
.
iIntros
(??)
"#HQQ' #Hs Hb"
.
destruct
b
.
-
iMod
(
slice_delete_full
with
"Hs Hb"
)
as
(
P'
)
"(HQ & Heq & Hb)"
;
try
done
.
i
PoseProof
(
"HQQ'"
with
"HQ"
)
as
"HQ'"
.
i
Destruct
(
"HQQ'"
with
"HQ"
)
as
"HQ'"
.
iMod
(
slice_insert_full
with
"HQ' Hb"
)
as
(
γ
'
?)
"[#Hs' Hb]"
;
try
done
.
iExists
γ
'
,
_
.
iIntros
"{$∗ $# $%} !>"
.
do
2
iNext
.
iRewrite
"Heq"
.
iIntros
"!>"
.
by
iSplit
;
iIntros
"[? $]"
;
iApply
"HQQ'"
.
...
...
iris/proofmode/ltac_tactics.v
View file @
a113503b
...
...
@@ -1992,12 +1992,6 @@ Tactic Notation "iRevertIntros" "(" ident(x1) ident(x2) ident(x3) ident(x4)
iRevertIntros
(
x1
x2
x3
x4
x5
x6
x7
x8
x9
x10
x11
x12
x13
x14
x15
)
""
with
tac
.
(** * Destruct tactic *)
(** [CopyDestruct] is an internal class used by the [iDestruct] tactic to
identify universally quantified hypotheses that should be copied and not be
consumed when they are specialized in proofmode terms.
Not intended for user extensibility. *)
Class
CopyDestruct
{
PROP
:
bi
}
(
P
:
PROP
).
Arguments
CopyDestruct
{
_
}
_
%
I
.
Hint
Mode
CopyDestruct
+
!
:
typeclass_instances
.
...
...
@@ -2019,8 +2013,8 @@ Tactic Notation "iDestructCore" open_constr(lem) "as" constr(p) tactic3(tac) :=
|
string
=>
constr
:
(
Some
(
INamed
lem
))
|
iTrm
=>
lazymatch
lem
with
|
@
I
Trm
ident
_
_
?H
_
_
=>
constr
:
(
Some
H
)
|
@
I
Trm
string
_
_
?H
_
_
=>
constr
:
(
Some
(
INamed
H
))
|
@
i
Trm
ident
?H
_
_
=>
constr
:
(
Some
H
)
|
@
i
Trm
string
?H
_
_
=>
constr
:
(
Some
(
INamed
H
))
|
_
=>
constr
:
(@
None
ident
)
end
|
_
=>
constr
:
(@
None
ident
)
...
...
tests/proofmode.v
View file @
a113503b
...
...
@@ -93,32 +93,6 @@ Lemma test_iDestruct_intuitionistic_2 P Q `{!Persistent P, !Affine P}:
Q
∗
(
Q
-
∗
P
)
-
∗
P
.
Proof
.
iIntros
"[HQ HQP]"
.
iDestruct
(
"HQP"
with
"HQ"
)
as
"#HP"
.
done
.
Qed
.
Lemma
test_iDestruct_specialize_wand
P
Q
:
Q
∗
□
(
Q
-
∗
P
)
-
∗
P
.
Proof
.
iIntros
"[HQ #HQP]"
.
(* iDestruct specializes, consuming the hypothesis *)
iDestruct
(
"HQP"
with
"HQ"
)
as
"HQP"
.
done
.
Qed
.
Lemma
test_iPoseProof_copy_wand
P
Q
:
Q
∗
□
(
Q
-
∗
P
)
-
∗
P
∗
(
Q
-
∗
P
).
Proof
.
iIntros
"[HQ #HQP]"
.
(* in contrast with [iDestruct], [iPoseProof] leaves "HQP" alone *)
iPoseProof
(
"HQP"
with
"HQ"
)
as
"HP"
.
iFrame
"HP HQP"
.
Qed
.
Lemma
test_iDestruct_pose_forall
(
Φ
:
nat
→
PROP
)
:
□
(
∀
(
x
:
nat
),
Φ
x
)
-
∗
Φ
0
∗
Φ
1
.
Proof
.
iIntros
"#H"
.
(* iDestruct does not consume "H" because it's a [∀] *)
iDestruct
(
"H"
$!
0
)
as
"$"
.
iDestruct
(
"H"
$!
1
)
as
"$"
.
Qed
.
Lemma
test_iDestruct_intuitionistic_affine_bi
`
{!
BiAffine
PROP
}
P
Q
`
{!
Persistent
P
}
:
Q
∗
(
Q
-
∗
P
)
-
∗
P
∗
Q
.
Proof
.
iIntros
"[HQ HQP]"
.
iDestruct
(
"HQP"
with
"HQ"
)
as
"#HP"
.
by
iFrame
.
Qed
.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment