Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Properties on mutual definitions

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Properties on mutual definitions


chronological Thread 
  • From: Adam Chlipala <adamc AT hcoop.net>
  • To: muad <muad.dib.space AT gmail.com>
  • Cc: coq-club AT pauillac.inria.fr
  • Subject: Re: [Coq-Club] Properties on mutual definitions
  • Date: Wed, 09 Dec 2009 15:32:49 -0500
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

muad wrote:
I just have to suggest this alternative way to prove it.


Ltac mark H := let T := type of H in change (id T) in H.
Ltac unmark := unfold id in *.

Fact totalf {a a'} (F : f a a') : a = a'
with totalg {l l'} (G : g l l') : l = l'.
Proof.
Ltac information f f' := repeat match goal with F : f _ _ |- _ => pose (f'
_ _ F); mark F end.
intros; destruct F; information f totalf; information g totalg;
congruence.
  intros; destruct G; information f totalf; information g totalg;
congruence.

The theorem doesn't seem to need so complex a proof.

Scheme f_mut := Minimality for f Sort Prop
with g_mut := Minimality for g Sort Prop.
Combined Scheme fg_mut from f_mut, g_mut.

Fact total :
(forall a a', f a a' -> a = a')
/\ (forall l l', g l l' -> l = l').
apply fg_mut; intros; subst; reflexivity.
Qed.





Archive powered by MhonArc 2.6.16.

Top of Page