Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Iris
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Gaëtan Gilbert
Iris
Commits
e2d44d02
Commit
e2d44d02
authored
1 year ago
by
Robbert Krebbers
Browse files
Options
Downloads
Patches
Plain Diff
Fix bug in `iInv`.
parent
a02e27d6
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
iris/proofmode/ltac_tactics.v
+8
-8
8 additions, 8 deletions
iris/proofmode/ltac_tactics.v
tests/proofmode_iris.ref
+1
-3
1 addition, 3 deletions
tests/proofmode_iris.ref
tests/proofmode_iris.v
+3
-4
3 additions, 4 deletions
tests/proofmode_iris.v
with
12 additions
and
15 deletions
iris/proofmode/ltac_tactics.v
+
8
−
8
View file @
e2d44d02
...
...
@@ -2046,14 +2046,6 @@ Tactic Notation "iInvCore" constr(N) "as" constr(Hclose) "in" tactic3(tac) :=
Tactic
Notation
"iInvCore"
constr
(
N
)
"in"
tactic3
(
tac
)
:=
iInvCore
N
with
"[$]"
as
(
@
None
string
)
in
tac
.
(* With everything *)
Tactic
Notation
"iInv"
constr
(
N
)
"with"
constr
(
Hs
)
"as"
constr
(
pat
)
constr
(
Hclose
)
:=
iInvCore
N
with
Hs
as
(
Some
Hclose
)
in
(
fun
x
H
=>
iDestructHyp0_
H
pat
)
.
Tactic
Notation
"iInv"
constr
(
N
)
"with"
constr
(
Hs
)
"as"
"("
ne_simple_intropattern_list
(
xs
)
")"
constr
(
pat
)
constr
(
Hclose
)
:=
iInvCore
N
with
Hs
as
(
Some
Hclose
)
in
(
fun
x
H
=>
iDestructHyp_
H
xs
pat
)
.
(* Without closing view shift *)
Ltac
iDestructAccAndHyp0
pat
x
H
:=
lazymatch
type
of
x
with
|
unit
=>
destruct
x
as
[];
iDestructHyp0_
H
pat
...
...
@@ -2074,6 +2066,14 @@ Ltac iDestructAccAndHyp xs pat x H :=
|
_
=>
revert
x
;
go
ltac
:(
fun
xs'
=>
iDestructHyp_
H
xs'
pat
)
xs
end
.
(* With everything *)
Tactic
Notation
"iInv"
constr
(
N
)
"with"
constr
(
Hs
)
"as"
constr
(
pat
)
constr
(
Hclose
)
:=
iInvCore
N
with
Hs
as
(
Some
Hclose
)
in
iDestructAccAndHyp0
pat
.
Tactic
Notation
"iInv"
constr
(
N
)
"with"
constr
(
Hs
)
"as"
"("
ne_simple_intropattern_list
(
xs
)
")"
constr
(
pat
)
constr
(
Hclose
)
:=
iInvCore
N
with
Hs
as
(
Some
Hclose
)
in
iDestructAccAndHyp
xs
pat
.
(* Without closing view shift *)
Tactic
Notation
"iInv"
constr
(
N
)
"with"
constr
(
Hs
)
"as"
constr
(
pat
)
:=
iInvCore
N
with
Hs
in
iDestructAccAndHyp0
pat
.
Tactic
Notation
"iInv"
constr
(
N
)
"with"
constr
(
Hs
)
"as"
...
...
This diff is collapsed.
Click to expand it.
tests/proofmode_iris.ref
+
1
−
3
View file @
e2d44d02
...
...
@@ -139,9 +139,7 @@ Tactic failure: iInv: invariant "H2" not found.
The command has indeed failed with message:
Tactic failure: Missing intro pattern for accessor variable.
The command has indeed failed with message:
The command has not failed!
The command has indeed failed with message:
Tactic failure: iExistDestruct: cannot destruct (Φ H1).
Tactic failure: Missing intro pattern for accessor variable.
The command has indeed failed with message:
Tactic failure: Missing intro pattern for accessor variable.
The command has indeed failed with message:
...
...
This diff is collapsed.
Click to expand it.
tests/proofmode_iris.v
+
3
−
4
View file @
e2d44d02
...
...
@@ -251,10 +251,9 @@ Section iris_tests.
Fail
iInv
"HINV"
as
"HINVinner"
.
iInv
"HINV"
as
(
b
)
"HINVinner"
;
rename
b
into
b_exists
.
Undo
.
(* Both sel.pattern and closing view shift *)
(* FIXME this one is broken: no proper error message without a pattern for
the accessor variable, and an error when the pattern is given *)
Fail
Fail
iInv
"HINV"
with
"[//]"
as
"HINVinner"
"Hclose"
.
Fail
iInv
"HINV"
with
"[//]"
as
(
b
)
"HINVinner"
"Hclose"
;
rename
b
into
b_exists
.
Fail
iInv
"HINV"
with
"[//]"
as
"HINVinner"
"Hclose"
.
iInv
"HINV"
with
"[//]"
as
(
b
)
"HINVinner"
"Hclose"
;
rename
b
into
b_exists
.
Undo
.
(* Sel.pattern but no closing view shift *)
Fail
iInv
"HINV"
with
"[//]"
as
"HINVinner"
.
iInv
"HINV"
with
"[//]"
as
(
b
)
"HINVinner"
;
rename
b
into
b_exists
.
Undo
.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment