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
Jan
iris-coq
Commits
9bd5532f
Commit
9bd5532f
authored
Mar 02, 2016
by
Ralf Jung
Browse files
demonstrate a weird issue
parent
e0c04005
Changes
1
Hide whitespace changes
Inline
Side-by-side
heap_lang/lang.v
View file @
9bd5532f
...
...
@@ -237,12 +237,16 @@ Definition bin_op_eval (op : bin_op) (l1 l2 : base_lit) : option base_lit :=
end
.
Inductive
head_step
:
expr
∅
→
state
→
expr
∅
→
state
→
option
(
expr
∅
)
→
Prop
:
=
|
BetaS
(
f
x
:
string
)
(
e1
:
expr
((
∅
∪
{[
x
]})
∪
{[
f
]}))
(
e2
:
expr
∅
)
v2
(
σ
:
state
)
:
(* FIXME WTF this keeps working if I swap the "x" and "f" in the type of e1; but
thesr two terms are NOT convertible. ?!?? *)
(* The second "x" in the type of [e1] should be an "f". *)
|
BetaS
(
f
x
:
string
)
(
e1
:
expr
((
∅
∪
{[
x
]})
∪
{[
x
]}))
(
e2
:
expr
∅
)
v2
(
σ
:
state
)
:
to_val
e2
=
Some
v2
→
head_step
(
App
(
Rec
∅
f
x
e1
)
e2
)
σ
(
subst
∅
x
v2
(
subst
(
∅
∪
{[
x
]})
f
(
RecV
f
x
e1
)
e1
))
σ
None
(
subst
∅
x
v2
(
subst
(
∅
∪
{[
x
]})
f
(
RecV
f
x
e1
)
e1
))
σ
None
.
Set
Printing
All
.
Print
head_step
.
|
UnOpS
op
l
l'
σ
:
un_op_eval
op
l
=
Some
l'
→
head_step
(
UnOp
op
(
Lit
∅
l
))
σ
(
Lit
∅
l'
)
σ
None
...
...
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