Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] [HELP] Induction over lists

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] [HELP] Induction over lists


Chronological Thread 
  • From: Hiroki Oshikawa <oshi.hiroki.ml AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] [HELP] Induction over lists
  • Date: Fri, 12 Jan 2018 10:34:08 +0900
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=oshi.hiroki.ml AT gmail.com; spf=Pass smtp.mailfrom=oshi.hiroki.ml AT gmail.com; spf=None smtp.helo=postmaster AT mail-wm0-f43.google.com
  • Ironport-phdr: 9a23:riAsshbpD18094u560cANeb/LSx+4OfEezUN459isYplN5qZoM28bnLW6fgltlLVR4KTs6sC17KP9fi4EUU7or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCagbb9oMBm6sRjau9ULj4dlNqs/0AbCrGFSe+RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG81/9HktQPCTQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUjmk8qxlSgLniD0fOjE7/mHZisJ+gqFGrhy/uxNy2JTbbJ2POfdkYq/RYdEXSGxcVchRTSxBBYa8YpMNAeoAJ+ZYqIr9p1oTphWnHgmsBOLvyjxSiX74x6IxzuMsEQbd3AwgHtICqnTUrNTvNKcVUuC1zbPEzTDHb/5N1jf97ZLHchElof2WQb1wds/RxFApGgjYjVuQsZToMjGa2+gXrmSX8eptWfishmI5sQ18rTaiy8ExgYfTnI0V0ErL9SBhzYY1O9K4TEl7bMahEJRKtiGaM5J6Q80nQ210oSo6xLILtJChcCgFz5QnwBHfa/iZfISS/h3jU+ORLS95hHJjZr2/mw6//Eqvx+HmS8W4zlZHojBGn9XSrHwA2BLe5tCCSvRn/0eh3TiP1xrU6uFBOU00krHbK54gwrIqlpoTsF7DHij1mEX3lqOWc0Ek9/On6+TieLrmp5ucO5VohQH5N6Qigta/DvggMggSQ2ib/vyx26Hk/U3gWblFkvk2krTCv53BPsQapqu5AxdP3Yo56ha/CS2m0NUCknUdIlJFYkHPs4+8MFbXZfv8EP2XglK2kT4tyeqVEKfmB8DtL2LEk7apWq196k1V1wN7mddE55MSCrAbJ/HyHEr1nNPdBx49dQezxrC0W51GyooCVDfXUeeiO6TIvArQv7N9E6y3fIYQ/Q3FBb0g7v/qg2U+nAZEL6as1JoTLnu/G6Y/ehnLUT/Xmt4EVFwykE8mVuWz0Q+NVDdSYzC5WKduvmhmWrLjNp/KQ8WWuJLE3Cq/GccLNGVPC1TJDnKwMovYALEDbyWdJsInmTsBB+Cs


`list_add_nil` cannot be applied to `IHblk`, because it requires `blk` has at least one element, but `blk` can be `nil`.

Changing the definition of `list_add_nil` to

```
Lemma list_add_nil : forall A (a b : list A),
    a ++ b = a -> b = nil.
```

may solve the problem.

best


2018-01-12 9:52 GMT+09:00 Ramkumar Ramachandra <artagnon AT gmail.com>:
Hi folks,

I have this code:

Lemma map_nil : forall (a b : Type) (f : a -> b), map f nil = nil.
Proof.
Admitted.

Lemma list_add_nil : forall A (a : A) (b c : list A),
(a :: b) ++ c = a :: b -> c = nil.
Proof.
Admitted.

Lemma augmentBlk_zServerState : forall blk, augmentBlk blk zServerState = blk.
Proof.
intros.
unfold augmentBlk.
induction blk.
rewrite map_nil.
simpl.
reflexivity.
Admitted.

And these are my hypotheses/goals:
  • a: registration
  • blk: list registration
  • IHblk: blk ++ concat (concatListOption (map (fun reg : registration => augmentReg reg zServerState) blk)) = blk
  • 1/1(a :: blk) ++ concat (concatListOption (map (fun reg : registration => augmentReg reg zServerState) (a :: blk))) = a :: blk
Looks pretty straightforward, but I'm not able to figure out how to apply list_add_nil to either IHblk or the goal. What am I missing?

Thanks.

Ram




Archive powered by MHonArc 2.6.18.

Top of Page