Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
FloVer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
5
Issues
5
List
Boards
Labels
Service Desk
Milestones
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
AVA
FloVer
Commits
c14fe5f4
Commit
c14fe5f4
authored
Dec 18, 2017
by
Nikita Zyuzin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Finish fixing merge of Expressions
parent
40d79256
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
66 additions
and
4 deletions
+66
-4
coq/Expressions.v
coq/Expressions.v
+66
-4
No files found.
coq/Expressions.v
View file @
c14fe5f4
...
...
@@ -385,6 +385,12 @@ Module ExpOrderedType (V_ordered:OrderType) <: OrderType.
*
destruct
m
,
m0
;
unfold
morePrecise
in
*
;
cbv
;
congruence
.
Qed
.
Lemma
expCompare_eq_sym
e1
e2
:
expCompare
e1
e2
=
Eq
<->
expCompare
e2
e1
=
Eq
.
Proof
.
now
split
;
intros
H
;
rewrite
expCompare_antisym
;
rewrite
H
.
Qed
.
Lemma
expCompare_lt_eq_is_lt
e1
:
forall
e2
e3
,
expCompare
e1
e2
=
Lt
->
expCompare
e2
e3
=
Eq
->
expCompare
e1
e3
=
Lt
.
...
...
@@ -632,7 +638,32 @@ Module ExpOrderedType (V_ordered:OrderType) <: OrderType.
try
(
split
;
try
congruence
;
intros
);
try
(
specialize
(
IHe1_1
_
Heqc
_
_
Heqc0
);
simpl
in
*
;
rewrite
IHe1_1
in
*
;
congruence
);
try
(
specialize
(
IHe1_1
_
Heqc
_
_
Heqc0
);
simpl
in
*
;
rewrite
<-
IHe1_1
in
*
;
congruence
).
-
admit
.
-
try
(
split
;
auto
;
fail
);
destruct
(
expCompare
e1_1
e2_1
)
eqn
:?
;
destruct
(
expCompare
e3_1
e4_1
)
eqn
:?
;
try
congruence
;
destruct
(
expCompare
e1_1
e3_1
)
eqn
:?
;
destruct
(
expCompare
e2_1
e4_1
)
eqn
:?
;
try
(
split
;
congruence
);
try
(
specialize
(
IHe1_2
_
e1_eq_e2
_
_
e3_eq_e4
);
simpl
in
*
;
rewrite
IHe1_2
in
*
;
split
;
auto
;
fail
);
try
(
split
;
try
congruence
;
intros
);
try
(
specialize
(
IHe1_1
_
Heqc
_
_
Heqc0
);
simpl
in
*
;
rewrite
IHe1_1
in
*
;
congruence
);
try
(
specialize
(
IHe1_1
_
Heqc
_
_
Heqc0
);
simpl
in
*
;
rewrite
<-
IHe1_1
in
*
;
congruence
);
try
(
split
;
auto
;
fail
);
destruct
(
expCompare
e1_2
e2_2
)
eqn
:?
;
destruct
(
expCompare
e3_2
e4_2
)
eqn
:?
;
try
congruence
;
destruct
(
expCompare
e1_2
e3_2
)
eqn
:?
;
destruct
(
expCompare
e2_2
e4_2
)
eqn
:?
;
try
(
split
;
congruence
);
try
(
split
;
try
congruence
;
intros
);
try
(
specialize
(
IHe1_2
_
Heqc3
_
_
Heqc4
);
simpl
in
*
;
rewrite
IHe1_2
in
*
;
congruence
);
try
(
specialize
(
IHe1_2
_
Heqc3
_
_
Heqc4
);
simpl
in
*
;
rewrite
<-
IHe1_2
in
*
;
congruence
);
try
congruence
;
erewrite
expCompare_eq_trans
;
eauto
;
erewrite
expCompare_eq_trans
;
eauto
;
rewrite
expCompare_antisym
;
now
(
try
rewrite
e3_eq_e4
;
try
rewrite
e1_eq_e2
).
-
destruct
(
mTypeEq
m
m0
)
eqn
:?
;
destruct
(
mTypeEq
m1
m2
)
eqn
:?
;
[
type_conv
|
|
|
].
+
specialize
(
IHe1
_
e1_eq_e2
_
_
e3_eq_e4
);
simpl
in
*
.
...
...
@@ -641,7 +672,7 @@ Module ExpOrderedType (V_ordered:OrderType) <: OrderType.
+
destruct
(
morePrecise
m1
m2
);
congruence
.
+
destruct
(
morePrecise
m
m0
);
congruence
.
+
destruct
(
morePrecise
m
m0
);
congruence
.
Admitt
ed
.
Q
ed
.
Instance
lt_compat
:
Proper
(
eq
==>
eq
==>
iff
)
lt
.
Proof
.
...
...
@@ -681,7 +712,38 @@ Module ExpOrderedType (V_ordered:OrderType) <: OrderType.
try
(
specialize
(
IHe1_1
_
Heqc
_
_
Heqc0
);
simpl
in
*
;
rewrite
<-
IHe1_1
in
*
;
congruence
);
try
(
rewrite
(
eq_comp
_
_
Heqc
_
_
Heqc0
)
in
*
;
congruence
);
try
(
rewrite
<-
(
eq_comp
_
_
Heqc
_
_
Heqc0
)
in
*
;
congruence
).
-
admit
.
-
pose
proof
eq_compat
as
eq_comp
.
unfold
Proper
,
eq
in
eq_comp
.
destruct
(
expCompare
e1_1
e2_1
)
eqn
:?
;
destruct
(
expCompare
e3_1
e4_1
)
eqn
:?
;
try
congruence
;
destruct
(
expCompare
e1_1
e3_1
)
eqn
:?
;
destruct
(
expCompare
e2_1
e4_1
)
eqn
:?
;
try
(
split
;
congruence
);
try
(
specialize
(
IHe1_2
_
e1_eq_e2
_
_
e3_eq_e4
);
simpl
in
*
;
rewrite
IHe1_2
in
*
;
split
;
auto
;
fail
);
try
(
split
;
try
congruence
;
intros
);
try
(
specialize
(
IHe1_1
_
Heqc
_
_
Heqc0
);
simpl
in
*
;
rewrite
IHe1_1
in
*
;
congruence
);
try
(
specialize
(
IHe1_1
_
Heqc
_
_
Heqc0
);
simpl
in
*
;
rewrite
<-
IHe1_1
in
*
;
congruence
);
try
(
rewrite
(
eq_comp
_
_
Heqc
_
_
Heqc0
)
in
*
;
congruence
);
try
(
rewrite
<-
(
eq_comp
_
_
Heqc
_
_
Heqc0
)
in
*
;
congruence
);
destruct
(
expCompare
e1_2
e2_2
)
eqn
:?
;
destruct
(
expCompare
e3_2
e4_2
)
eqn
:?
;
try
congruence
;
destruct
(
expCompare
e1_2
e3_2
)
eqn
:?
;
destruct
(
expCompare
e2_2
e4_2
)
eqn
:?
;
try
(
split
;
congruence
);
try
(
specialize
(
IHe1_3
_
e1_eq_e2
_
_
e3_eq_e4
);
simpl
in
*
;
rewrite
IHe1_3
in
*
;
split
;
auto
;
fail
);
try
(
split
;
try
congruence
;
intros
);
try
(
specialize
(
IHe1_2
_
Heqc3
_
_
Heqc4
);
simpl
in
*
;
rewrite
IHe1_2
in
*
;
congruence
);
try
(
specialize
(
IHe1_2
_
Heqc3
_
_
Heqc4
);
simpl
in
*
;
rewrite
<-
IHe1_2
in
*
;
congruence
);
try
(
rewrite
(
eq_comp
_
_
Heqc3
_
_
Heqc4
)
in
*
;
congruence
);
try
(
rewrite
<-
(
eq_comp
_
_
Heqc3
_
_
Heqc4
)
in
*
;
congruence
);
try
congruence
.
+
apply
(
expCompare_lt_eq_is_lt
_
_
_
H
)
in
e3_eq_e4
;
rewrite
expCompare_eq_sym
in
e1_eq_e2
;
now
apply
(
expCompare_eq_lt_is_lt
_
_
_
e1_eq_e2
).
+
rewrite
expCompare_eq_sym
in
e3_eq_e4
;
apply
(
expCompare_lt_eq_is_lt
_
_
_
H
)
in
e3_eq_e4
;
now
apply
(
expCompare_eq_lt_is_lt
_
_
_
e1_eq_e2
).
-
destruct
(
mTypeEq
m
m0
)
eqn
:?
;
destruct
(
mTypeEq
m1
m2
)
eqn
:?
;
[
type_conv
|
|
|
].
+
specialize
(
IHe1
_
e1_eq_e2
_
_
e3_eq_e4
);
simpl
in
*
.
...
...
@@ -690,7 +752,7 @@ Module ExpOrderedType (V_ordered:OrderType) <: OrderType.
+
destruct
(
morePrecise
m1
m2
);
congruence
.
+
destruct
(
morePrecise
m
m0
);
congruence
.
+
destruct
(
morePrecise
m
m0
);
congruence
.
Admitt
ed
.
Q
ed
.
Lemma
compare_spec
:
forall
x
y
,
CompSpec
eq
lt
x
y
(
expCompare
x
y
).
Proof
.
...
...
Write
Preview
Markdown
is supported
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