Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
coq-pactole
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
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
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pactole
coq-pactole
Commits
41dc107c
Commit
41dc107c
authored
9 months ago
by
Pierre Courtieu
Browse files
Options
Downloads
Plain Diff
Merge remote-tracking branch 'origin/prod' into coq-8.16
parents
d07eb2d6
d5c7ac43
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
.gitlab-ci.yml
+2
-1
2 additions, 1 deletion
.gitlab-ci.yml
Core/Identifiers.v
+39
-3
39 additions, 3 deletions
Core/Identifiers.v
Spaces/Ring.v
+6
-0
6 additions, 0 deletions
Spaces/Ring.v
Util/Fin.v
+6
-0
6 additions, 0 deletions
Util/Fin.v
Util/ListComplements.v
+9
-0
9 additions, 0 deletions
Util/ListComplements.v
with
62 additions
and
4 deletions
.gitlab-ci.yml
+
2
−
1
View file @
41dc107c
...
...
@@ -5,7 +5,8 @@ stages:
stage
:
build
image
:
coqorg/${CI_JOB_NAME}
before_script
:
-
if [ -n "${COMPILER_EDGE}" ]; then opam switch ${COMPILER_EDGE} && eval $(opam env); fi
-
if [ -n "${COMPILER_EDGE}" ]; then opam switch ${COMPILER_EDGE}; fi
-
eval $(opam env)
-
opam update -y
-
opam config list
-
opam repo list
...
...
This diff is collapsed.
Click to expand it.
Core/Identifiers.v
+
39
−
3
View file @
41dc107c
...
...
@@ -123,10 +123,14 @@ unfold names in Heq. repeat rewrite ?map_app, map_map in Heq. apply eqlistA_app_
+
now
do
2
rewrite
map_length
.
Qed
.
Section
Robots
.
Context
(
n
m
:
nat
)
{
ln
lm
:
nat
}
{
ltc_l_n
:
ln
<
c
n
}
{
ltc_l_m
:
lm
<
c
m
}
.
(
**
Given
a
number
of
correct
and
Byzantine
robots
,
we
can
build
canonical
names
.
It
is
not
declared
as
a
global
instance
to
avoid
creating
spurious
settings
.
*
)
Definition
Robots
(
n
m
:
nat
)
:
Names
.
Proof
using
.
Definition
Robots
:
Names
.
Proof
using
n
m
.
refine
{|
nG
:=
n
;
nB
:=
m
;
...
...
@@ -145,5 +149,37 @@ Proof using .
+
intros
?
?
.
apply
enum_eq
.
+
intros
?
?
.
apply
enum_eq
.
Defined
.
Global
Opaque
G
B
.
Notation
G
:=
(
@
G
Robots
).
Notation
B
:=
(
@
B
Robots
).
Lemma
G_Robots
:
G
=
fin
n
.
Proof
using
.
reflexivity
.
Qed
.
Lemma
B_Robots
:
B
=
fin
m
.
Proof
using
.
reflexivity
.
Qed
.
Lemma
G_Robots_eq_iff
:
∀
g1
g2
:
G
,
g1
=
g2
:>
G
<->
g1
=
g2
:>
fin
n
.
Proof
using
.
reflexivity
.
Qed
.
Lemma
B_Robots_eq_iff
:
∀
b1
b2
:
B
,
b1
=
b2
:>
B
<->
b1
=
b2
:>
fin
m
.
Proof
using
.
reflexivity
.
Qed
.
Definition
good0
:
G
:=
fin0
.
Definition
byz0
:
B
:=
fin0
.
Lemma
all_good0
:
∀
g
:
G
,
n
=
1
->
g
=
good0
.
Proof
using
.
intros
*
H
.
rewrite
G_Robots_eq_iff
.
apply
all_fin0
,
H
.
Qed
.
Lemma
all_good_eq
:
∀
g1
g2
:
G
,
n
=
1
->
g1
=
g2
.
Proof
using
ltc_l_n
.
intros
*
H
.
rewrite
G_Robots_eq_iff
.
apply
all_eq
,
H
.
Qed
.
Lemma
all_byz0
:
∀
b
:
B
,
m
=
1
->
b
=
byz0
.
Proof
using
.
intros
*
H
.
rewrite
B_Robots_eq_iff
.
apply
all_fin0
,
H
.
Qed
.
Lemma
all_byz_eq
:
∀
b1
b2
:
B
,
m
=
1
->
b1
=
b2
.
Proof
using
ltc_l_m
.
intros
*
H
.
rewrite
B_Robots_eq_iff
.
apply
all_eq
,
H
.
Qed
.
End
Robots
.
This diff is collapsed.
Click to expand it.
Spaces/Ring.v
+
6
−
0
View file @
41dc107c
...
...
@@ -538,6 +538,9 @@ Proof using .
specialize
(
H
v2
).
rewrite
(
asbfE
v1
),
(
asbfE
v2
)
in
H
.
apply
H
.
Qed
.
Lemma
transs
:
∀
v
:
fin
n
,
trans
v
v
=
fin0
.
Proof
using
.
intros
.
rewrite
transvE
.
apply
asbfVf
.
Qed
.
Definition
sym
(
v
:
fin
n
)
:
isomorphism
Ring
.
Proof
using
.
refine
{|
...
...
@@ -575,4 +578,7 @@ Lemma move_along_sym : ∀ (v1 v2 : fin n) (d : direction),
move_along
(
sym
v1
v2
)
d
=
sym
v1
(
move_along
v2
(
swap_direction
d
)).
Proof
using
.
intros
.
rewrite
symvE
,
(
sybfE
v1
).
apply
move_along_symf
.
Qed
.
Lemma
symm
:
∀
v
:
fin
n
,
sym
v
v
=
v
.
Proof
using
.
intros
.
rewrite
symvE
.
apply
sybff
.
Qed
.
End
Ring
.
This diff is collapsed.
Click to expand it.
Util/Fin.v
+
6
−
0
View file @
41dc107c
...
...
@@ -1632,6 +1632,9 @@ Proof using .
intros
*
f3
.
rewrite
compE
,
3
asbfVE
,
asbfE
,
addf_subf
.
apply
subf_subf
.
Qed
.
Lemma
asbfVf
:
∀
f
:
fin
u
,
(
asbf
f
)
⁻¹
f
=
fin0
.
Proof
using
.
intros
.
rewrite
asbfVE
.
apply
subff
.
Qed
.
(
*
*
*
The
bijection
on
fin
u
whose
section
is
sucf
...
...
@@ -1725,4 +1728,7 @@ Proof using . intros c f. rewrite sybfE, sybfVE. reflexivity. Qed.
Lemma
sybfK
:
∀
c
:
fin
u
,
sybf
c
∘
sybf
c
==
id
.
Proof
using
.
intros
c
f
.
rewrite
compE
,
sybfE
.
apply
symfK
.
Qed
.
Lemma
sybff
:
∀
c
:
fin
u
,
sybf
c
c
=
c
.
Proof
using
.
intros
.
rewrite
sybfE
.
apply
symff
.
Qed
.
End
mod2fin
.
This diff is collapsed.
Click to expand it.
Util/ListComplements.v
+
9
−
0
View file @
41dc107c
...
...
@@ -54,6 +54,15 @@ intros x l Hin. induction l.
-
destruct
Hin
.
subst
.
now
left
.
right
.
auto
.
Qed
.
*
)
Lemma
all_eq
:
forall
(
l
:
list
A
)
(
a1
:
A
),
In
a1
l
->
length
l
=
1
->
forall
a2
:
A
,
In
a2
l
->
a2
=
a1
.
Proof
using
.
intros
*
Hi1
H
*
Hi2
.
destruct
l
as
[
|
h
t
].
rewrite
(
proj2
(
length_zero_iff_nil
_
))
in
H
by
reflexivity
.
discriminate
H
.
destruct
t
as
[
|
h1
t
].
cbn
in
Hi1
,
Hi2
.
destruct
Hi1
,
Hi2
.
subst
.
reflexivity
.
1
-
3
:
contradiction
.
exfalso
.
eapply
Nat
.
neq_succ_0
,
eq_add_S
,
H
.
Qed
.
Lemma
InA_Leibniz
:
forall
(
x
:
A
)
l
,
InA
Logic
.
eq
x
l
<->
In
x
l
.
Proof
using
.
intros
x
l
.
split
;
intro
Hl
;
induction
l
;
inversion_clear
Hl
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment