Skip to Content.
Sympa Menu

coq-club - [Coq-Club] [HELP] All branches of `match` yield same value

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] [HELP] All branches of `match` yield same value


Chronological Thread 
  • From: Ramkumar Ramachandra <artagnon AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: [Coq-Club] [HELP] All branches of `match` yield same value
  • Date: Tue, 16 Jan 2018 16:28:10 -0800
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=artagnon AT gmail.com; spf=Pass smtp.mailfrom=artagnon AT gmail.com; spf=None smtp.helo=postmaster AT mail-yb0-f178.google.com
  • Ironport-phdr: 9a23:Tj57xBZnwhQt2h+0ggC7I7b/LSx+4OfEezUN459isYplN5qZoMy9bnLW6fgltlLVR4KTs6sC17KP9fi4EUU7or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCagbb9oMBm6sRjau9ULj4dlNqs/0AbCrGFSe+RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG81/9HktQPCTQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUjmk8qxlSgLniD0fOjA5/m/ZidF+grxHrx+6vRNz35TZbZuJOPZifK7Qe84RS2pbXsZWUixMGp+yYJEKD+oCIOZYqpPyp0ETphWiHwasAfngxSNIhnDs2601zv4hHhvb1wEnBd0OqmjUo8/6NKcUVuC1yrLFzTrGb/xM2Df97JLEfQwmofGJRL99d9fax0o3Fw7dkFmctYjoMymW2+kNqWSX8fdsWOy1h2I6qQx8oT6izdo2hIbTnIIa0FXE+D15wIkrId24T1Z2Ydu+H5tRsyGWLot3Tdg+T21xtiY2178LtJ2hcCgFz5QnwBHfa/iZfISS/h3jU+ORLS95hHJjZr2/mw6//Va8xuD4TMW501ZHojBbntXRuH0BzQHf58qER/dl+0euwzeP1wTd6uFeJkA0kLLWJIQ7wr4sjJUTvkLDHijwmEjtg6+Wc18r+ums6+j9frrmoZqcO5duig7iKqQuhtC/AeMgPwcSWGib4P2w26Hn/U3kW7pHleY2k6ncsJDCP8sXvK+5AwlP0oYi8RmzFTmm0M5L1UUAeVlCYVeMi5XjE1DIOvHxS/ml0Hq2lzI+/fnDPaDkC4+FFHHGmbzhdLBx8UcUnAMp0dlQ4ZVSIr4EKfP3HET2sYqLXVcCLwWozrO/W51G3YQEVDfXW/7LAObpqVaNo9kXDayJbY4Rtiz6LqF8tfHrhH4931QaePvwhMdFWDWDBv1jZn6hTz/0mN5YSDUFuwM/SKrhj1jQCWcONUb3ZLo143QAMKzjDYrHQdrz0rmI3SP+D5cOI24fVQDKHnDveIGJHfwLbXDKLw==

Hi,

I have this code:

Definition augmentReg (reg : registration) (t : serverState) : option block :=
let bals := clientBalances t in
match reg with
| mkRegistration _ n (directTransfer k amt) =>
(match M.find n bals with
| Some bal => (match M.find k bals with
| Some bal2 => Some ((mkRegistration 1 n (balance (bal - amt)))
:: (mkRegistration 1 k (balance (bal2 + amt))) :: nil)
| _ => None
end)
| _ => None
end)
| _ => None
end.

Definition augmentReg_zServerState : forall r, augmentReg r zServerState = None.
Proof.
intros.
unfold augmentReg.
simpl.
Admitted.

And my hypotheses/goals window looks like:
  • r: registration
  • 1/1match r with | {| body := body |} => match body with | directTransfer _ _ => None | statusUpdate => None | commitment => None | balance _ => None | candidacy _ => None | electionVote _ => None | elected _ => None | resign _ => None | encSchedule _ => None | encScheduleVote _ => None | scheduleVerdict _ => None | encChallenge _ => None | encChallengeVote _ => None | challengeVerdict _ => None | decryption _ _ => None end end = None
What tactic can I use to collapse all the cases?

Thanks.

Ram



Archive powered by MHonArc 2.6.18.

Top of Page