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
Iris
Iris
Commits
2abfa296
Commit
2abfa296
authored
Feb 14, 2018
by
Ralf Jung
Browse files
explain why we use typeclasses eauto
parent
74e4d637
Pipeline
#6743
passed with stages
in 4 minutes and 29 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
theories/proofmode/tactics.v
View file @
2abfa296
...
...
@@ -629,6 +629,11 @@ Tactic Notation "iIntoValid" open_constr(t) :=
let
e'
:
=
eval
unfold
e
in
e
in
clear
e
;
go
(
t
e'
)
|
_
=>
let
tT'
:
=
eval
cbv
zeta
in
tT
in
eapply
(
as_valid_1
tT'
)
;
(* Doing [apply _] here fails because that will try to solve all evars
whose type is a typeclass, in dependency order (according to Matthieu).
If one fails, it aborts. However, we rely on progress on the main goal
([AsValid ...]) to unify some of these evars and hence enable progress
elsewhere. With [typeclasses eauto], that seems to work better. *)
[
solve
[
typeclasses
eauto
with
typeclass_instances
]
||
fail
"iPoseProof: not a BI assertion"
|
exact
t
]
end
in
go
t
.
...
...
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