Axiom T : Type. Axiom Teq : relation T.
#[local] DeclareInstance Teq_Equivalence : Equivalence Teq.
Axiom P : T -> Prop. Axiom P_Proper : Proper (Teq ==> Basics.flip Basics.impl) P.
(** This is a manually crafted hint which is essentially declaring P_Proper as a typeclass instance, except that it builds a proof term that captures the marker variable of type [apply_subrelation]. If that variable were to
escape, the call to rewrite below would fail with a type error. *) Ltac manual_P_proper := matchgoalwith
| [ H : apply_subrelation |- Proper (Teq ==> Basics.flip Basics.impl) P ] => case H; apply P_Proper end.
#[local] Hint Extern 1 => manual_P_proper : typeclass_instances.
Lemma foo : forall x y : T, Teq x y -> P y -> P x. Proof. intros m n e h. rewrite e. exact h. Qed.
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.