Skip to Content.
Sympa Menu

coq-club - [Coq-Club] How to organize this tricky proof?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] How to organize this tricky proof?


Chronological Thread 
  • From: Jason -Zhong Sheng- Hu <fdhzs2010 AT hotmail.com>
  • To: "coq-club AT inria.fr" <coq-club AT inria.fr>
  • Subject: [Coq-Club] How to organize this tricky proof?
  • Date: Thu, 21 Mar 2019 20:50:55 +0000
  • Accept-language: en-CA, en-US
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=fdhzs2010 AT hotmail.com; spf=Pass smtp.mailfrom=fdhzs2010 AT hotmail.com; spf=Pass smtp.helo=postmaster AT NAM03-BY2-obe.outbound.protection.outlook.com
  • Ironport-phdr: 9a23:nj2PehxrV6xMV5fXCy+O+j09IxM/srCxBDY+r6Qd2+4SIJqq85mqBkHD//Il1AaPAdyDrawVwLOM6ujJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fcbglVmDaxe7J/IRG5oQnMqMUanJZpJ7osxBfOvnZGYfldy3lyJVKUkRb858Ow84Bm/i9Npf8v9NNOXLvjcaggQrNWEDopM2Yu5M32rhbDVheA5mEdUmoNjBVFBRXO4QzgUZfwtiv6sfd92DWfMMbrQ704RSiu4qF2QxLulSwJNSM28HvPh8JwkqxVvQ6hqRJ8zYHIb46YL+Bxcr/Bcd4AWWZNQttdWipcCY28dYsPCO8BMP5coYbnvFsOqh2+DhS1COzsyj9IgXn23aIn2Oo8EQHJwgogH90XvH/Jrtv1KboZXOe7zKbVzTXCbuhW1Snh5ITVbhwsuvGMXbVsccrU00YvFgfFgk+MpoziOjOYz+IAuHWY4ep4Te+ihHIrpxt1rzSx3Mshi5PFi4MIxlzc+yV23oU4KcG9RUN+f9GoDJ9duiOfOoZ3X88vTWNltSM5x7EYu5O0YS0HxZc5yxLCZfyKdZWD7Aj5W+aLOzh4gWpoeLKhiBa29kit0vXyW9Wz3lpWoCdJi8TBuXIT2xDK7ciIUeVy8l2m2TaSywDc8eZEIV0ylaXGMZIh2qQwlp0PsUvdAiD2hET2jKiQdkk+/eio9vjnYrHhpp+bNI94kB3xMqMrmsCnAOQ4NBYBX3SD9OmzyLHv50n0TKtQgvA3iKXUsY3WKdwepqGjAg9V1ogj6wy4DzejyNkYk2QILFJEeRKckYTlJ0zCLOzjAPe/hFSsjDJryOrHPr3lGJnCMn/DkLL5cbZn90Fc0BYzzcxY559MFr4BJ+vzVlbtu9zcEx82KBe5w/3nCdV4zoMRQ3iDAq6fMKPIsF+H/PgjI+eWZNxdhDGoYfMi/rvliWIzsV4bZ6igm5UNIjjsFfN/Zk6dfHDEg9EbEG5MsBBoH8Lwj1jXczdIYHD6GpA84Tc0QLmmAIHMA8iNnfTV0iu7DIYMPjkeIlCLDXLhdoHCUPAJPnHBavR9myAJAODyA7Qq0guj4VejmuhXa9HM8yhdjqrNkd185undjxY3rGcmD8OB1miMSyd/mWZaHmZqjpA6mlR0zxK46YY9m+ZRTIcB5/RVVw47MdjXyOkoU4mvCDKERc+ATROdevvjATw1SY5ukfknRh4mXv+T1FXE1SfsBKIJnbuWApBy6rjbw3X6O8d6zTDBybUliF4lBMBIMD//iw==

Hi,

consider a type `T` and an inductively defined proposition `P : T -> Prop`. theorem `foo : forall (t : T), P t -> Q t` is proved by doing an induction on `t` and then `P t`.

however, inside of `foo`, in each case of `t`, I will need another theorem `bar : forall (t : T), P t -> R t`, which is proved by induction on `P t` and some cases require `foo`.

since `bar` always operate on smaller `P t` instances, so these two theorems are true, but just mutually dependent.

my problem is, I am not sure how to organize this proof to make it shorter. clearly, I can prove `bar` for each particular `t` but it pointlessly adds so much more identical proofs. On the other hand, `foo` and `bar` are not structurally mutually recursive either, because `foo` decreases on `T` while `bar` decreases on `P t`, which stops me from using Fixpoint.

Is there any way to organize the proof, so that I only need to prove `foo` and `bar` once?

Sincerely Yours,

Jason Hu





Archive powered by MHonArc 2.6.18.

Top of Page