coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: mukesh tiwari <mukeshtiwari.iiitm AT gmail.com>
- To: coq-club AT inria.fr
- Subject: [Coq-Club] Proof about permutation
- Date: Thu, 22 Dec 2022 21:55:38 +1100
- Authentication-results: mail2-smtp-roc.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-lf1-f44.google.com
- Ironport-data: A9a23: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
- Ironport-hdrordr: A9a23:KUVRCqqdfAAGtlKzwJbJvpcaV5ooeYIsimQD101hICG9Ffbo8f xG/c5rsiMc7Qx6ZJhOo6HiBEDtexPhHP1OgLX5X43SPjUO0VHAROpfBODZsljd8kPFh4pgPG RbH5SWyuecMbG3t6nHCcCDfeod/A==
- Ironport-phdr: A9a23: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 xQNyLL8a48UM9+is3E=
- Ironport-sdr: 63a437b8_e35VCbnuI8O4ZsR90whFHOA7w8P1zDC5wUfslc6B6UNA+j6 OJxwhfAyVNsjEc6IFKi6n5QYo7NRT7KduiXynpg==
Hi everyone,
How can I prove the theorem, go_app, shown below? I find it slightly
amusing that in the base there is not enough information that I can
use to discharge it. You can see the complete source code [1] (I
manage to prove this theorem for a simplified definition of go using
filter [2])
Fixpoint go (z : A) (xs : list A) : list A * list A :=
match xs with
| [] => ([], [])
| (x :: xs) =>
match go z xs with
| (ys, zs) =>
match R x z with
| true => (x :: ys, zs)
| _ => (ys, x :: zs)
end
end
end.
Theorem go_app :
∀ (xs ys zs : list A) (z : A),
In z xs ->
(ys, zs) = go z xs -> Permutation (ys ++ zs) xs.
Proof.
refine(fix Fn xs {struct xs} :=
match xs as xsp return xs = xsp -> _
with
| [] => fun Ha => _
| xh :: xst => fun Ha => _
end eq_refl);
simpl;
intros ? ? ? Hb Hc.
+
refine(match Hb with end).
+
refine(match Hb with
| or_introl Hap => _
| or_intror Hap => _
end).
++
rewrite Hap in Hc.
rewrite R_refl in Hc.
(* There is no information in the context that
connects xst to xsh and ysh *)
destruct (go z xst) as (xsh, ysh) eqn:He.
inversion Hc; subst; clear Hc; simpl.
constructor.
(* Now I am stuck! Because this is what
I am trying to discharge so I am chasing my tail?
*)
admit.
++
destruct (R xh z) eqn:Hd.
+++
destruct (go z xst) as (xsh, ysh) eqn:He.
inversion Hc; subst; clear Hc; simpl.
constructor.
eapply Fn;
[exact Hap | eapply eq_sym; exact He].
+++
destruct (go z xst) as (xsh, ysh) eqn:He.
inversion Hc; subst; clear Hc; simpl.
eapply Permutation_sym, Permutation_cons_app,
Permutation_sym.
eapply Fn;
[exact Hap | eapply eq_sym; exact He].
Admitted.
Best,
Mukesh
[1] https://gist.github.com/mukeshtiwari/55439c129b35071585e05c9847a96c59
[2]
https://gist.github.com/mukeshtiwari/55439c129b35071585e05c9847a96c59#file-constant_space-v-L17
- [Coq-Club] Proof about permutation, mukesh tiwari, 12/22/2022
- Re: [Coq-Club] Proof about permutation, Marko Doko, 12/22/2022
- Re: [Coq-Club] Proof about permutation, mukesh tiwari, 12/22/2022
- Re: [Coq-Club] Proof about permutation, Marko Doko, 12/22/2022
- Re: [Coq-Club] Proof about permutation, mukesh tiwari, 12/22/2022
- Re: [Coq-Club] Proof about permutation, Marko Doko, 12/22/2022
- Re: [Coq-Club] Proof about permutation, mukesh tiwari, 12/22/2022
- Re: [Coq-Club] Proof about permutation, Dominique Larchey-Wendling, 12/22/2022
- Re: [Coq-Club] Proof about permutation, mukesh tiwari, 12/23/2022
- RE: [Coq-Club] Proof about permutation, Jason Hu, 12/23/2022
- Re: [Coq-Club] Proof about permutation, mukesh tiwari, 12/23/2022
- Message not available
- Re: [Coq-Club] Proof about permutation, mukesh tiwari, 12/23/2022
- Message not available
- Re: [Coq-Club] Proof about permutation, mukesh tiwari, 12/23/2022
- Message not available
- Re: [Coq-Club] Proof about permutation, mukesh tiwari, 12/23/2022
- RE: [Coq-Club] Proof about permutation, Jason Hu, 12/23/2022
- Re: [Coq-Club] Proof about permutation, mukesh tiwari, 12/23/2022
- Re: [Coq-Club] Proof about permutation, Marko Doko, 12/22/2022
Archive powered by MHonArc 2.6.19+.