Goalforall A B C (p : forall (x : A) (y : B), C x y) (x : A) (y : B), True. Proof. intros A B C p x y. matchtype of p with
| forall x y, @?F x y => pose F as C1 end. matchtype of p with
| forall x y, @?F y x => pose F as C2 end. assert (C1 x y) as ?. assert (C2 y x) as ?. Abort.
Goalforall A B C D (p : forall (x : A) (y : B) (z : C), D x y) (x : A) (y : B), True. Proof. intros A B C D p x y. matchtype of p with
| forall x y z, @?F x y => pose F as C1 end. assert (C1 x y) as ?. Abort.
Goalforall A B C D (p : forall (z : C) (x : A) (y : B), D x y) (x : A) (y : B), True. Proof. intros A B C D p x y. matchtype of p with
| forall z x y, @?F x y => pose F as C1 end. assert (C1 x y) as ?. Abort.
(** Those should fail *)
Goalforall A B C (p : forall (x : A) (y : B), C x y) (x : A) (y : B), True. Proof. intros A B C p x y.
Fail matchtype of p with
| forall x, @?F x y => pose F as C1 end.
Fail matchtype of p with
| forall x y, @?F x x y => pose F as C1 end.
Fail matchtype of p with
| forall x y, @?F x => pose F as C1 end. Abort.
(** This one is badly typed *)
Goalforall A (B : A -> Type) (C : forall x, B x -> Type), (forall x y, C x y) -> True. Proof. intros A B C p.
Fail matchtype of p with
| forall x y, @?F y x => idtac end. Abort.
Goalforall A (B : A -> Type) (C : Type) (D : forall x, B x -> Type), (forall x (z : C) y, D x y) -> True. Proof. intros A B C D p. matchtype of p with
| forall x z y, @?F x y => idtac end. Abort.
Messung V0.5
¤ 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 und die Messung sind noch experimentell.