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
Andrew Hirsch
Pirouette Coq Code
Commits
2682c9fa
Commit
2682c9fa
authored
Jul 03, 2021
by
Andrew Hirsch
Browse files
Draft of the rest of the compiling section.
parent
a7fbe118
Changes
1
Hide whitespace changes
Inline
Side-by-side
ConcurrentLambda.v
View file @
2682c9fa
...
...
@@ -2753,8 +2753,19 @@ Module InternalConcurrentLambda (Import E : Expression) (L : Locations) (LM : Lo
auto
with
ConExpr
.
Qed
.
Lemma
LessNondetAntisym
:
forall
E1
E2
,
LessNondet
E1
E2
->
LessNondet
E2
E1
->
E1
=
E2
.
Proof
using
.
intros
E1
E2
lnd1
;
induction
lnd1
;
intros
lnd2
;
inversion
lnd2
;
subst
;
repeat
match
goal
with
|
[
IH
:
LessNondet
?
E2
?
E1
->
?
E1
=
?
E2
,
H
:
LessNondet
?
E2
?
E1
|-
_
]
=>
specialize
(
IH
H
);
subst
end
;
auto
.
Qed
.
Instance
:
Reflexive
LessNondet
:=
LessNondetRefl
.
Instance
:
Transitive
LessNondet
:=
LessNondetTrans
.
Instance
:
Antisymmetric
ConExpr
(
@
eq
ConExpr
)
LessNondet
:=
LessNondetAntisym
.
Lemma
MergeLessNondet
:
forall
E1
E2
E
,
ConExprMerge
E1
E2
=
Some
E
->
...
...
@@ -3325,25 +3336,13 @@ Module InternalConcurrentLambda (Import E : Expression) (L : Locations) (LM : Lo
intros
E1
E2
ξ
lnd
;
revert
ξ
;
induction
lnd
;
intro
ξ
;
cbn
;
eauto
with
ConExpr
.
Qed
.
(
*
Lemma
LessNondetSubst
:
forall
E1
E2
σ
1
σ
2
,
*
)
(
*
LessNondet
E1
E2
->
*
)
(
*
(
forall
n
,
LessNondet
(
σ
1
n
)
(
σ
2
n
))
->
*
)
(
*
LessNondet
(
E1
[
ceg
|
σ
1
])
(
E2
[
ceg
|
σ
2
]).
*
)
(
*
Proof
using
.
*
)
(
*
intros
E1
E2
σ
1
σ
2
lnd
;
revert
σ
1
σ
2
;
induction
lnd
;
intros
σ
1
σ
2
lnds
;
*
)
(
*
cbn
;
eauto
with
ConExpr
.
*
)
(
*
-
apply
LessNondetRecv
.
apply
IHlnd
.
*
)
(
*
intro
n
;
repeat
rewrite
ConExprLocalRenameSpec
;
apply
LessNondetExprSubst
;
auto
.
*
)
(
*
-
apply
LessNondetLetRet
.
apply
IHlnd1
;
auto
.
apply
IHlnd2
;
auto
.
*
)
(
*
intro
n
;
repeat
rewrite
ConExprLocalRenameSpec
;
apply
LessNondetExprSubst
;
auto
.
*
)
(
*
-
unfold
GlobalUpSubst
.
apply
LessNondetRecLocal
.
apply
IHlnd
.
*
)
(
*
intro
n
;
destruct
n
;
auto
with
ConExpr
.
*
)
(
*
apply
LessNondetRename
.
*
)
(
*
repeat
rewrite
ConExprLocalRenameSpec
;
apply
LessNondetExprSubst
;
auto
.
*
)
(
*
-
apply
LessNondetRecGlobal
.
apply
IHlnd
.
intro
n
.
*
)
(
*
unfold
GlobalUpSubst
;
do
2
(
destruct
n
;
auto
with
ConExpr
).
*
)
(
*
repeat
apply
LessNondetRename
;
auto
.
*
)
(
*
Qed
.
*
)
Lemma
LessNondetSubst
:
forall
E1
E2
σ
,
LessNondet
E1
E2
->
LessNondet
(
E1
[
ceg
|
σ
])
(
E2
[
ceg
|
σ
]).
Proof
using
.
intros
E1
E2
σ
lnd
;
revert
σ
;
induction
lnd
;
intros
σ
;
cbn
;
eauto
with
ConExpr
.
Qed
.
Lemma
LessNondetVals
:
forall
V1
V2
,
LessNondet
V1
V2
->
ConExprVal
V1
\
/
ConExprVal
V2
->
V1
=
V2
.
...
...
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