Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
coq-stdpp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
David Swasey
coq-stdpp
Commits
1f545953
Commit
1f545953
authored
May 21, 2013
by
Robbert Krebbers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add "as ident(H)" to the "case_bool_decide" tactic.
parent
7f96ed53
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
3 deletions
+7
-3
theories/decidable.v
theories/decidable.v
+7
-3
No files found.
theories/decidable.v
View file @
1f545953
...
...
@@ -75,6 +75,8 @@ Notation cast_if_and S1 S2 := (if S1 then cast_if S2 else right _).
Notation
cast_if_and3
S1
S2
S3
:
=
(
if
S1
then
cast_if_and
S2
S3
else
right
_
).
Notation
cast_if_and4
S1
S2
S3
S4
:
=
(
if
S1
then
cast_if_and3
S2
S3
S4
else
right
_
).
Notation
cast_if_and5
S1
S2
S3
S4
S5
:
=
(
if
S1
then
cast_if_and4
S2
S3
S4
S5
else
right
_
).
Notation
cast_if_or
S1
S2
:
=
(
if
S1
then
left
_
else
cast_if
S2
).
Notation
cast_if_or3
S1
S2
S3
:
=
(
if
S1
then
left
_
else
cast_if_or
S2
S3
).
Notation
cast_if_not_or
S1
S2
:
=
(
if
S1
then
cast_if
S2
else
left
_
).
...
...
@@ -87,13 +89,15 @@ Definition bool_decide (P : Prop) {dec : Decision P} : bool :=
Lemma
bool_decide_reflect
P
`
{
dec
:
Decision
P
}
:
reflect
P
(
bool_decide
P
).
Proof
.
unfold
bool_decide
.
destruct
dec
.
by
left
.
by
right
.
Qed
.
Ltac
case_bool_decide
:
=
Tactic
Notation
"case_bool_decide"
"as"
ident
(
Hd
)
:
=
match
goal
with
|
H
:
context
[@
bool_decide
?P
?dec
]
|-
_
=>
destruct_decide
(@
bool_decide_reflect
P
dec
)
destruct_decide
(@
bool_decide_reflect
P
dec
)
as
Hd
|
|-
context
[@
bool_decide
?P
?dec
]
=>
destruct_decide
(@
bool_decide_reflect
P
dec
)
destruct_decide
(@
bool_decide_reflect
P
dec
)
as
Hd
end
.
Tactic
Notation
"case_bool_decide"
:
=
let
H
:
=
fresh
in
case_bool_decide
as
H
.
Lemma
bool_decide_unpack
(
P
:
Prop
)
{
dec
:
Decision
P
}
:
bool_decide
P
→
P
.
Proof
.
unfold
bool_decide
.
by
destruct
dec
.
Qed
.
...
...
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