Quelle match_case_pattern_variables.v
Sprache: Coq
(** 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.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.