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
Jonas Kastberg
iris
Commits
4653cb6d
Commit
4653cb6d
authored
Oct 27, 2016
by
Ralf Jung
Browse files
improve f_equiv doc
parent
39b9a3c5
Changes
1
Show whitespace changes
Inline
Side-by-side
prelude/tactics.v
View file @
4653cb6d
...
@@ -253,10 +253,11 @@ Ltac setoid_subst :=
...
@@ -253,10 +253,11 @@ Ltac setoid_subst :=
(** f_equiv works on goals of the form [f _ = f _], for any relation and any
(** f_equiv works on goals of the form [f _ = f _], for any relation and any
number of arguments. It looks for an appropriate [Proper] instance, and applies
number of arguments. It looks for an appropriate [Proper] instance, and applies
it. The tactic is somewhat limited, since it cannot be used to backtrack on
it. The tactic is somewhat limited, since it cannot be used to backtrack on
the Proper instances that has been found. To that end, we try to
ensure
the
the Proper instances that has been found. To that end, we try to
avoid
the
trivial instance in which the resulting goals have an [eq]. More generally,
trivial instance in which the resulting goals have an [eq]. More generally,
we try to "maintain" the relation of the current goal. For example,
when having [Proper (equiv ==> dist) f] and [Proper (dist ==> dist) f], it will
when having [Proper (equiv ==> dist) f] and [Proper (dist ==> dist) f], it will
favor the second. *)
favor the second
because the relation (dist) stays the same
. *)
Ltac
f_equiv
:
=
Ltac
f_equiv
:
=
match
goal
with
match
goal
with
|
_
=>
reflexivity
|
_
=>
reflexivity
...
...
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