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
Joshua Yanovski
iris-coq
Commits
49d7e625
Commit
49d7e625
authored
Jan 04, 2016
by
Ralf Jung
Browse files
add language.v by Robbert
parent
e9fec17a
Changes
1
Hide whitespace changes
Inline
Side-by-side
iris/language.v
0 → 100644
View file @
49d7e625
Require
Import
prelude
.
prelude
.
Class
Language
(
E
V
S
:
Type
)
:=
{
to_expr
:
V
→
E
;
of_expr
:
E
→
option
V
;
atomic
:
E
→
Prop
;
prim_step
:
(
E
*
S
)
→
(
E
*
S
)
→
option
E
→
Prop
;
of_to_expr
v
:
of_expr
(
to_expr
v
)
=
Some
v
;
to_of_expr
e
v
:
of_expr
e
=
Some
v
→
to_expr
v
=
e
;
values_stuck
e
σ
s
'
ef
:
prim_step
(
e
,
σ
)
s
'
ef
→
of_expr
e
=
None
;
atomic_not_value
e
:
atomic
e
→
of_expr
e
=
None
;
atomic_step
e1
σ
1
e2
σ
2
ef
:
atomic
e1
→
prim_step
(
e1
,
σ
1
)
(
e2
,
σ
2
)
ef
→
is_Some
(
of_expr
e2
)
}
.
Section
foo
.
Context
`
{
Language
E
V
St
}
.
Definition
cfg
:
Type
:=
(
list
E
*
St
)
%
type
.
Inductive
step
(
ρ
1
ρ
2
:
cfg
)
:
Prop
:=
|
step_atomic
e1
σ
1
e2
σ
2
ef
t1
t2
:
ρ
1
=
(
t1
++
e1
::
t2
,
σ
1
)
→
ρ
1
=
(
t1
++
e2
::
t2
++
option_list
ef
,
σ
2
)
→
prim_step
(
e1
,
σ
1
)
(
e2
,
σ
2
)
ef
→
step
ρ
1
ρ
2.
Definition
steps
:=
rtc
step
.
Definition
stepn
:=
nsteps
step
.
End
foo
.
\ No newline at end of file
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