Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Projective Plane designs #15107

Closed
nathanncohen mannequin opened this issue Aug 27, 2013 · 25 comments
Closed

Projective Plane designs #15107

nathanncohen mannequin opened this issue Aug 27, 2013 · 25 comments

Comments

@nathanncohen
Copy link
Mannequin

nathanncohen mannequin commented Aug 27, 2013

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

Nathann

CC: @dimpase

Component: combinatorics

Author: Nathann Cohen

Branch/Commit: u/ncohen/15107 @ 6f247f6

Reviewer: Stefan van Zwam

Issue created by migration from https://trac.sagemath.org/ticket/15107

@nathanncohen nathanncohen mannequin added this to the sage-6.1 milestone Aug 27, 2013
@nathanncohen
Copy link
Mannequin Author

nathanncohen mannequin commented Aug 27, 2013

Branch: u/ncohen/15107

@nathanncohen nathanncohen mannequin added the s: needs review label Aug 27, 2013
@dimpase
Copy link
Member

dimpase commented Aug 29, 2013

comment:2

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.

@nathanncohen
Copy link
Mannequin Author

nathanncohen mannequin commented Aug 29, 2013

comment:3

OKayyyyyyy. Branch updated :-)

@fchapoton
Copy link
Contributor

comment:4

in ProjectiveGeometryDesign :

  • one does not know what is the input F

  • there is a missing :: in the modified example block

@nathanncohen
Copy link
Mannequin Author

nathanncohen mannequin commented Aug 30, 2013

comment:5

Fixed ! Sorry 'bout that :-)

Nathann

@dimpase
Copy link
Member

dimpase commented Aug 31, 2013

comment:6

Replying to @nathanncohen:

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.

@nathanncohen
Copy link
Mannequin Author

nathanncohen mannequin commented Sep 1, 2013

comment:7

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

@dimpase
Copy link
Member

dimpase commented Sep 1, 2013

comment:8

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...

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 1, 2013

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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 1, 2013

Commit: 9fcfb13

@nathanncohen
Copy link
Mannequin Author

nathanncohen mannequin commented Sep 1, 2013

comment:10

Cool automatic message O_o

Nathann

@dimpase
Copy link
Member

dimpase commented Sep 1, 2013

comment:11

Replying to @nathanncohen:

Cool automatic message O_o

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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 16, 2013

Changed commit from 9fcfb13 to cf71d58

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 16, 2013

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

[changeset:cf71d58]Rebase on 5.13.beta0

@fchapoton
Copy link
Contributor

comment:13

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.

@nathanncohen
Copy link
Mannequin Author

nathanncohen mannequin commented Jan 4, 2014

comment:14

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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 4, 2014

Changed commit from cf71d58 to b6aa35a

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 4, 2014

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

@nathanncohen
Copy link
Mannequin Author

nathanncohen mannequin commented Jan 4, 2014

comment:16

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

@fchapoton
Copy link
Contributor

comment:17

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."

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 4, 2014

Changed commit from b6aa35a to 6f247f6

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 4, 2014

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

@nathanncohen
Copy link
Mannequin Author

nathanncohen mannequin commented Jan 4, 2014

comment:19

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

Nathann

@sagetrac-Stefan
Copy link
Mannequin

sagetrac-Stefan mannequin commented Jan 6, 2014

Reviewer: Stefan van Zwam

@sagetrac-Stefan
Copy link
Mannequin

sagetrac-Stefan mannequin commented Jan 6, 2014

comment:20

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants