Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Proof about permutation

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Proof about permutation


Chronological Thread 
  • From: mukesh tiwari <mukeshtiwari.iiitm AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Proof about permutation
  • Date: Thu, 22 Dec 2022 23:48:00 +1100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=mukeshtiwari.iiitm AT gmail.com; spf=Pass smtp.mailfrom=mukeshtiwari.iiitm AT gmail.com; spf=None smtp.helo=postmaster AT mail-lj1-f182.google.com
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:IopB1qDikMewOhvlHemC55DYdb4zR+YMi2TDj3oBLiC8cqSj+P xG785rsyMc6QxhIk3I9urwW5VoLUmwyXcx2/h0AV7AZniahILLFvAB0WKK+VSJcEfDH6xmpM JdmsNFZuEYeGIbsS+M2miF+rgbrOVvu5rY/Ns2h00dNT2CRZsQlDtENg==
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: 63a4520c_T+ULnOT4+Ik195VHWKWp/XKVKyD+Abswz7UJ8M/3tZ230H3 plSUHTiggS15tvXU+l6CGUlhBw2zYabIotDeYmQ==

Hi Marko,

Thanks for the answer! Now my question is: how did you figure out ‘ go_app_stated_nicely’? Is there any theory behind it or just experience? (I generally,m avoid let in or match with syntax in proofs, but it seems they are very helpful)

Best,
Mukesh 

On Thu, 22 Dec 2022 at 23:01, Marko Doko <m.doko AT hw.ac.uk> wrote:
Hi Mukesh,

take a look at this:

Theorem go_app_stated_nicely:
   ∀ (xs : list A) (z : A),
   let (ys, zs) := go z xs in Permutation (ys ++ zs) xs.
Proof.
   intros xs z; induction xs; intros; simpl; [trivial | ].
   destruct (go z xs) as [ys zs].
   destruct (R a z); simpl; eauto using Permutation_cons, Permutation_sym, Permutation_cons_app.
Qed.

Theorem go_app :
     ∀ (xs ys zs : list A) (z : A),
     In z xs ->
     (ys, zs) = go z xs -> Permutation (ys ++ zs) xs.
Proof.
  intros xs ys zs z IN EQ.
  specialize (go_app_stated_nicely xs z).
  rewrite <- EQ.
  trivial.
Qed.




Best,
--
Marko
________________________________

Founded in 1821, Heriot-Watt is a leader in ideas and solutions. With campuses and students across the entire globe we span the world, delivering innovation and educational excellence in business, engineering, design and the physical, social and life sciences. This email is generated from the Heriot-Watt University Group, which includes:

  1.  Heriot-Watt University, a Scottish charity registered under number SC000278
  2.  Heriot- Watt Services Limited (Oriam), Scotland's national performance centre for sport. Heriot-Watt Services Limited is a private limited company registered is Scotland with registered number SC271030 and registered office at Research & Enterprise Services Heriot-Watt University, Riccarton, Edinburgh, EH14 4AS.

The contents (including any attachments) are confidential. If you are not the intended recipient of this e-mail, any disclosure, copying, distribution or use of its contents is strictly prohibited, and you should please notify the sender immediately and then delete it (including any attachments) from your system.



Archive powered by MHonArc 2.6.19+.

Top of Page