Mercurial > cpdt > repo
comparison src/Match.v @ 465:4320c1a967c2
Spell check
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Wed, 29 Aug 2012 18:26:26 -0400 |
parents | 38549f152568 |
children | 1fd4109f7b31 |
comparison
equal
deleted
inserted
replaced
464:e53d051681b0 | 465:4320c1a967c2 |
---|---|
671 (Q --> P x /\ R) | 671 (Q --> P x /\ R) |
672 -> (Q --> ex P /\ R). | 672 -> (Q --> ex P /\ R). |
673 imp. | 673 imp. |
674 Qed. | 674 Qed. |
675 | 675 |
676 (** We will also want a "base case" lemma for finishing proofs where cancelation has removed every constituent of the conclusion. *) | 676 (** We will also want a "base case" lemma for finishing proofs where cancellation has removed every constituent of the conclusion. *) |
677 | 677 |
678 Theorem imp_True : forall P, | 678 Theorem imp_True : forall P, |
679 P --> True. | 679 P --> True. |
680 imp. | 680 imp. |
681 Qed. | 681 Qed. |
749 | 749 |
750 (** * Creating Unification Variables *) | 750 (** * Creating Unification Variables *) |
751 | 751 |
752 (** A final useful ingredient in tactic crafting is the ability to allocate new unification variables explicitly. Tactics like [eauto] introduce unification variables internally to support flexible proof search. While [eauto] and its relatives do _backward_ reasoning, we often want to do similar _forward_ reasoning, where unification variables can be useful for similar reasons. | 752 (** A final useful ingredient in tactic crafting is the ability to allocate new unification variables explicitly. Tactics like [eauto] introduce unification variables internally to support flexible proof search. While [eauto] and its relatives do _backward_ reasoning, we often want to do similar _forward_ reasoning, where unification variables can be useful for similar reasons. |
753 | 753 |
754 For example, we can write a tactic that instantiates the quantifiers of a universally quantified hypothesis. The tactic should not need to know what the appropriate instantiantiations are; rather, we want these choices filled with placeholders. We hope that, when we apply the specialized hypothesis later, syntactic unification will determine concrete values. | 754 For example, we can write a tactic that instantiates the quantifiers of a universally quantified hypothesis. The tactic should not need to know what the appropriate instantiations are; rather, we want these choices filled with placeholders. We hope that, when we apply the specialized hypothesis later, syntactic unification will determine concrete values. |
755 | 755 |
756 Before we are ready to write a tactic, we can try out its ingredients one at a time. *) | 756 Before we are ready to write a tactic, we can try out its ingredients one at a time. *) |
757 | 757 |
758 Theorem t5 : (forall x : nat, S x > x) -> 2 > 1. | 758 Theorem t5 : (forall x : nat, S x > x) -> 2 > 1. |
759 intros. | 759 intros. |