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
Tej Chajed
iris
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
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