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
Rodolphe Lepigre
Iris
Commits
9aed61c5
Commit
9aed61c5
authored
Feb 25, 2016
by
Ralf Jung
Browse files
more f_equiv work.
parent
8d983adf
Changes
3
Hide whitespace changes
Inline
Side-by-side
prelude/tactics.v
View file @
9aed61c5
...
...
@@ -236,17 +236,17 @@ Ltac f_equiv :=
try
lazymatch
goal
with
|
|-
pointwise_relation
_
_
_
_
=>
intros
?
end
;
(* Normalize away equalities. *)
subst
;
(* repeatedly apply congruence lemmas and use the equalities in the hypotheses. *)
first
[
reflexivity
|
assumption
|
symmetry
;
assumption
|
match
goal
with
(* We support matches on both sides, *if* they concern the same
or provably equal
variable
s
.
variable.
TODO: We should support different variables, provided that we can
derive contradictions for the off-diagonal cases. *)
|
|-
?R
(
match
?x
with
_
=>
_
end
)
(
match
?x
with
_
=>
_
end
)
=>
destruct
x
;
f_equiv
|
|-
?R
(
match
?x
with
_
=>
_
end
)
(
match
?y
with
_
=>
_
end
)
=>
subst
y
;
f_equiv
(* First assume that the arguments need the same relation as the result *)
|
|-
?R
(
?f
?x
)
(
?f
_
)
=>
let
H
:
=
fresh
"Proper"
in
...
...
program_logic/hoare.v
View file @
9aed61c5
...
...
@@ -27,7 +27,7 @@ Import uPred.
Global
Instance
ht_ne
E
n
:
Proper
(
dist
n
==>
eq
==>
pointwise_relation
_
(
dist
n
)
==>
dist
n
)
(@
ht
Λ
Σ
E
).
Proof
.
by
intros
P
P'
HP
e
?
<-
Φ
Φ
'
H
Φ
;
rewrite
/
ht
HP
;
setoid_rewrite
H
Φ
.
Qed
.
Proof
.
solve_proper
.
Qed
.
Global
Instance
ht_proper
E
:
Proper
((
≡
)
==>
eq
==>
pointwise_relation
_
(
≡
)
==>
(
≡
))
(@
ht
Λ
Σ
E
).
Proof
.
by
intros
P
P'
HP
e
?
<-
Φ
Φ
'
H
Φ
;
rewrite
/
ht
HP
;
setoid_rewrite
H
Φ
.
Qed
.
...
...
program_logic/viewshifts.v
View file @
9aed61c5
...
...
@@ -30,7 +30,7 @@ Qed.
Global
Instance
vs_ne
E1
E2
n
:
Proper
(
dist
n
==>
dist
n
==>
dist
n
)
(@
vs
Λ
Σ
E1
E2
).
Proof
.
by
intros
P
P'
HP
Q
Q'
HQ
;
rewrite
/
vs
HP
HQ
.
Qed
.
Proof
.
solve_proper
.
Qed
.
Global
Instance
vs_proper
E1
E2
:
Proper
((
≡
)
==>
(
≡
)
==>
(
≡
))
(@
vs
Λ
Σ
E1
E2
).
Proof
.
apply
ne_proper_2
,
_
.
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