Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
iris
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jonas Kastberg
iris
Commits
1fa70657
Commit
1fa70657
authored
Feb 04, 2016
by
Robbert Krebbers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make functor stuff more consistent.
parent
1cfbdb17
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
36 additions
and
47 deletions
+36
-47
algebra/agree.v
algebra/agree.v
+3
-3
algebra/auth.v
algebra/auth.v
+4
-4
algebra/cmra.v
algebra/cmra.v
+0
-9
algebra/excl.v
algebra/excl.v
+2
-2
algebra/fin_maps.v
algebra/fin_maps.v
+9
-15
algebra/option.v
algebra/option.v
+8
-4
program_logic/model.v
program_logic/model.v
+2
-2
program_logic/resources.v
program_logic/resources.v
+8
-8
No files found.
algebra/agree.v
View file @
1fa70657
...
@@ -167,9 +167,9 @@ Section agree_map.
...
@@ -167,9 +167,9 @@ Section agree_map.
Qed
.
Qed
.
End
agree_map
.
End
agree_map
.
Definition
agree
RA_map
{
A
B
}
(
f
:
A
-
n
>
B
)
:
agreeRA
A
-
n
>
agreeRA
B
:
=
Definition
agree
C_map
{
A
B
}
(
f
:
A
-
n
>
B
)
:
agreeC
A
-
n
>
agreeC
B
:
=
CofeMor
(
agree_map
f
:
agree
RA
A
→
agreeRA
B
).
CofeMor
(
agree_map
f
:
agree
C
A
→
agreeC
B
).
Instance
agree
RA_map_ne
A
B
n
:
Proper
(
dist
n
==>
dist
n
)
(@
agreeRA
_map
A
B
).
Instance
agree
C_map_ne
A
B
n
:
Proper
(
dist
n
==>
dist
n
)
(@
agreeC
_map
A
B
).
Proof
.
Proof
.
intros
f
g
Hfg
x
;
split
;
simpl
;
intros
;
first
done
.
intros
f
g
Hfg
x
;
split
;
simpl
;
intros
;
first
done
.
by
apply
dist_le
with
n
;
try
apply
Hfg
.
by
apply
dist_le
with
n
;
try
apply
Hfg
.
...
...
algebra/auth.v
View file @
1fa70657
...
@@ -177,7 +177,7 @@ Proof. by destruct x; rewrite /= excl_fmap_id. Qed.
...
@@ -177,7 +177,7 @@ Proof. by destruct x; rewrite /= excl_fmap_id. Qed.
Lemma
excl_fmap_compose
{
A
B
C
}
(
f
:
A
→
B
)
(
g
:
B
→
C
)
(
x
:
auth
A
)
:
Lemma
excl_fmap_compose
{
A
B
C
}
(
f
:
A
→
B
)
(
g
:
B
→
C
)
(
x
:
auth
A
)
:
g
∘
f
<$>
x
=
g
<$>
f
<$>
x
.
g
∘
f
<$>
x
=
g
<$>
f
<$>
x
.
Proof
.
by
destruct
x
;
rewrite
/=
excl_fmap_compose
.
Qed
.
Proof
.
by
destruct
x
;
rewrite
/=
excl_fmap_compose
.
Qed
.
Instance
auth_fmap_cmra_ne
{
A
B
:
c
mra
T
}
n
:
Instance
auth_fmap_cmra_ne
{
A
B
:
c
ofe
T
}
n
:
Proper
((
dist
n
==>
dist
n
)
==>
dist
n
==>
dist
n
)
(@
fmap
auth
_
A
B
).
Proper
((
dist
n
==>
dist
n
)
==>
dist
n
==>
dist
n
)
(@
fmap
auth
_
A
B
).
Proof
.
Proof
.
intros
f
g
Hf
[??]
[??]
[??]
;
split
;
[
by
apply
excl_fmap_cmra_ne
|
by
apply
Hf
].
intros
f
g
Hf
[??]
[??]
[??]
;
split
;
[
by
apply
excl_fmap_cmra_ne
|
by
apply
Hf
].
...
@@ -192,7 +192,7 @@ Proof.
...
@@ -192,7 +192,7 @@ Proof.
*
intros
n
[[
a
|
|]
b
]
;
rewrite
/=
/
cmra_validN
;
*
intros
n
[[
a
|
|]
b
]
;
rewrite
/=
/
cmra_validN
;
naive_solver
eauto
using
@
includedN_preserving
,
@
validN_preserving
.
naive_solver
eauto
using
@
includedN_preserving
,
@
validN_preserving
.
Qed
.
Qed
.
Definition
auth
RA_map
{
A
B
:
cmraT
}
(
f
:
A
-
n
>
B
)
:
authRA
A
-
n
>
authRA
B
:
=
Definition
auth
C_map
{
A
B
}
(
f
:
A
-
n
>
B
)
:
authC
A
-
n
>
authC
B
:
=
CofeMor
(
fmap
f
:
auth
RA
A
→
authRA
B
).
CofeMor
(
fmap
f
:
auth
C
A
→
authC
B
).
Lemma
auth
RA_map_ne
A
B
n
:
Proper
(
dist
n
==>
dist
n
)
(@
authRA
_map
A
B
).
Lemma
auth
C_map_ne
A
B
n
:
Proper
(
dist
n
==>
dist
n
)
(@
authC
_map
A
B
).
Proof
.
intros
f
f'
Hf
[[
a
|
|]
b
]
;
repeat
constructor
;
apply
Hf
.
Qed
.
Proof
.
intros
f
f'
Hf
[[
a
|
|]
b
]
;
repeat
constructor
;
apply
Hf
.
Qed
.
algebra/cmra.v
View file @
1fa70657
...
@@ -522,11 +522,6 @@ Proof.
...
@@ -522,11 +522,6 @@ Proof.
by
split
;
apply
includedN_preserving
.
by
split
;
apply
includedN_preserving
.
*
by
intros
n
x
[??]
;
split
;
simpl
;
apply
validN_preserving
.
*
by
intros
n
x
[??]
;
split
;
simpl
;
apply
validN_preserving
.
Qed
.
Qed
.
Definition
prodRA_map
{
A
A'
B
B'
:
cmraT
}
(
f
:
A
-
n
>
A'
)
(
g
:
B
-
n
>
B'
)
:
prodRA
A
B
-
n
>
prodRA
A'
B'
:
=
CofeMor
(
prod_map
f
g
:
prodRA
A
B
→
prodRA
A'
B'
).
Instance
prodRA_map_ne
{
A
A'
B
B'
}
n
:
Proper
(
dist
n
==>
dist
n
==>
dist
n
)
(@
prodRA_map
A
A'
B
B'
)
:
=
prodC_map_ne
n
.
(** ** Indexed product *)
(** ** Indexed product *)
Section
iprod_cmra
.
Section
iprod_cmra
.
...
@@ -631,7 +626,3 @@ Proof.
...
@@ -631,7 +626,3 @@ Proof.
rewrite
/
iprod_map
;
apply
includedN_preserving
,
Hf
.
rewrite
/
iprod_map
;
apply
includedN_preserving
,
Hf
.
*
intros
n
g
Hg
x
;
rewrite
/
iprod_map
;
apply
validN_preserving
,
Hg
.
*
intros
n
g
Hg
x
;
rewrite
/
iprod_map
;
apply
validN_preserving
,
Hg
.
Qed
.
Qed
.
Definition
iprodRA_map
{
A
}
{
B1
B2
:
A
→
cmraT
}
(
f
:
iprod
(
λ
x
,
B1
x
-
n
>
B2
x
))
:
iprodRA
B1
-
n
>
iprodRA
B2
:
=
CofeMor
(
iprod_map
f
).
Instance
laterRA_map_ne
{
A
}
{
B1
B2
:
A
→
cmraT
}
n
:
Proper
(
dist
n
==>
dist
n
)
(@
iprodRA_map
A
B1
B2
)
:
=
_
.
algebra/excl.v
View file @
1fa70657
...
@@ -174,7 +174,7 @@ Proof.
...
@@ -174,7 +174,7 @@ Proof.
by
destruct
x
,
z
;
constructor
.
by
destruct
x
,
z
;
constructor
.
*
by
intros
n
[
a
|
|].
*
by
intros
n
[
a
|
|].
Qed
.
Qed
.
Definition
excl
RA_map
{
A
B
}
(
f
:
A
-
n
>
B
)
:
exclRA
A
-
n
>
exclRA
B
:
=
Definition
excl
C_map
{
A
B
}
(
f
:
A
-
n
>
B
)
:
exclC
A
-
n
>
exclC
B
:
=
CofeMor
(
fmap
f
:
exclRA
A
→
exclRA
B
).
CofeMor
(
fmap
f
:
exclRA
A
→
exclRA
B
).
Lemma
exclRA_map_ne
A
B
n
:
Proper
(
dist
n
==>
dist
n
)
(@
exclRA
_map
A
B
).
Instance
exclC_map_ne
A
B
n
:
Proper
(
dist
n
==>
dist
n
)
(@
exclC
_map
A
B
).
Proof
.
by
intros
f
f'
Hf
[]
;
constructor
;
apply
Hf
.
Qed
.
Proof
.
by
intros
f
f'
Hf
[]
;
constructor
;
apply
Hf
.
Qed
.
algebra/fin_maps.v
View file @
1fa70657
...
@@ -226,18 +226,10 @@ Lemma map_updateP_alloc' m x :
...
@@ -226,18 +226,10 @@ Lemma map_updateP_alloc' m x :
Proof
.
eauto
using
map_updateP_alloc
.
Qed
.
Proof
.
eauto
using
map_updateP_alloc
.
Qed
.
End
properties
.
End
properties
.
(** Functor *)
Instance
map_fmap_ne
`
{
Countable
K
}
{
A
B
:
cofeT
}
(
f
:
A
→
B
)
n
:
Instance
map_fmap_ne
`
{
Countable
K
}
{
A
B
:
cofeT
}
(
f
:
A
→
B
)
n
:
Proper
(
dist
n
==>
dist
n
)
f
→
Proper
(
dist
n
==>
dist
n
)
(
fmap
(
M
:
=
gmap
K
)
f
).
Proper
(
dist
n
==>
dist
n
)
f
→
Proper
(
dist
n
==>
dist
n
)
(
fmap
(
M
:
=
gmap
K
)
f
).
Proof
.
by
intros
?
m
m'
Hm
k
;
rewrite
!
lookup_fmap
;
apply
option_fmap_ne
.
Qed
.
Proof
.
by
intros
?
m
m'
Hm
k
;
rewrite
!
lookup_fmap
;
apply
option_fmap_ne
.
Qed
.
Definition
mapC_map
`
{
Countable
K
}
{
A
B
}
(
f
:
A
-
n
>
B
)
:
mapC
K
A
-
n
>
mapC
K
B
:
=
CofeMor
(
fmap
f
:
mapC
K
A
→
mapC
K
B
).
Instance
mapC_map_ne
`
{
Countable
K
}
{
A
B
}
n
:
Proper
(
dist
n
==>
dist
n
)
(@
mapC_map
K
_
_
A
B
).
Proof
.
intros
f
g
Hf
m
k
;
rewrite
/=
!
lookup_fmap
.
destruct
(
_
!!
k
)
eqn
:
?
;
simpl
;
constructor
;
apply
Hf
.
Qed
.
Instance
map_fmap_cmra_monotone
`
{
Countable
K
}
{
A
B
:
cmraT
}
(
f
:
A
→
B
)
Instance
map_fmap_cmra_monotone
`
{
Countable
K
}
{
A
B
:
cmraT
}
(
f
:
A
→
B
)
`
{!
CMRAMonotone
f
}
:
CMRAMonotone
(
fmap
f
:
gmap
K
A
→
gmap
K
B
).
`
{!
CMRAMonotone
f
}
:
CMRAMonotone
(
fmap
f
:
gmap
K
A
→
gmap
K
B
).
Proof
.
Proof
.
...
@@ -246,9 +238,11 @@ Proof.
...
@@ -246,9 +238,11 @@ Proof.
by
rewrite
!
lookup_fmap
;
apply
:
includedN_preserving
.
by
rewrite
!
lookup_fmap
;
apply
:
includedN_preserving
.
*
by
intros
n
m
?
i
;
rewrite
lookup_fmap
;
apply
validN_preserving
.
*
by
intros
n
m
?
i
;
rewrite
lookup_fmap
;
apply
validN_preserving
.
Qed
.
Qed
.
Definition
mapRA_map
`
{
Countable
K
}
{
A
B
:
cmraT
}
(
f
:
A
-
n
>
B
)
:
Definition
mapC_map
`
{
Countable
K
}
{
A
B
}
(
f
:
A
-
n
>
B
)
:
mapC
K
A
-
n
>
mapC
K
B
:
=
mapRA
K
A
-
n
>
mapRA
K
B
:
=
CofeMor
(
fmap
f
:
mapRA
K
A
→
mapRA
K
B
).
CofeMor
(
fmap
f
:
mapC
K
A
→
mapC
K
B
).
Instance
mapRA_map_ne
`
{
Countable
K
}
{
A
B
}
n
:
Instance
mapC_map_ne
`
{
Countable
K
}
{
A
B
}
n
:
Proper
(
dist
n
==>
dist
n
)
(@
mapRA_map
K
_
_
A
B
)
:
=
mapC_map_ne
n
.
Proper
(
dist
n
==>
dist
n
)
(@
mapC_map
K
_
_
A
B
).
Instance
mapRA_map_monotone
`
{
Countable
K
}
{
A
B
:
cmraT
}
(
f
:
A
-
n
>
B
)
Proof
.
`
{!
CMRAMonotone
f
}
:
CMRAMonotone
(
mapRA_map
f
)
:
=
_
.
intros
f
g
Hf
m
k
;
rewrite
/=
!
lookup_fmap
.
destruct
(
_
!!
k
)
eqn
:
?
;
simpl
;
constructor
;
apply
Hf
.
Qed
.
algebra/option.v
View file @
1fa70657
...
@@ -57,10 +57,6 @@ End cofe.
...
@@ -57,10 +57,6 @@ End cofe.
Arguments
optionC
:
clear
implicits
.
Arguments
optionC
:
clear
implicits
.
Instance
option_fmap_ne
{
A
B
:
cofeT
}
(
f
:
A
→
B
)
n
:
Proper
(
dist
n
==>
dist
n
)
f
→
Proper
(
dist
n
==>
dist
n
)
(
fmap
(
M
:
=
option
)
f
).
Proof
.
by
intros
Hf
;
destruct
1
;
constructor
;
apply
Hf
.
Qed
.
(* CMRA *)
(* CMRA *)
Section
cmra
.
Section
cmra
.
Context
{
A
:
cmraT
}.
Context
{
A
:
cmraT
}.
...
@@ -158,6 +154,10 @@ End cmra.
...
@@ -158,6 +154,10 @@ End cmra.
Arguments
optionRA
:
clear
implicits
.
Arguments
optionRA
:
clear
implicits
.
(** Functor *)
Instance
option_fmap_ne
{
A
B
:
cofeT
}
(
f
:
A
→
B
)
n
:
Proper
(
dist
n
==>
dist
n
)
f
→
Proper
(
dist
n
==>
dist
n
)
(
fmap
(
M
:
=
option
)
f
).
Proof
.
by
intros
Hf
;
destruct
1
;
constructor
;
apply
Hf
.
Qed
.
Instance
option_fmap_cmra_monotone
{
A
B
:
cmraT
}
(
f
:
A
→
B
)
`
{!
CMRAMonotone
f
}
:
Instance
option_fmap_cmra_monotone
{
A
B
:
cmraT
}
(
f
:
A
→
B
)
`
{!
CMRAMonotone
f
}
:
CMRAMonotone
(
fmap
f
:
option
A
→
option
B
).
CMRAMonotone
(
fmap
f
:
option
A
→
option
B
).
Proof
.
Proof
.
...
@@ -166,3 +166,7 @@ Proof.
...
@@ -166,3 +166,7 @@ Proof.
intros
[->|[->|(
x
&
y
&->&->&?)]]
;
simpl
;
eauto
10
using
@
includedN_preserving
.
intros
[->|[->|(
x
&
y
&->&->&?)]]
;
simpl
;
eauto
10
using
@
includedN_preserving
.
*
by
intros
n
[
x
|]
?
;
rewrite
/
cmra_validN
/=
;
try
apply
validN_preserving
.
*
by
intros
n
[
x
|]
?
;
rewrite
/
cmra_validN
/=
;
try
apply
validN_preserving
.
Qed
.
Qed
.
Definition
optionC_map
{
A
B
}
(
f
:
A
-
n
>
B
)
:
optionC
A
-
n
>
optionC
B
:
=
CofeMor
(
fmap
f
:
optionC
A
→
optionC
B
).
Instance
optionC_map_ne
A
B
n
:
Proper
(
dist
n
==>
dist
n
)
(@
optionC_map
A
B
).
Proof
.
by
intros
f
f'
Hf
[]
;
constructor
;
apply
Hf
.
Qed
.
program_logic/model.v
View file @
1fa70657
...
@@ -6,7 +6,7 @@ Definition F (Λ : language) (Σ : iFunctor) (A B : cofeT) : cofeT :=
...
@@ -6,7 +6,7 @@ Definition F (Λ : language) (Σ : iFunctor) (A B : cofeT) : cofeT :=
uPredC
(
resRA
Λ
Σ
(
laterC
A
)).
uPredC
(
resRA
Λ
Σ
(
laterC
A
)).
Definition
map
{
Λ
:
language
}
{
Σ
:
iFunctor
}
{
A1
A2
B1
B2
:
cofeT
}
Definition
map
{
Λ
:
language
}
{
Σ
:
iFunctor
}
{
A1
A2
B1
B2
:
cofeT
}
(
f
:
(
A2
-
n
>
A1
)
*
(
B1
-
n
>
B2
))
:
F
Λ
Σ
A1
B1
-
n
>
F
Λ
Σ
A2
B2
:
=
(
f
:
(
A2
-
n
>
A1
)
*
(
B1
-
n
>
B2
))
:
F
Λ
Σ
A1
B1
-
n
>
F
Λ
Σ
A2
B2
:
=
uPredC_map
(
res
RA
_map
(
laterC_map
(
f
.
1
))).
uPredC_map
(
res
C
_map
(
laterC_map
(
f
.
1
))).
Definition
result
Λ
Σ
:
solution
(
F
Λ
Σ
).
Definition
result
Λ
Σ
:
solution
(
F
Λ
Σ
).
Proof
.
Proof
.
apply
(
solver
.
result
_
(@
map
Λ
Σ
)).
apply
(
solver
.
result
_
(@
map
Λ
Σ
)).
...
@@ -18,7 +18,7 @@ Proof.
...
@@ -18,7 +18,7 @@ Proof.
rewrite
-
res_map_compose
.
apply
res_map_ext
=>{
r
}
r
/=.
rewrite
-
res_map_compose
.
apply
res_map_ext
=>{
r
}
r
/=.
by
rewrite
-
later_map_compose
.
by
rewrite
-
later_map_compose
.
*
intros
A1
A2
B1
B2
n
f
f'
[??]
P
.
*
intros
A1
A2
B1
B2
n
f
f'
[??]
P
.
by
apply
upredC_map_ne
,
res
RA
_map_ne
,
laterC_map_contractive
.
by
apply
upredC_map_ne
,
res
C
_map_ne
,
laterC_map_contractive
.
Qed
.
Qed
.
End
iProp
.
End
iProp
.
...
...
program_logic/resources.v
View file @
1fa70657
...
@@ -39,9 +39,7 @@ Proof. by destruct 1. Qed.
...
@@ -39,9 +39,7 @@ Proof. by destruct 1. Qed.
Global
Instance
pst_ne
n
:
Proper
(
dist
n
==>
dist
n
)
(@
pst
Λ
Σ
A
).
Global
Instance
pst_ne
n
:
Proper
(
dist
n
==>
dist
n
)
(@
pst
Λ
Σ
A
).
Proof
.
by
destruct
1
.
Qed
.
Proof
.
by
destruct
1
.
Qed
.
Global
Instance
pst_ne'
n
:
Proper
(
dist
(
S
n
)
==>
(
≡
))
(@
pst
Λ
Σ
A
).
Global
Instance
pst_ne'
n
:
Proper
(
dist
(
S
n
)
==>
(
≡
))
(@
pst
Λ
Σ
A
).
Proof
.
Proof
.
destruct
1
;
apply
(
timeless
_
),
dist_le
with
(
S
n
)
;
auto
with
lia
.
Qed
.
intros
σ
σ
'
[???]
;
apply
(
timeless
_
),
dist_le
with
(
S
n
)
;
auto
with
lia
.
Qed
.
Global
Instance
pst_proper
:
Proper
((
≡
)
==>
(=))
(@
pst
Λ
Σ
A
).
Global
Instance
pst_proper
:
Proper
((
≡
)
==>
(=))
(@
pst
Λ
Σ
A
).
Proof
.
by
destruct
1
;
unfold_leibniz
.
Qed
.
Proof
.
by
destruct
1
;
unfold_leibniz
.
Qed
.
Global
Instance
gst_ne
n
:
Proper
(
dist
n
==>
dist
n
)
(@
gst
Λ
Σ
A
).
Global
Instance
gst_ne
n
:
Proper
(
dist
n
==>
dist
n
)
(@
gst
Λ
Σ
A
).
...
@@ -164,6 +162,8 @@ Qed.
...
@@ -164,6 +162,8 @@ Qed.
Global
Instance
Res_timeless
e
σ
m
:
Timeless
m
→
Timeless
(
Res
∅
e
σ
m
).
Global
Instance
Res_timeless
e
σ
m
:
Timeless
m
→
Timeless
(
Res
∅
e
σ
m
).
Proof
.
by
intros
?
?
[???]
;
constructor
;
apply
(
timeless
_
).
Qed
.
Proof
.
by
intros
?
?
[???]
;
constructor
;
apply
(
timeless
_
).
Qed
.
End
res
.
End
res
.
Arguments
resC
:
clear
implicits
.
Arguments
resRA
:
clear
implicits
.
Arguments
resRA
:
clear
implicits
.
Definition
res_map
{
Λ
Σ
A
B
}
(
f
:
A
-
n
>
B
)
(
r
:
res
Λ
Σ
A
)
:
res
Λ
Σ
B
:
=
Definition
res_map
{
Λ
Σ
A
B
}
(
f
:
A
-
n
>
B
)
(
r
:
res
Λ
Σ
A
)
:
res
Λ
Σ
B
:
=
...
@@ -196,8 +196,6 @@ Proof.
...
@@ -196,8 +196,6 @@ Proof.
*
by
apply
map_fmap_setoid_ext
=>
i
x
?
;
apply
agree_map_ext
.
*
by
apply
map_fmap_setoid_ext
=>
i
x
?
;
apply
agree_map_ext
.
*
by
apply
ifunctor_map_ext
.
*
by
apply
ifunctor_map_ext
.
Qed
.
Qed
.
Definition
resRA_map
{
Λ
Σ
A
B
}
(
f
:
A
-
n
>
B
)
:
resRA
Λ
Σ
A
-
n
>
resRA
Λ
Σ
B
:
=
CofeMor
(
res_map
f
:
resRA
Λ
Σ
A
→
resRA
Λ
Σ
B
).
Instance
res_map_cmra_monotone
{
Λ
Σ
}
{
A
B
:
cofeT
}
(
f
:
A
-
n
>
B
)
:
Instance
res_map_cmra_monotone
{
Λ
Σ
}
{
A
B
:
cofeT
}
(
f
:
A
-
n
>
B
)
:
CMRAMonotone
(@
res_map
Λ
Σ
_
_
f
).
CMRAMonotone
(@
res_map
Λ
Σ
_
_
f
).
Proof
.
Proof
.
...
@@ -206,10 +204,12 @@ Proof.
...
@@ -206,10 +204,12 @@ Proof.
intros
(?&?&?)
;
split_ands'
;
simpl
;
try
apply
includedN_preserving
.
intros
(?&?&?)
;
split_ands'
;
simpl
;
try
apply
includedN_preserving
.
*
by
intros
n
r
(?&?&?)
;
split_ands'
;
simpl
;
try
apply
validN_preserving
.
*
by
intros
n
r
(?&?&?)
;
split_ands'
;
simpl
;
try
apply
validN_preserving
.
Qed
.
Qed
.
Instance
resRA_map_ne
{
Λ
Σ
A
B
}
n
:
Definition
resC_map
{
Λ
Σ
A
B
}
(
f
:
A
-
n
>
B
)
:
resC
Λ
Σ
A
-
n
>
resC
Λ
Σ
B
:
=
Proper
(
dist
n
==>
dist
n
)
(@
resRA_map
Λ
Σ
A
B
).
CofeMor
(
res_map
f
:
resRA
Λ
Σ
A
→
resRA
Λ
Σ
B
).
Instance
resC_map_ne
{
Λ
Σ
A
B
}
n
:
Proper
(
dist
n
==>
dist
n
)
(@
resC_map
Λ
Σ
A
B
).
Proof
.
Proof
.
intros
f
g
Hfg
r
;
split
;
simpl
;
auto
.
intros
f
g
Hfg
r
;
split
;
simpl
;
auto
.
*
by
apply
(
map
RA_map_ne
_
(
agreeRA_map
f
)
(
agreeRA_map
g
)),
agreeRA
_map_ne
.
*
by
apply
(
map
C_map_ne
_
(
agreeC_map
f
)
(
agreeC_map
g
)),
agreeC
_map_ne
.
*
by
apply
ifunctor_map_ne
.
*
by
apply
ifunctor_map_ne
.
Qed
.
Qed
.
Write
Preview
Markdown
is supported
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