coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Daniel Schepler <dschepler AT gmail.com>
- To: Coq Club <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}
- Date: Fri, 21 Feb 2020 08:33:33 -0800
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=dschepler AT gmail.com; spf=Pass smtp.mailfrom=dschepler AT gmail.com; spf=None smtp.helo=postmaster AT mail-io1-f43.google.com
- Ironport-phdr: 9a23:4o2b0xJLZdunWy13B9mcpTZWNBhigK39O0sv0rFitYgRLPvxwZ3uMQTl6Ol3ixeRBMOHsq4C27ad4/+ocFdDyKjCmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfLx/IA+1oAjeucUbgolvIbstxxXUpXdFZ+tZyWR0KFyJgh3y/N2w/Jlt8yRRv/Iu6ctNWrjkcqo7ULJVEi0oP3g668P3uxbDSxCP5mYHXWUNjhVIGQnF4wrkUZr3ryD3q/By2CiePc3xULA0RTGv5LplRRP0lCsKMSMy/XrJgcJskq1UvBOhpwR+w4HKZoGVKOF+db7Zcd8DWGZNQtpdWylHD4ihbYUAEvABMP5XoInzpVQArRWwCwqxCu3x1jBFnWP20bEg3ug9DQ3KwA4tEtQTu3rUttX1M6ISXPi7wqbSyzXDbu1Z2TPg44bVbh8hoe+DXap0ccXP00kkCgTIgUiLqYP5PzOayPwNs2yF4Op6Tu+vhGsnpBtwojir3Msjlo7JhocMx13C6C53w541KMWmREJnZdOoCphduiGAO4drQ84vQntktSk0x7AApJW1ZjIFyI49yB7ac/GHc5aH4hbkVOuJJDd3nnNleLamixaz9kis1/TwVse73VtEtCZFnd7MtncC1xzX9MeLUOdy/kCk2TqX1gDT7P9LIVwsmKbFN5IsxqQ8m5kTvEjZAyP7mUT7gLWZe0gq4uSo7v7oYrTipp+SLY90jQT+P7wzlcykHes4MhYBX3Cf+euizr3u5kL5QLBQgf03lqnVqozVJcMepqKhGQ9azp4j6wqjDzehyNkXgX4HLEtcdB2bi4jpJkrBLevjDfa/hlSsiC1ky+rHPr3nGJXNL2LMnK3vfbZnuAZgz18YyskXzJZJAPlVK/XqH0T1qdbwDxkjMgXyzfyxW/tn0YZLdWuJA6KdeJjZsVKQ4u81a72Af4QVtS75JuIN6PvnjHt/klgYK/r6laALYWy1S6w1a36SZmDh15JYST9T71gOCdfygVjHagZ9InO7XqYy/DY+Udv0AoLKR4Tri7uEjn7iQs9mI1teA1XJKk/GMp2eUq5VOi2XK85l1DcDUOr5EtJz5VSVrAb/joFfAK/U9ykf78+x0dF046jSkkh3+2AvScua1G6JQid/mWZaHzI=
On Fri, Feb 21, 2020 at 2:42 AM Valentin Robert
<valentin.robert.42 AT gmail.com>
wrote:
> Or I have to painfully roll my own inversion:
>
> Goal forall T (P : Vector.t T 2 -> Type) v, P v.
> move => T P v.
> pose goal :=
> (
> fun n v =>
> match n as n' return Vector.t T n' -> Type with
> | 2 => P
> | _ => fun _ => True
> end v
> ).
What if instead, you rolled the basic vectorS_inv and vector0_inv
once, and then used those as building blocks? e.g.
Definition vectorS_inv {X:Type} {n:nat} :
forall P : Vector.t X (S n) -> Type,
(forall (h : X) (t : Vector.t X n), P (Vector.cons _ h _ t)) ->
forall v : Vector.t X (S n), P v.
Admitted.
Definition vector0_inv {X:Type} :
forall P : Vector.t X O -> Type,
P (Vector.nil _) -> forall v : Vector.t X O, P v.
Admitted.
Goal forall {X:Type} (P : Vector.t X 2 -> Type),
(forall a b : X, P (Vector.cons _ a _ (Vector.cons _ b _ (Vector.nil _))))
->
forall v : Vector.t X 2, P v.
intros X P f v. destruct v as [a0 v'] using @vectorS_inv.
destruct v' as [b0 v''] using @vectorS_inv.
inversion v'' using @vector0_inv. apply f.
Defined.
--
Daniel Schepler
- [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Talia Ringer, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Jason Gross, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Valentin Robert, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Daniel Schepler, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Valentin Robert, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Talia Ringer, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Talia Ringer, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Dominique Larchey-Wendling, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Emilio Jesús Gallego Arias, 02/22/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Jason Gross, 02/22/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Hugo Herbelin, 02/22/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Arthur Azevedo de Amorim, 02/22/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Jason Gross, 02/22/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Hugo Herbelin, 02/22/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Talia Ringer, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Valentin Robert, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Daniel Schepler, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Valentin Robert, 02/21/2020
- Re: [Coq-Club] Ideal eliminator for { l : list T & length l = n}, Jason Gross, 02/21/2020
Archive powered by MHonArc 2.6.18.