(** Some tests of patterns containing matchs ending with joker branches. Cf. the new form of the [constr_pattern] constructor [PCase]
in [pretyping/pattern.ml] *)
(* A universal match matcher *)
Ltac kill_match := matchgoalwith
|- context [ match ?x with _ => _ end ] => destruct x end.
(* A match matcher restricted to a given type : nat *)
Ltac kill_match_nat := matchgoalwith
|- context [ match ?x in nat with _ => _ end ] => destruct x end.
(* Another way to restrict to a given type : give a branch *)
Ltac kill_match_nat2 := matchgoalwith
|- context [ match ?x with S _ => _ | _ => _ end ] => destruct x end.
(* This should act only on empty match *)
Ltac kill_match_empty := matchgoalwith
|- context [ match ?x withend ] => destruct x end.
Lemma test1 (b:bool) : if b then True else O=O. Proof.
Fail kill_match_nat.
Fail kill_match_nat2.
Fail kill_match_empty.
kill_match. exact I. exact eq_refl. Qed.
Lemma test2a (n:nat) : match n with O => True | S n => (n = n) end. Proof.
Fail kill_match_empty.
kill_match_nat. exact I. exact eq_refl. Qed.
Lemma test2b (n:nat) : match n with O => True | S n => (n = n) end. Proof.
kill_match_nat2. exact I. exact eq_refl. Qed.
Lemma test2c (n:nat) : match n with O => True | S n => (n = n) end. Proof.
kill_match. exact I. exact eq_refl. Qed.
Lemma test3a (f:False) : match f return Prop withend. Proof.
kill_match_empty. Qed.
Lemma test3b (f:False) : match f return Prop withend. Proof.
kill_match. Qed.
Messung V0.5
¤ Dauer der Verarbeitung: 0.11 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.