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
84fa254a
Commit
84fa254a
authored
Oct 09, 2017
by
Ralf Jung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
solve_proper: be sure to run simpl at least once
parent
e67daba3
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
2 deletions
+2
-2
theories/tactics.v
theories/tactics.v
+2
-2
No files found.
theories/tactics.v
View file @
84fa254a
...
@@ -333,7 +333,7 @@ Ltac solve_proper_unfold :=
...
@@ -333,7 +333,7 @@ Ltac solve_proper_unfold :=
|
|-
?R
(
?f
_
_
_
)
(
?f
_
_
_
)
=>
unfold
f
|
|-
?R
(
?f
_
_
_
)
(
?f
_
_
_
)
=>
unfold
f
|
|-
?R
(
?f
_
_
)
(
?f
_
_
)
=>
unfold
f
|
|-
?R
(
?f
_
_
)
(
?f
_
_
)
=>
unfold
f
|
|-
?R
(
?f
_
)
(
?f
_
)
=>
unfold
f
|
|-
?R
(
?f
_
)
(
?f
_
)
=>
unfold
f
end
;
simpl
.
end
.
(** The tactic [solve_proper_core tac] solves goals of the form "Proper (R1 ==> R2)", for
(** The tactic [solve_proper_core tac] solves goals of the form "Proper (R1 ==> R2)", for
any number of relations. The actual work is done by repeatedly applying
any number of relations. The actual work is done by repeatedly applying
...
@@ -349,7 +349,7 @@ Ltac solve_proper_core tac :=
...
@@ -349,7 +349,7 @@ Ltac solve_proper_core tac :=
end
;
simplify_eq
;
end
;
simplify_eq
;
(* Now do the job. We try with and without unfolding. We have to backtrack on
(* Now do the job. We try with and without unfolding. We have to backtrack on
that because unfolding may succeed, but then the proof may fail. *)
that because unfolding may succeed, but then the proof may fail. *)
(
solve_proper_unfold
+
idtac
)
;
(
solve_proper_unfold
+
idtac
)
;
simpl
;
solve
[
repeat
first
[
eassumption
|
tac
()]
].
solve
[
repeat
first
[
eassumption
|
tac
()]
].
Ltac
solve_proper
:
=
solve_proper_core
ltac
:
(
fun
_
=>
f_equiv
).
Ltac
solve_proper
:
=
solve_proper_core
ltac
:
(
fun
_
=>
f_equiv
).
...
...
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