Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
stdpp
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Iris
stdpp
Merge requests
!442
miscellaneous map lemmas
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
miscellaneous map lemmas
ralf/map
into
master
Overview
18
Commits
3
Pipelines
9
Changes
1
Merged
Ralf Jung
requested to merge
ralf/map
into
master
2 years ago
Overview
15
Commits
3
Pipelines
9
Changes
1
Expand
some of these are from Perennial
0
0
Merge request reports
Compare
master
version 8
d24fe4ce
2 years ago
version 7
32b96688
2 years ago
version 6
117074cc
2 years ago
version 5
3e937ea0
2 years ago
version 4
7b6d55bd
2 years ago
version 3
7a387a98
2 years ago
version 2
4bbe48a0
2 years ago
version 1
59ff9eae
2 years ago
master (base)
and
latest version
latest version
e05b6af1
3 commits,
2 years ago
version 8
d24fe4ce
2 commits,
2 years ago
version 7
32b96688
1 commit,
2 years ago
version 6
117074cc
1 commit,
2 years ago
version 5
3e937ea0
1 commit,
2 years ago
version 4
7b6d55bd
1 commit,
2 years ago
version 3
7a387a98
1 commit,
2 years ago
version 2
4bbe48a0
1 commit,
2 years ago
version 1
59ff9eae
1 commit,
2 years ago
1 file
+
23
−
0
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
stdpp/fin_maps.v
+
23
−
0
Options
@@ -1010,6 +1010,10 @@ Proof.
auto
using
not_elem_of_list_to_map_1
.
Qed
.
Lemma
map_to_list_length
{
A
}
(
m
:
M
A
)
:
length
(
map_to_list
m
)
=
size
m
.
Proof
.
reflexivity
.
Qed
.
Lemma
map_choose
{
A
}
(
m
:
M
A
)
:
m
≠
∅
→
∃
i
x
,
m
!!
i
=
Some
x
.
Proof
.
rewrite
<-
map_to_list_empty_iff
.
@@ -1116,6 +1120,20 @@ Proof. by rewrite map_size_empty_iff. Qed.
Lemma
map_size_singleton
{
A
}
i
(
x
:
A
)
:
size
({[
i
:=
x
]}
:
M
A
)
=
1
.
Proof
.
unfold
size
,
map_size
.
by
rewrite
map_to_list_singleton
.
Qed
.
Lemma
map_size_ne_0_lookup
{
A
}
(
m
:
M
A
)
:
size
m
≠
0
↔
∃
i
,
is_Some
(
m
!!
i
)
.
Proof
.
rewrite
map_size_non_empty_iff
.
split
.
-
intros
Hsz
.
apply
map_choose
.
intros
Hemp
.
done
.
-
intros
[
i
[
k
Hi
]]
->
.
rewrite
lookup_empty
in
Hi
.
done
.
Qed
.
Lemma
map_size_ne_0_lookup_1
{
A
}
(
m
:
M
A
)
:
size
m
≠
0
→
∃
i
,
is_Some
(
m
!!
i
)
.
Proof
.
intros
.
by
eapply
map_size_ne_0_lookup
.
Qed
.
Lemma
map_size_ne_0_lookup_2
{
A
}
(
m
:
M
A
)
i
:
is_Some
(
m
!!
i
)
→
size
m
≠
0
.
Proof
.
intros
.
eapply
map_size_ne_0_lookup
.
eauto
.
Qed
.
Lemma
map_size_insert
{
A
}
i
x
(
m
:
M
A
)
:
size
(
<
[
i
:=
x
]
>
m
)
=
(
match
m
!!
i
with
Some
_
=>
id
|
None
=>
S
end
)
(
size
m
)
.
Proof
.
@@ -1701,6 +1719,11 @@ Section map_filter.
rewrite
map_subseteq_spec
.
intros
Hm1m2
.
apply
map_filter_strong_subseteq_ext
.
naive_solver
.
Qed
.
Lemma
map_size_filter
m
:
size
(
filter
P
m
)
≤
size
m
.
Proof
.
apply
map_subseteq_size
.
apply
map_filter_subseteq
.
Qed
.
End
map_filter
.
Lemma
map_filter_comm
{
A
}
Loading