Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dan Frumin
iris-coq
Commits
aebb1246
Commit
aebb1246
authored
Feb 16, 2016
by
Robbert Krebbers
Browse files
Remove FIXME in list_encode_suffix_eq.
parent
5f96abdc
Changes
1
Hide whitespace changes
Inline
Side-by-side
prelude/countable.v
View file @
aebb1246
...
...
@@ -222,26 +222,17 @@ Proof. apply (list_encode_app' [_]). Qed.
Lemma
list_encode_suffix
`
{
Countable
A
}
(
l
k
:
list
A
)
:
l
`suffix_of
`
k
→
∃
q
,
encode
k
=
q
++
encode
l
.
Proof
.
intros
[
l
'
->
];
exists
(
encode
l
'
);
apply
list_encode_app
.
Qed
.
Section
not_serious
.
(
*
FIXME
This
can
'
t
be
real
...
it
doesn
'
t
figure
out
the
"flip eq"
instance
?!?
*
)
Local
Instance
:
Assoc
(
flip
(
=
))
(
++
).
Proof
.
intros
??
p
.
by
induction
p
;
intros
;
f_equal
'
.
Qed
.
Lemma
list_encode_suffix_eq
`
{
Countable
A
}
q1
q2
(
l1
l2
:
list
A
)
:
length
l1
=
length
l2
→
q1
++
encode
l1
=
q2
++
encode
l2
→
l1
=
l2
.
Proof
.
revert
q1
q2
l2
;
induction
l1
as
[
|
a1
l1
IH
];
intros
???
;
destruct
l2
as
[
|
a2
l2
];
simpl
;
try
discriminate
;
[
done
|
].
intros
EQ
.
injection
EQ
.
clear
EQ
.
intros
EQ
.
rewrite
!
list_encode_cons
.
intros
Hl
.
rewrite
!
assoc
in
Hl
;
eauto
with
typeclass_instances
.
assert
(
l1
=
l2
)
as
EQl
.
{
eapply
IH
;
done
.
}
subst
l2
.
apply
(
inj
(
++
(
encode
l1
)))
in
Hl
.
cut
(
a1
=
a2
);
[
congruence
|
].
apply
(
inj
encode_nat
).
revert
Hl
.
clear
.
generalize
(
encode_nat
a2
).
induction
(
encode_nat
a1
);
intros
[
|?
]
?
;
f_equal
'
;
naive_solver
.
revert
q1
q2
l2
;
induction
l1
as
[
|
a1
l1
IH
];
intros
q1
q2
[
|
a2
l2
]
?
;
simplify_equality
'
;
auto
.
rewrite
!
list_encode_cons
,
!
(
assoc
_
);
intros
Hl
.
assert
(
l1
=
l2
)
as
<-
by
eauto
;
clear
IH
;
f_equal
.
apply
(
inj
encode_nat
);
apply
(
inj
(
++
encode
l1
))
in
Hl
;
revert
Hl
;
clear
.
generalize
(
encode_nat
a2
).
induction
(
encode_nat
a1
);
intros
[
|?
]
?
;
naive_solver
.
Qed
.
End
not_serious
.
(
**
**
Numbers
*
)
Instance
pos_countable
:
Countable
positive
:=
...
...
Write
Preview
Supports
Markdown
0%
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!
Cancel
Please
register
or
sign in
to comment