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
Fairis
Commits
2e658fd7
Commit
2e658fd7
authored
Jan 16, 2016
by
Robbert Krebbers
Browse files
More about finiteness of sets.
parent
3b09687d
Changes
2
Hide whitespace changes
Inline
Side-by-side
prelude/collections.v
View file @
2e658fd7
...
...
@@ -591,6 +591,11 @@ Definition set_finite `{ElemOf A B} (X : B) := ∃ l : list A, ∀ x, x ∈ X
Section
finite
.
Context
`
{
SimpleCollection
A
B
}
.
Global
Instance
set_finite_subseteq
:
Proper
(
flip
(
⊆
)
==>
impl
)
(
@
set_finite
A
B
_
).
Proof
.
intros
X
Y
HX
[
l
Hl
];
exists
l
;
solve_elem_of
.
Qed
.
Global
Instance
set_finite_proper
:
Proper
((
≡
)
==>
iff
)
(
@
set_finite
A
B
_
).
Proof
.
by
intros
X
Y
[
??
];
split
;
apply
set_finite_subseteq
.
Qed
.
Lemma
empty_finite
:
set_finite
∅
.
Proof
.
by
exists
[];
intros
?
;
rewrite
elem_of_empty
.
Qed
.
Lemma
singleton_finite
(
x
:
A
)
:
set_finite
{
[
x
]
}
.
...
...
@@ -614,4 +619,10 @@ Section more_finite.
Proof
.
intros
[
l
?
];
exists
l
;
intros
x
[
??
]
%
elem_of_intersection
;
auto
.
Qed
.
Lemma
difference_finite
X
Y
:
set_finite
X
→
set_finite
(
X
∖
Y
).
Proof
.
intros
[
l
?
];
exists
l
;
intros
x
[
??
]
%
elem_of_difference
;
auto
.
Qed
.
Lemma
difference_finite_inv
X
Y
`
{
∀
x
,
Decision
(
x
∈
Y
)
}
:
set_finite
Y
→
set_finite
(
X
∖
Y
)
→
set_finite
X
.
Proof
.
intros
[
l
?
]
[
k
?
];
exists
(
l
++
k
).
intros
x
?
;
destruct
(
decide
(
x
∈
Y
));
rewrite
elem_of_app
;
solve_elem_of
.
Qed
.
End
more_finite
.
prelude/fin_map_dom.v
View file @
2e658fd7
...
...
@@ -108,6 +108,11 @@ Proof.
rewrite
!
elem_of_dom
,
lookup_fmap
,
<-!
not_eq_None_Some
.
destruct
(
m
!!
i
);
naive_solver
.
Qed
.
Lemma
dom_finite
{
A
}
(
m
:
M
A
)
:
set_finite
(
dom
D
m
).
Proof
.
induction
m
using
map_ind
;
rewrite
?
dom_empty
,
?
dom_insert
;
eauto
using
empty_finite
,
union_finite
,
singleton_finite
.
Qed
.
Context
`
{!
LeibnizEquiv
D
}
.
Lemma
dom_empty_L
{
A
}
:
dom
D
(
@
empty
(
M
A
)
_
)
=
∅
.
...
...
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