Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Iris
RefinedC
Commits
e04ed660
Commit
e04ed660
authored
Aug 25, 2021
by
Michael Sammler
Browse files
change implementation of via_vm_compute and add negb simpl instances
parent
93ad2443
Pipeline
#52580
passed with stage
in 32 minutes and 3 seconds
Changes
2
Pipelines
4
Hide whitespace changes
Inline
Side-by-side
theories/lithium/interpreter.v
View file @
e04ed660
...
@@ -665,14 +665,18 @@ Ltac liAccu :=
...
@@ -665,14 +665,18 @@ Ltac liAccu :=
Ltac
liSideCond
:
=
Ltac
liSideCond
:
=
lazymatch
goal
with
lazymatch
goal
with
|
|-
?P
∧
_
=>
|
|-
?P
∧
?Q
=>
lazymatch
P
with
lazymatch
P
with
|
shelve_hint
_
=>
split
;
[
unfold
shelve_hint
;
li_shelve_sidecond
|]
|
shelve_hint
_
=>
split
;
[
unfold
shelve_hint
;
li_shelve_sidecond
|]
|
_
=>
first
[
|
_
=>
first
[
match
P
with
match
P
with
|
context
[
via_vm_compute
?f
?a
]
=>
|
context
C
[
via_vm_compute
?f
?a
]
=>
rewrite
(
via_vm_compute_eq
f
a
)
;
rewrite
(
via_vm_compute_eq
f
a
)
;
vm_compute
(
f
a
)
(* TODO: using [vm_compute (f a)] leads to very slow QED. Why is this the case? *)
(* vm_compute (f a) *)
let
x
:
=
eval
vm_compute
in
(
f
a
)
in
let
P'
:
=
context
C
[
x
]
in
change_no_check
(
P'
∧
Q
)
end
|
end
|
progress
normalize_goal_and
|
progress
normalize_goal_and
|
lazymatch
P
with
lazymatch
P
with
...
...
theories/lithium/simpl_instances.v
View file @
e04ed660
...
@@ -77,6 +77,11 @@ Proof. split; destruct b; naive_solver. Qed.
...
@@ -77,6 +77,11 @@ Proof. split; destruct b; naive_solver. Qed.
Global
Instance
simpl_Is_true_false
b
:
SimplBoth
(
¬
Is_true
b
)
(
b
=
false
).
Global
Instance
simpl_Is_true_false
b
:
SimplBoth
(
¬
Is_true
b
)
(
b
=
false
).
Proof
.
split
;
destruct
b
;
naive_solver
.
Qed
.
Proof
.
split
;
destruct
b
;
naive_solver
.
Qed
.
Global
Instance
simpl_negb_true
b
:
SimplBothRel
(=)
(
negb
b
)
true
(
b
=
false
).
Proof
.
destruct
b
;
done
.
Qed
.
Global
Instance
simpl_negb_false
b
:
SimplBothRel
(=)
(
negb
b
)
false
(
b
=
true
).
Proof
.
destruct
b
;
done
.
Qed
.
Global
Instance
simpl_min_glb_nat
n1
n2
m
:
SimplBoth
(
m
≤
n1
`
min
`
n2
)%
nat
(
m
≤
n1
∧
m
≤
n2
)%
nat
.
Global
Instance
simpl_min_glb_nat
n1
n2
m
:
SimplBoth
(
m
≤
n1
`
min
`
n2
)%
nat
(
m
≤
n1
∧
m
≤
n2
)%
nat
.
Proof
.
rewrite
/
SimplBoth
.
lia
.
Qed
.
Proof
.
rewrite
/
SimplBoth
.
lia
.
Qed
.
Global
Instance
simpl_min_glb
n1
n2
m
:
SimplBoth
(
m
≤
n1
`
min
`
n2
)
(
m
≤
n1
∧
m
≤
n2
).
Global
Instance
simpl_min_glb
n1
n2
m
:
SimplBoth
(
m
≤
n1
`
min
`
n2
)
(
m
≤
n1
∧
m
≤
n2
).
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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