Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
David Swasey
coqstdpp
Commits
a61c87a0
Commit
a61c87a0
authored
Jun 23, 2014
by
Robbert Krebbers
Browse files
Support structs/unions with named fields in frontend.
parent
055b4432
Changes
2
Hide whitespace changes
Inline
Sidebyside
Showing
2 changed files
with
9 additions
and
4 deletions
+9
4
theories/base.v
theories/base.v
+3
0
theories/option.v
theories/option.v
+6
4
No files found.
theories/base.v
View file @
a61c87a0
...
...
@@ 419,6 +419,9 @@ Notation "' ( x1 , x2 , x3 , x4 ) ← y ; z" :=
Notation
"' ( x1 , x2 , x3 , x4 , x5 ) ← y ; z"
:
=
(
y
≫
=
(
λ
x
:
_
,
let
'
(
x1
,
x2
,
x3
,
x4
,
x5
)
:
=
x
in
z
))
(
at
level
65
,
next
at
level
35
,
only
parsing
,
right
associativity
)
:
C_scope
.
Notation
"' ( x1 , x2 , x3 , x4 , x5 , x6 ) ← y ; z"
:
=
(
y
≫
=
(
λ
x
:
_
,
let
'
(
x1
,
x2
,
x3
,
x4
,
x5
,
x6
)
:
=
x
in
z
))
(
at
level
65
,
next
at
level
35
,
only
parsing
,
right
associativity
)
:
C_scope
.
Class
MGuard
(
M
:
Type
→
Type
)
:
=
mguard
:
∀
P
{
dec
:
Decision
P
}
{
A
},
(
P
→
M
A
)
→
M
A
.
...
...
theories/option.v
View file @
a61c87a0
...
...
@@ 199,14 +199,16 @@ Tactic Notation "simplify_option_equality" "by" tactic3(tac) :=
repeat
match
goal
with

_
=>
progress
simplify_equality'

_
=>
progress
simpl_option_monad
by
tac

H
:
mbind
(
M
:
=
option
)
_
?o
=
?x

_
=>

H
:
mbind
(
M
:
=
option
)
?f
?o
=
?x

_
=>
match
o
with
Some
_
=>
fail
1

None
=>
fail
1

_
=>
idtac
end
;
match
x
with
Some
_
=>
idtac

None
=>
idtac

_
=>
fail
1
end
;
destruct
o
eqn
:
?

H
:
?x
=
mbind
(
M
:
=
option
)
_
?o

_
=>
let
y
:
=
fresh
in
destruct
o
as
[
y
]
eqn
:
?
;
[
change
(
f
y
=
x
)
in
H

change
(
None
=
x
)
in
H
]

H
:
?x
=
mbind
(
M
:
=
option
)
?f
?o

_
=>
match
o
with
Some
_
=>
fail
1

None
=>
fail
1

_
=>
idtac
end
;
match
x
with
Some
_
=>
idtac

None
=>
idtac

_
=>
fail
1
end
;
destruct
o
eqn
:
?
let
y
:
=
fresh
in
destruct
o
as
[
y
]
eqn
:
?
;
[
change
(
x
=
f
y
)
in
H

change
(
x
=
None
)
in
H
]

H
:
fmap
(
M
:
=
option
)
_
?o
=
?x

_
=>
match
o
with
Some
_
=>
fail
1

None
=>
fail
1

_
=>
idtac
end
;
match
x
with
Some
_
=>
idtac

None
=>
idtac

_
=>
fail
1
end
;
...
...
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