Opened 5 years ago

Closed 5 years ago

#15107 closed enhancement (fixed)

Projective Plane designs

Reported by: ncohen Owned by:
Priority: major Milestone: sage-6.1
Component: combinatorics Keywords:
Cc: dimpase Merged in:
Authors: Nathann Cohen Reviewers: Stefan van Zwam
Report Upstream: N/A Work issues:
Branch: u/ncohen/15107 (Commits) Commit: 6f247f6e7f3f704d30f12af082d3e8a4c2120227
Dependencies: Stopgaps:

Description

Shortcut to another function. In order to save a stranger the time it took me to understand it :-P

Nathann

Change History (21)

comment:1 Changed 5 years ago by ncohen

  • Branch set to u/ncohen/15107
  • Status changed from new to needs_review

comment:2 Changed 5 years ago by dimpase

  • Status changed from needs_review to needs_work

Your code returns a very particular projective plane, the one obtained from the finite field of order n, whereas there could be many nonisomorphic ones (the first such case being n=9). This should be reflected in the docs, IMHO.

comment:3 follow-up: Changed 5 years ago by ncohen

  • Status changed from needs_work to needs_review

OKayyyyyyy. Branch updated :-)

comment:4 Changed 5 years ago by chapoton

in ProjectiveGeometryDesign :

  • one does not know what is the input F
  • there is a missing :: in the modified example block

comment:5 Changed 5 years ago by ncohen

Fixed ! Sorry 'bout that :-)

Nathann

comment:6 in reply to: ↑ 3 Changed 5 years ago by dimpase

Replying to ncohen:

OKayyyyyyy. Branch updated :-)

the function name is unfortunate; it should reflect the fact that there could be several examples, or, rather, make it unique, like ClassicalProjectivePlane or DesarguesianProjectivePlane or something like this. Otherwise it would preclude adding code for non-classical examples.

comment:7 Changed 5 years ago by ncohen

Well, I see a ProjectivePlane method as one that will give me "some projective plane", and I can't make more assumptions on what it is. I would also like someone who just wants "a projective plane" to be able to find the method, for I need projective planes and I have no idea what a Desarguesian projective plane is, nor if the one I implemented is classical.

Plus I implemented a steiner_triple_system method which returns only one kind of steiner triple systems, I did the same for steiner_quadruple_systems, ... :-P

What would you think of this : we keep ProjectivePlaneDesign as the method name for the moment, and if we end up with more data we will just make it accessible visible in the doc ?

Combinat-style, this thing should be a new ProjectivePlanes class with an an_element method to return some projective plane, and none other. But we can't even write a .cardinality() method, nor enumerate them... :-P

And if you insist I will rename this to ClassicalProjectivePlaneDesign.

Have fuuuuuuuuuuuuuuuuuuuuuuuun ! ;-)

Nathann

comment:8 Changed 5 years ago by dimpase

http://en.wikipedia.org/wiki/Desargues%27_theorem is a geometric criterion satisfied by projective planes obtained from the 3-dimensional vector spaces over division rings; every finite division ring is a field, so in the finite case every such plane is Pappian, see http://en.wikipedia.org/wiki/Pappus%27s_hexagon_theorem.

Keeping the current name sucks, as adding more examples would force you to rename stuff. So, please, call it, as you prefer: Classical, or Pappian, or Desarguesian...

As far as ProjectivePlanes class would go, you can do cardinality() up to n=10...

comment:9 Changed 5 years ago by git

  • Commit set to 9fcfb13f3c62e9f8a759063cf86d629b13db754f

Branch pushed to git repo; I updated commit sha1. New commits:

[changeset:9fcfb13]Rename the method from ProjectivePlaneDesign? to DesarguesianProjectivePlaneDesign?
[changeset:363badb]trac 15107 -- reviewer's comments
[changeset:ee6d412]Projective Plane designs constructor

comment:10 follow-up: Changed 5 years ago by ncohen

Cool automatic message O_o

Nathann

comment:11 in reply to: ↑ 10 Changed 5 years ago by dimpase

Replying to ncohen:

Cool automatic message O_o

By git... Perhaps the sage git dev scripts should get a better, more descriptive, name... Shlimazl, maybe :-)

comment:12 Changed 5 years ago by git

  • Commit changed from 9fcfb13f3c62e9f8a759063cf86d629b13db754f to cf71d58dedd357692ea90749090adee9ffadd629

Branch pushed to git repo; I updated commit sha1. New commits:

[changeset:cf71d58]Rebase on 5.13.beta0

comment:13 Changed 5 years ago by chapoton

Sorry Nathann, but what is exactly the purpose of the newfunction DesarguesianProjectivePlaneDesign ?

In my opinion, with this name, it does no longer make sense to answer 'No projective plane design of order 10 exists' or 'If such a projective plane exists, we do not know how to build it.' One should rather check if the input is a prime power and that's it.

Then it would be just a restriction of ProjectiveGeometryDesign? to the dimension 2, i.e. some kind of alias. Either this is considered not useful, and this ticket can be forgotten, or you want to keep it as an useful alias, and it will be ok.

comment:14 Changed 5 years ago by ncohen

Helloooooo !

Well, the purpose of this function is to return a projective plane design, i.e. a d^2+d+1, d+1 BIBD.

I agree with what you said. Actually, thinking about it again, I don't agree with what Dima said above. I don't see the problem with calling this ProjectivePlaneDesign, as I need a function which returns a projective plane design. Changing the name just makes it harder to find when one looks for it >_<

What do you think ?

I think that this alias is useful, but I personally spent quite some time trying to figure out of to obtain a projective plane design with Sage.

Nathann

comment:15 Changed 5 years ago by git

  • Commit changed from cf71d58dedd357692ea90749090adee9ffadd629 to b6aa35a203041a0ccea849bb8157cff80002b428

Branch pushed to git repo; I updated commit sha1. New commits:

b6aa35atrac #15107: back to the first name with a new argument
e2935feTrac #15107: Rebase on 6.1.beta3

comment:16 Changed 5 years ago by ncohen

I just updated this ticket after the englightening discussion held on sage-devel : https://groups.google.com/d/topic/sage-devel/a6I0SUZVgNM/discussion

We now have an additional argument to ProjectivePlaneDesign? which does nothing. That's for the sake of art.

Nathann

comment:17 Changed 5 years ago by chapoton

There is a typo "afinite projective plane"

I propose to replace "No other value is available for this parameter." by

"For the moment, no other value is available for this parameter."

comment:18 Changed 5 years ago by git

  • Commit changed from b6aa35a203041a0ccea849bb8157cff80002b428 to 6f247f6e7f3f704d30f12af082d3e8a4c2120227

Branch pushed to git repo; I updated commit sha1. New commits:

6f247f6trac #15107: back to the first name with a new argument
e2935feTrac #15107: Rebase on 6.1.beta3
cf71d58Rebase on 5.13.beta0
9fcfb13Rename the method from ProjectivePlaneDesign to DesarguesianProjectivePlaneDesign
363badbtrac 15107 -- reviewer's comments
ee6d412Projective Plane designs constructor

comment:19 Changed 5 years ago by ncohen

Here it is ! I updated the last commit :-)

Nathann

comment:20 Changed 5 years ago by Stefan

  • Reviewers set to Stefan van Zwam
  • Status changed from needs_review to positive_review

I think this looks fine and is ready to go in.

Just for fun, I did the following additional consistency check:

sage: S = designs.ProjectiveGeometryDesign(2,1,GF(3))
sage: M = Matroid(circuit_closures={2:S.blocks(),3:[range(13)]})
sage: M.is_isomorphic(matroids.PG(2,3))
True

comment:21 Changed 5 years ago by vbraun

  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.