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
88e93595
Commit
88e93595
authored
Dec 23, 2017
by
Jacques-Henri Jourdan
Browse files
Whitespaces.
parent
ca60948b
Pipeline
#6044
passed with stages
in 13 minutes and 25 seconds
Changes
16
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
theories/algebra/deprecated.v
View file @
88e93595
...
...
@@ -14,7 +14,7 @@ Local Arguments op _ _ _ !_ /.
Local
Arguments
pcore
_
_
!
_
/.
(* This is isomorphic to option, but has a very different RA structure. *)
Inductive
dec_agree
(
A
:
Type
)
:
Type
:
=
Inductive
dec_agree
(
A
:
Type
)
:
Type
:
=
|
DecAgree
:
A
→
dec_agree
A
|
DecAgreeBot
:
dec_agree
A
.
Arguments
DecAgree
{
_
}
_
.
...
...
theories/algebra/dra.v
View file @
88e93595
...
...
@@ -22,7 +22,7 @@ Record DraMixin A `{Equiv A, Core A, Disjoint A, Op A, Valid A} := {
mixin_dra_core_disjoint_l
x
:
✓
x
→
core
x
##
x
;
mixin_dra_core_l
x
:
✓
x
→
core
x
⋅
x
≡
x
;
mixin_dra_core_idemp
x
:
✓
x
→
core
(
core
x
)
≡
core
x
;
mixin_dra_core_mono
x
y
:
mixin_dra_core_mono
x
y
:
∃
z
,
✓
x
→
✓
y
→
x
##
y
→
core
(
x
⋅
y
)
≡
core
x
⋅
z
∧
✓
z
∧
core
x
##
z
}.
Structure
draT
:
=
DraT
{
...
...
@@ -81,7 +81,7 @@ Section dra_mixin.
Proof
.
apply
(
mixin_dra_core_l
_
(
dra_mixin
A
)).
Qed
.
Lemma
dra_core_idemp
x
:
✓
x
→
core
(
core
x
)
≡
core
x
.
Proof
.
apply
(
mixin_dra_core_idemp
_
(
dra_mixin
A
)).
Qed
.
Lemma
dra_core_mono
x
y
:
Lemma
dra_core_mono
x
y
:
∃
z
,
✓
x
→
✓
y
→
x
##
y
→
core
(
x
⋅
y
)
≡
core
x
⋅
z
∧
✓
z
∧
core
x
##
z
.
Proof
.
apply
(
mixin_dra_core_mono
_
(
dra_mixin
A
)).
Qed
.
End
dra_mixin
.
...
...
@@ -209,7 +209,7 @@ Proof.
assert (✓ y) by (rewrite EQ; by apply dra_op_valid).
split; first done. exists (to_validity z). split; first split.
+ intros _. simpl. by split_and!.
+ intros _. setoid_subst. by apply dra_op_valid.
+ intros _. setoid_subst. by apply dra_op_valid.
+ intros _. rewrite /= EQ //.
Qed.
*)
...
...
theories/algebra/functions.v
View file @
88e93595
...
...
@@ -8,7 +8,7 @@ Definition ofe_fun_insert `{EqDecision A} {B : A → ofeT}
match
decide
(
x
=
x'
)
with
left
H
=>
eq_rect
_
B
y
_
H
|
right
_
=>
f
x'
end
.
Instance
:
Params
(@
ofe_fun_insert
)
5
.
Definition
ofe_fun_singleton
`
{
Finite
A
}
{
B
:
A
→
ucmraT
}
Definition
ofe_fun_singleton
`
{
Finite
A
}
{
B
:
A
→
ucmraT
}
(
x
:
A
)
(
y
:
B
x
)
:
ofe_fun
B
:
=
ofe_fun_insert
x
y
ε
.
Instance
:
Params
(@
ofe_fun_singleton
)
5
.
...
...
theories/algebra/ofe.v
View file @
88e93595
...
...
@@ -6,7 +6,7 @@ Set Default Proof Using "Type".
category, and mathematically speaking, the entire development lives
in this category. However, we will generally prefer to work with raw
Coq functions plus some registered Proper instances for non-expansiveness.
This makes writing such functions much easier. It turns out that it many
This makes writing such functions much easier. It turns out that it many
cases, we do not even need non-expansiveness.
*)
...
...
theories/algebra/sts.v
View file @
88e93595
...
...
@@ -311,7 +311,7 @@ Proof. done. Qed.
Lemma
sts_frag_up_valid
s
T
:
✓
sts_frag_up
s
T
↔
tok
s
##
T
.
Proof
.
split
.
-
move
=>/
sts_frag_valid
[
H
_
].
apply
H
,
elem_of_up
.
-
move
=>/
sts_frag_valid
[
H
_
].
apply
H
,
elem_of_up
.
-
intros
.
apply
sts_frag_valid
;
split
.
by
apply
closed_up
.
set_solver
.
Qed
.
...
...
theories/base_logic/double_negation.v
View file @
88e93595
...
...
@@ -228,7 +228,7 @@ Proof.
revert
P
.
induction
k
;
intros
P
.
-
rewrite
//=
?right_id
.
apply
wand_intro_l
.
rewrite
{
1
}(
nnupd_k_intro
0
(
P
-
∗
False
)%
I
)
//=
?right_id
.
apply
wand_elim_r
.
rewrite
{
1
}(
nnupd_k_intro
0
(
P
-
∗
False
)%
I
)
//=
?right_id
.
apply
wand_elim_r
.
-
rewrite
{
2
}(
nnupd_k_unfold
k
P
).
apply
and_intro
.
*
rewrite
(
nnupd_k_unfold
k
P
).
rewrite
and_elim_l
.
...
...
@@ -291,9 +291,9 @@ Qed.
End
classical
.
(* We might wonder whether we can prove an adequacy lemma for nnupd. We could combine
the adequacy lemma for bupd with the previous result to get adquacy for nnupd, but
the adequacy lemma for bupd with the previous result to get adquacy for nnupd, but
this would rely on the classical axiom we needed to prove the equivalence! Can
we establish adequacy without axioms? Unfortunately not, because adequacy for
we establish adequacy without axioms? Unfortunately not, because adequacy for
nnupd would imply double negation elimination, which is classical: *)
Lemma
nnupd_dne
φ
:
(|=
n
=>
⌜
¬¬
φ
→
φ⌝
:
uPred
M
)%
I
.
...
...
@@ -327,7 +327,7 @@ Proof.
intros
???
Hx'
.
rewrite
left_id
in
Hx'
*=>
Hx'
.
unseal
.
assert
(
n'
<
S
k
∨
n'
=
S
k
)
as
[|]
by
omega
.
*
intros
.
move
:
(
laterN_small
n'
(
S
k
)
x'
False
).
rewrite
//=.
unseal
.
intros
Hsmall
.
*
intros
.
move
:
(
laterN_small
n'
(
S
k
)
x'
False
).
rewrite
//=.
unseal
.
intros
Hsmall
.
eapply
Hsmall
;
eauto
.
*
subst
.
intros
.
exfalso
.
eapply
Hf2
.
exists
x'
.
split
;
eauto
using
cmra_validN_S
.
-
intros
k
P
x
Hx
.
rewrite
?Nat_iter_S_r
.
...
...
theories/base_logic/lib/namespaces.v
View file @
88e93595
...
...
@@ -84,7 +84,7 @@ End namespace.
(* The hope is that registering these will suffice to solve most goals
of the forms:
- [N1 ## N2]
- [N1 ## N2]
- [↑N1 ⊆ E ∖ ↑N2 ∖ .. ∖ ↑Nn]
- [E1 ∖ ↑N1 ⊆ E2 ∖ ↑N2 ∖ .. ∖ ↑Nn] *)
Create
HintDb
ndisj
.
...
...
theories/base_logic/lib/sts.v
View file @
88e93595
...
...
@@ -82,7 +82,7 @@ Section sts.
sts_own
γ
s1
T
==
∗
sts_own
γ
s2
T
.
Proof
.
intros
??.
apply
own_update
,
sts_update_frag_up
;
[|
done
..].
intros
Hdisj
.
apply
sts
.
closed_up
.
done
.
intros
Hdisj
.
apply
sts
.
closed_up
.
done
.
Qed
.
Lemma
sts_own_weaken_tok
γ
s
T1
T2
:
...
...
theories/base_logic/tactics.v
View file @
88e93595
...
...
@@ -60,7 +60,7 @@ Module uPred_reflection. Section uPred_reflection.
match
e
with
|
ETrue
=>
None
|
EVar
n'
=>
if
decide
(
n
=
n'
)
then
Some
ETrue
else
None
|
ESep
e1
e2
=>
|
ESep
e1
e2
=>
match
cancel_go
n
e1
with
|
Some
e1'
=>
Some
(
ESep
e1'
e2
)
|
None
=>
ESep
e1
<$>
cancel_go
n
e2
...
...
theories/heap_lang/lang.v
View file @
88e93595
...
...
@@ -276,7 +276,7 @@ Definition fill_item (Ki : ectx_item) (e : expr) : expr :=
|
CaseCtx
e1
e2
=>
Case
e
e1
e2
|
AllocCtx
=>
Alloc
e
|
LoadCtx
=>
Load
e
|
StoreLCtx
e2
=>
Store
e
e2
|
StoreLCtx
e2
=>
Store
e
e2
|
StoreRCtx
v1
=>
Store
(
of_val
v1
)
e
|
CasLCtx
e1
e2
=>
CAS
e
e1
e2
|
CasMCtx
v0
e2
=>
CAS
(
of_val
v0
)
e
e2
...
...
@@ -365,11 +365,11 @@ Inductive head_step : expr → state → expr → state → list (expr) → Prop
head_step
(
App
(
Rec
f
x
e1
)
e2
)
σ
e'
σ
[]
|
UnOpS
op
e
v
v'
σ
:
to_val
e
=
Some
v
→
un_op_eval
op
v
=
Some
v'
→
un_op_eval
op
v
=
Some
v'
→
head_step
(
UnOp
op
e
)
σ
(
of_val
v'
)
σ
[]
|
BinOpS
op
e1
e2
v1
v2
v'
σ
:
to_val
e1
=
Some
v1
→
to_val
e2
=
Some
v2
→
bin_op_eval
op
v1
v2
=
Some
v'
→
bin_op_eval
op
v1
v2
=
Some
v'
→
head_step
(
BinOp
op
e1
e2
)
σ
(
of_val
v'
)
σ
[]
|
IfTrueS
e1
e2
σ
:
head_step
(
If
(
Lit
$
LitBool
true
)
e1
e2
)
σ
e1
σ
[]
...
...
theories/heap_lang/lib/counter.v
View file @
88e93595
...
...
@@ -55,7 +55,7 @@ Section mono_proof.
-
iDestruct
(
own_valid_2
with
"Hγ Hγf"
)
as
%[?%
mnat_included
_
]%
auth_valid_discrete_2
.
iMod
(
own_update_2
with
"Hγ Hγf"
)
as
"[Hγ Hγf]"
.
{
apply
auth_update
,
(
mnat_local_update
_
_
(
S
c
))
;
auto
.
}
{
apply
auth_update
,
(
mnat_local_update
_
_
(
S
c
))
;
auto
.
}
wp_cas_suc
.
iMod
(
"Hclose"
with
"[Hl Hγ]"
)
as
"_"
.
{
iNext
.
iExists
(
S
c
).
rewrite
Nat2Z
.
inj_succ
Z
.
add_1_l
.
by
iFrame
.
}
iModIntro
.
wp_if
.
iApply
"HΦ"
;
iExists
γ
;
repeat
iSplit
;
eauto
.
...
...
theories/heap_lang/lib/ticket_lock.v
View file @
88e93595
...
...
@@ -94,7 +94,7 @@ Section proof.
+
iMod
(
"Hclose"
with
"[Hlo Hln Hainv Ht]"
)
as
"_"
.
{
iNext
.
iExists
o
,
n
.
iFrame
.
eauto
.
}
iModIntro
.
wp_let
.
wp_op
.
case_bool_decide
;
[|
done
].
wp_if
.
wp_if
.
iApply
(
"HΦ"
with
"[-]"
).
rewrite
/
locked
.
iFrame
.
eauto
.
+
iDestruct
(
own_valid_2
with
"Ht Haown"
)
as
%
[
_
?%
gset_disj_valid_op
].
set_solver
.
...
...
@@ -129,7 +129,7 @@ Section proof.
iModIntro
.
wp_if
.
iApply
(
wait_loop_spec
γ
(#
lo
,
#
ln
)
with
"[-HΦ]"
).
+
iFrame
.
rewrite
/
is_lock
;
eauto
10
.
+
by
iNext
.
+
by
iNext
.
-
wp_cas_fail
.
iMod
(
"Hclose"
with
"[Hlo' Hln' Hauth Haown]"
)
as
"_"
.
{
iNext
.
iExists
o'
,
n'
.
by
iFrame
.
}
...
...
theories/program_logic/weakestpre.v
View file @
88e93595
...
...
@@ -237,7 +237,7 @@ Proof.
iSplitL
"He2"
;
first
by
iApply
(
"IH"
with
"He2"
).
iClear
"Hred Hstep"
.
induction
efs
as
[|
ef
efs
IH
]
;
first
by
iApply
big_sepL_nil
.
rewrite
!
big_sepL_cons
.
iDestruct
"Hefs"
as
"(Hef & Hefs)"
.
iSplitL
"Hef"
.
by
iApply
(
"IH"
with
"Hef"
).
exact
:
IH
.
iSplitL
"Hef"
.
by
iApply
(
"IH"
with
"Hef"
).
exact
:
IH
.
Qed
.
Lemma
fupd_wp
s
E
e
Φ
:
(|={
E
}=>
WP
e
@
s
;
E
{{
Φ
}})
⊢
WP
e
@
s
;
E
{{
Φ
}}.
...
...
theories/proofmode/base.v
View file @
88e93595
...
...
@@ -27,7 +27,7 @@ Definition ascii_beq (x y : ascii) : bool :=
beq
x5
y5
&&
beq
x6
y6
&&
beq
x7
y7
&&
beq
x8
y8
.
Fixpoint
string_beq
(
s1
s2
:
string
)
:
bool
:
=
match
s1
,
s2
with
match
s1
,
s2
with
|
""
,
""
=>
true
|
String
a1
s1
,
String
a2
s2
=>
ascii_beq
a1
a2
&&
string_beq
s1
s2
|
_
,
_
=>
false
...
...
theories/proofmode/environments.v
View file @
88e93595
...
...
@@ -40,7 +40,7 @@ Fixpoint env_app {A} (Γapp : env A) (Γ : env A) : option (env A) :=
match
Γ
app
with
|
Enil
=>
Some
Γ
|
Esnoc
Γ
app
i
x
=>
Γ
'
←
env_app
Γ
app
Γ
;
Γ
'
←
env_app
Γ
app
Γ
;
match
Γ
'
!!
i
with
None
=>
Some
(
Esnoc
Γ
'
i
x
)
|
Some
_
=>
None
end
end
.
...
...
theories/proofmode/tactics.v
View file @
88e93595
...
...
@@ -327,14 +327,14 @@ Local Tactic Notation "iIntro" "#" constr(H) :=
first
[
(* (?P → _) *)
eapply
tac_impl_intro_persistent
with
_
H
_;
(* (i:=H) *)
[
apply
_
||
[
apply
_
||
let
P
:
=
match
goal
with
|-
IntoPersistent
_
?P
_
=>
P
end
in
fail
1
"iIntro: "
P
" not persistent"
|
env_reflexivity
||
fail
1
"iIntro:"
H
"not fresh"
|]
|
(* (?P -∗ _) *)
eapply
tac_wand_intro_persistent
with
_
H
_;
(* (i:=H) *)
[
apply
_
||
[
apply
_
||
let
P
:
=
match
goal
with
|-
IntoPersistent
_
?P
_
=>
P
end
in
fail
1
"iIntro: "
P
" not persistent"
|
env_reflexivity
||
fail
1
"iIntro:"
H
"not fresh"
...
...
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