Skip to Content.
Sympa Menu

ssreflect - Re: [ssreflect] trivIset and intersecting sets...

Subject: Ssreflect Users Discussion List

List archive

Re: [ssreflect] trivIset and intersecting sets...


Chronological Thread 
  • From: Florent Hivert <>
  • To: "" <>
  • Subject: Re: [ssreflect] trivIset and intersecting sets...
  • Date: Fri, 12 Feb 2016 11:28:58 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=None ; spf=None
  • Ironport-phdr: 9a23:G8O4mRC6j9aLPVL026mXUyQJP3N1i/DPJgcQr6AfoPdwSP7zpMbcNUDSrc9gkEXOFd2CrakU1KyN7eu5ByQp2tWojjMrSNR0TRgLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpQAbFhi3DwdpPOO9QteU1JTokbvssMSNKyxzxxODIppKZC2sqgvQssREyaBDEY0WjiXzn31TZu5NznlpL1/A1zz158O34YIxu38I46FppIZ8VvCwZL8iQLJcAT86G2Uu/ojqswPCRE2O4GEdWyMYiFAAVxPe9hz0Wpr6rgP/rfA42S+APMSwTLYuWD3k4b09GzHyjyJSGTo+6mzRloRQjbxWug7p8zJ7xJTZZp3TFPtgc7nBVdcARCxPRJACBGR6HoqgYt5XXKI6NuFCotylqg==

Dear Emilio,

Thanks a lot for your code. It is indeed shorter than mine. After, rereading
it and reworking it I'm not sure to understand why ? Is there a specific trick
you can pinpoint that made it shorter or simpler and that I can remember and
reuse ? Or do you think, is it just that you know how to use ssreflect tactics
better than me.

Thank for your time,

Regards,

Florent


For the sake of completeness, you missed the Hypothesis that the two
intersecting block are in P in your cond_triv definition.

Definition cond_triv P AB :=
[&& (AB.1 \in P), (AB.2 \in P), (AB.1 != AB.2) & (AB.1 :&: AB.2 != set0)].

It makes the proof of the ax lemma a little longer:

Lemma ax P : exists AB, ~~ trivIset P ==> cond_triv P AB.
Proof.
suff: ~~ trivIset P -> [exists AB, cond_triv P AB].
by case: (trivIset _) / boolP => /= _; [exists set00|move/(_
erefl)/existsP].
apply contraR; rewrite negb_exists_in => /forallP hdis.
apply/trivIsetP => A B HA HB AB_neq; have := hdis (A,B).
by rewrite HA HB AB_neq /= setI_eq0 negbK.
Qed.



Archive powered by MHonArc 2.6.18.

Top of Page