[Agda] not-all -> any-not
Jesper Cockx
Jesper at sikanda.be
Thu Oct 24 21:01:43 CEST 2013
¬all→any¬ is not provable without assuming P is decidable: in order to
define it, we would have to decide for which x in xs we have ¬ (P x), but
this is not possible in general.
If it were provable, we could decide ¬ P for arbitrary P as below:
postulate ¬all→any¬ : {A : Set} {P : A → Set} {xs : List A} →
(¬ All P xs) → Any (¬_ ∘ P) xs
postulate A : Set
postulate P : A → Set
P' : (Bool × A) → Set
P' (true , a) = P a
P' (false , a) = ¬ P a
list : A → List (Bool × A)
list a = (true , a) ∷ (false , a) ∷ []
¬allP' : (a : A) → ¬ All P' (list a)
¬allP' a (pa ∷ ¬pa ∷ []) = ¬pa pa
dec : Decidable (¬_ ∘ P)
dec a with ¬all→any¬ (¬allP' a)
dec a | here ¬pa = yes ¬pa
dec a | there (here ¬¬pa) = no ¬¬pa
dec a | there (there ())
Best,
Jesper
On Thu, Oct 24, 2013 at 7:54 PM, Sergei Meshveliani <mechvel at botik.ru>wrote:
> People,
> I write
>
> ¬all→any¬ : {A : Set} {P : A → Set} {P? : Decidable P} {xs : List A} →
> (¬ All P xs) → (Any (¬_ ∘ P) xs)
>
> and think: is this provable without using Decidable ?
>
> I tried a singleton list for a counter example. But here is the proof:
>
> ¬all→P1 : {A : Set} {P : A → Set} {x : A} → (¬ All P (x ∷ [])) → ¬ P x
> ¬all→P1 ¬all-x Px = ¬all-x (Px ∷a []a)
>
> ([]a, _∷a_ imported from Data.List.All as renamed [], _∷_).
>
> May be x ∷ y ∷ [] is a counter example?
>
>
> And ¬all→any¬ I implement as
>
> ¬all→any¬ {xs = []} ¬all[] = ⊥-elim $ ¬all[] []a
>
> ¬all→any¬ {P = P} {P? = P?} {xs = x ∷ ys} ¬all-x:ys with P? x
> ... |
> no ¬Px = here ¬Px
> ... | yes Px =
> there $ ¬all→any¬ {P = P} {P? = P?} {xs = ys} ¬all-ys
> where
> ¬all-ys : ¬ All P ys
> ¬all-ys all-ys = ¬all-x:ys (Px ∷a all-ys)
>
>
> Thank you in advance for explanation,
>
> ------
> Sergei
>
> _______________________________________________
> Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.chalmers.se/pipermail/agda/attachments/20131024/f42dc390/attachment.html
More information about the Agda
mailing list