#16323: Construction of BIBD with k=5
-------------------------------------+-------------------------------------
       Reporter:  ncohen             |        Owner:
           Type:  enhancement        |       Status:  needs_info
       Priority:  major              |    Milestone:  sage-6.3
      Component:  combinatorial      |   Resolution:
  designs                            |    Merged in:
       Keywords:                     |    Reviewers:
        Authors:  Nathann Cohen      |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  8eac6d069e162aed9d4fc1ae3f654d0b446573da
  u/vdelecroix/16323                 |     Stopgaps:
   Dependencies:  #16279             |
-------------------------------------+-------------------------------------
Changes (by ncohen):

 * commit:  07a31304b9d48ef6e07f1dd96c1d3185b8fafc95 =>
     8eac6d069e162aed9d4fc1ae3f654d0b446573da
 * branch:  u/ncohen/16323 => u/vdelecroix/16323


Comment:

 Hello !

 > Now that I read more carefully the code:
 > - why the construction using PBD can not be used from the main BIBD
 function?

 You mean that if we had a constructor for PBD we could call it from the
 BIBD constructor using BIBD_from_PBD ? It is true, but we have no PBD
 constructor at the moment. Besides the two PBD constructors we already
 have we could add a PBD_from_TD, stuff like that, indeed.

 > In particular, considering organization, I would like to see the
 functions `BIBD_from_PBD`, `_check_PBD`, `_relabel_BIBD`,
 `PBD_4_5_8_9_12`, `_PBD_4_5_8_9_12_closure`, `PBD_from_TD` much higher in
 the file, i.e. neither in the part "(v,4,1)-BIBD" nor in the part
 "(v,5,1)-BIBD".

 Move stuff around if you want. As far as I am concerned, it is totally
 pointless. This being said, some of those functions are together in the
 code because I implemented the, following the same reference, so if you
 move them apart please leave them linked together somehow.

 > - More generally, the functions `steiner_triple_system`, `v_4_1_BIBD`
 and `v_5_1_BIBD` currently follow various proofs. But we only care about
 constructing the BIBD and not checking the proofs, doesn't we? We
 certainly "check" the proof in the doctests but wouldn't it be possible to
 write in the main BIBD:
 >   {{{
 >   if database.BIBD[v,k]:
 >       ...
 >   elif construction1(v,k,existence=True):
 >       ...
 >   elif construction2(v,k,existence=True):
 >       ...
 >   }}}

 Hmmmmm... You are right that it would be equivalent, you are right that we
 have no automatic way to chec that the proof is right, but as it is
 implemented you can deduce, from looking at the code, that this is the
 intent and so that it is what the function does. Also, these functions
 have a documentation and comments which are related to the papers I
 followed to implement them, and this would be much harder to see if you
 poured them all in the main constructors.

 Another thing : sometimes the v_5_1_BIBD construction (for instance) needs
 a smaller BIBD to produce a larger one, but it does not call the main BIBD
 constructor because we know from the proof that this smaller bibd can be
 obtained by some specific construction. So well, it it implemented
 directly.

 So well.... I rather like to have these functions which somehow claim that
 "these cases are all dealt with", which would not be straightforward to
 see if all constructors were included in the main function. And if
 something which those constructions require is of more general use we can
 of course expose it inside of the main constructor.

 The original code for BIBD with k=5 was actually much larger... #16279 is
 one of these parts.

 Nathann
 ----
 New commits:
 
||[http://git.sagemath.org/sage.git/commit/?id=0610c7d2fe143405b38b0ee6aa63373bdf193e5e
 0610c7d]||{{{trac #16323: external BIBD_from_DF and use Zmod}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=daae63e125af9a05b9f3959ab4bca71655354083
 daae63e]||{{{trac #16323: DF -> difference_family, change errors and more
 doc}}}||
 
||[http://git.sagemath.org/sage.git/commit/?id=8eac6d069e162aed9d4fc1ae3f654d0b446573da
 8eac6d0]||{{{trac #16323: several fix + doc}}}||

--
Ticket URL: <http://trac.sagemath.org/ticket/16323#comment:18>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to