Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
Numerical Analysis in Coq
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
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
Micaela Mayero
Numerical Analysis in Coq
Commits
48c785e4
Commit
48c785e4
authored
1 year ago
by
François Clément
Browse files
Options
Downloads
Patches
Plain Diff
WIP: filterPF_unfunF.
parent
7f3f691f
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Pipeline
#7038
waiting for manual action
Stage: test
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
FEM/Algebra/Finite_family.v
+20
-23
20 additions, 23 deletions
FEM/Algebra/Finite_family.v
with
20 additions
and
23 deletions
FEM/Algebra/Finite_family.v
+
20
−
23
View file @
48c785e4
...
...
@@ -1493,7 +1493,7 @@ Definition incrF {n1 n2} (f : 'I_{n1,n2}) : Prop :=
Lemma
injF_restr_bij_EX
:
forall
{
n1
n2
}
{
f
:
'
I_
{
n1
,
n2
}}
(
Hf
:
injective
f
),
{
p
:
'
I_
[
n1
]
|
bijective
p
/
\
exists
(
q
:
'
I_
{
n1
,
n2
}
),
incrF
q
/
\
f
=
q
\
o
p
}
.
(
*
q
:=
f
\
o
f_inv
Hp
*
)
exists
(
g
:
'
I_
{
n1
,
n2
}
),
incrF
g
/
\
f
=
g
\
o
p
}
.
(
*
g
:=
f
\
o
f_inv
Hp
*
)
Proof
.
(
*
Hint
:
pas
besoin
d
'
induction
!
p
^-
1
est
la
permutation
permettant
de
trier
f
'
I_n1
et
q
=
f
o
p
^-
1.
*
)
...
...
@@ -1506,7 +1506,7 @@ destruct n2 as [|n2]; [exists id | exists (fun=> ord0)];
(
*
*
)
pose
(
f
'
:=
fun
i1
=>
f
(
widen_S
i1
)).
assert
(
Hf
'
:
injective
f
'
)
by
now
move
=>
i1
j1
/
Hf
/
widen_ord_inj
.
destruct
(
Hn1
_
Hf
'
)
as
[
p
'
[
Hp
'
[
q
'
[
H
q
'
H
'
]]]];
clear
Hn1
.
destruct
(
Hn1
_
Hf
'
)
as
[
p
'
[
Hp
'
[
g
'
[
H
g
'
H
'
]]]];
clear
Hn1
.
pose
(
p
'1
:=
f_inv
Hp
'
).
(
*
pose
(
nn1
:=
widen_ord
(
inj_ord_leq
Hf
)
ord_max
).
...
...
@@ -4622,29 +4622,26 @@ Lemma filterPF_unfunF :
(
Hf
:
injective
f
)
(
HP
:
extendPF
f
P1
P2
)
(
A1
:
'
F
^
n1
)
x0
i0
,
P1
i0
->
let
H
g
1
:=
proj1
(
proj2_sig
(
injF_restr_bij_EX
Hf
))
in
let
g
:=
f_inv
H
g
1
in
let
H
g
:=
f_inv_inj
H
g
1
in
let
H
p
1
:=
proj1
(
proj2_sig
(
injF_restr_bij_EX
Hf
))
in
let
p
:=
f_inv
H
p
1
in
let
H
p
:=
f_inv_inj
H
p
1
in
filterPF
P2
(
unfunF
f
A1
x0
)
=
castF
(
lenPF_extendPF
Hf
HP
)
(
castF
(
lenPF_permutF
Hg
)
(
filterPF
(
permutF
g
P1
)
(
permutF
g
A1
))).
Proof
.
intros
F
n1
n2
f
P1
P2
Hf
HP
A1
x0
i0
HP1
Hg1
g
Hg
.
pose
(
p
:=
proj1_sig
(
injF_restr_bij_EX
Hf
));
pose
(
i1
:=
p
i0
).
assert
(
HP1
'
:
permutF
g
P1
i1
)
by
now
unfold
permutF
,
i1
,
g
;
rewrite
f_inv_correct_l
.
rewrite
(
filterPF_permutF
Hg
HP1
'
).
(
*
apply
sym_eq
;
rewrite
castF_sym_equiv
-
(
filterPF_funF
Hf
HP
)
funF_unfunF
//.
apply
extF
;
intros
j1
;
unfold
castF
,
funF
.
f_equal
;
unfold
filterP_f_ord
;
rewrite
f_inv_invol
.
*
)
castF
(
lenPF_extendPF
Hf
HP
)
(
castF
(
lenPF_permutF
Hp
)
(
filterPF
(
permutF
p
P1
)
(
permutF
p
A1
))).
Proof
.
intros
F
n1
n2
f
P1
P2
Hf
HP
A1
x0
i0
HP1
Hp1
p
Hp
.
pose
(
p1
:=
proj1_sig
(
injF_restr_bij_EX
Hf
));
pose
(
i1
:=
p1
i0
).
assert
(
HP1
'
:
permutF
p
P1
i1
)
by
now
unfold
permutF
,
i1
,
p
;
rewrite
f_inv_correct_l
.
rewrite
(
filterPF_permutF
Hp
HP1
'
)
-{
2
}
(
funF_unfunF
x0
Hf
A1
).
assert
(
HP2
:
P2
(
f
i0
))
by
now
rewrite
(
extendPF_unfunF_rev
Hf
HP
)
(
unfunF_correct_l
_
i0
_
Hf
).
rewrite
(
filterPF_funF
HP2
Hf
HP
).
apply
extF
;
intros
j2
;
unfold
castF
,
funF
,
filterP_f_ord_n
,
filterP_f_ord_p
.
f_equal
;
rewrite
f_inv_invol
.
(
*
apply
filterP_ord_inj
.
rewrite
filterP_unfilterP_ord_in
.
rewrite
filterP_unfilterP_ord_in_equiv
out
.
*
)
...
...
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