Goal True -> True. Proof. intros y.
1-1:matchgoalwith y : _ |- _ => let x := y in idtac x end.
Fail 1-1:let x := y in idtac x.
1:let x := y in idtac x. exact I. Qed.
Goal True /\ (True /\ True). Proof.
dup.
- split; only 2: (split; exact I). exact I.
- split; only 2: split; exact I. Qed.
(* Success because all A, B, and C are on the shelf. *)
[A], [B], [C]: shelve.
Succeed [A], [B], [C]: exact I.
(* Fails because C is shelved, but A and B are not. *)
Unshelve.
[C]: shelve.
Fail [A], [C]: exact I.
Fail [B], [C]: exact I.
Fail 1, [C]: exact I.
Fail 1-2, [C]: exact I.
Fail [C], 2: exact I.
Fail [C], 1-2: exact I.
(* Success because A, B and C are unshelved. *)
Unshelve.
[A], [B], [C]: exact I. Qed.
(* Strict focusing! *) Set Default Goal Selector "!".
Goal True -> True /\ True /\ True. Proof. intro. split;only 2:split.
Fail exact I.
Fail !:exact I.
1:exact I.
- !:exact H.
- exact I. Qed.
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.