(** Check that bound variables in case patterns are handled correctly. *)
Goalforall (ch : unit) (t : list unit) (s : list unit), match s with
| nil => False
| cons a l => ch = a /\ l = t end. Proof. intros. matchgoalwith
| |- match ?e with
| nil => ?N
| cons a b => ?P end => let f :=
constr:((fun (e' : list unit) => match e' with
| nil => N
| cons a b => P end))
in change (f e) end. Abort.
Goalforall (ch : unit) (n : nat) (s : prod unit nat), let (a, l) := s in ch = a /\ l = n. Proof. intros. matchgoalwith
| [ |- let (a, b) := ?e in ?P ] => let f := constr:((fun (e' : prod unit nat) => match e' with pair a b => P end)) in change (f e) end. Abort.
¤ 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.0.10Bemerkung:
(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.