Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Induction over a transitive relation in Coq

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Induction over a transitive relation in Coq


Chronological Thread 
  • From: Adam Chlipala <adamc AT csail.mit.edu>
  • To: marco.patrignani AT cs.kuleuven.be
  • Cc: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Induction over a transitive relation in Coq
  • Date: Fri, 19 Jul 2013 07:52:55 -0400

Actually, here's an even simpler solution, based on the structure of your theorem.

Hint Constructors eval_trans.
Hint Extern 1 (_ --> _) => apply eval_step.

Lemma gt_S : forall n, S n > n.
auto.
Qed.

Hint Resolve gt_S.

Lemma some_theorem' :
forall S1 S2, S1 ==> S2
-> S1 ==> (S (fst S2), snd S2).
induction 1; intuition subst;
eauto; match goal with
| [ t : State |- _ ] => destruct t; eauto
end.
Qed.

Theorem some_theorem :
forall (a a' : Address) (m m' : Memory),
(a, m) ==> (a', m') ->
(a, m) ==> (S a', m').
intros ? ? ? ? H; apply some_theorem' in H; auto.
Qed.



Archive powered by MHonArc 2.6.18.

Top of Page