jamesdabbs / pi-base.hs

A Haskell-powered modernization of Counterexamples in Topology
MIT License
39 stars 5 forks source link

Algebra ? #41

Open spitters opened 9 years ago

spitters commented 9 years ago

Is there any reason not to make an algebra database? http://en.wikipedia.org/wiki/Outline_of_algebraic_structures

jamesdabbs commented 9 years ago

It's definitely something I've thought about. I wanted to start with an area that I knew well and had a good set of examples to draw from, but I'd love to expand the scope down the road. I do have longer-term plans to support properties that are cardinal- / group- / ring- valued (see e.g. issue #25), and was planning on thinking carefully about algebraic objects around the time I was working on those.

In the meantime, if you (or anyone) are interested in collaborating on an algebraic instance of the site, please get in touch with me.

konradvoelkel commented 9 years ago

Another instance could be about algebraic geometry. There, one would not only want to talk about spaces and their properties, but rather about morphisms and their properties.

Most properties of spaces (in algebraic geometry) are in fact properties of their structure morphism. Since not all properties are of that kind, and some theorems are of the form "if f: X -> Y is a morphism and X has property P then f has property Q" one would have to introduce a more complicated object model.

A temporary solution would be to ignore such fine typing issues and discuss spaces and morphisms at the same time. This creates the confusion that users may ask nonsensical queries about a morphism having some properties that only a space can have, so it's not a good solution.

Are there any plans about enhancements to the object model at the time? Currently there is only the type "Space", but in other areas of mathematics, one may wish for other objects and more distinctions. One could prepare such things by changing all occurence of "Space" in the code to "Object" and making sure that having two distinct "Object1" and "Object2" would easily work.

jamesdabbs commented 9 years ago

My initial intention for rolling out another instance would just be to have a single generic "Object" table to replace what "Spaces" currently is. It would be nice to have more fine grained resolution about spaces vs. morphisms, but it's not clear to me how to model that in a generic way.

Long term, I'd really like to integrate with something like Isabelle so that all proofs are formally verified. Once the system actually knows something about the internal structure of the objects being talked about, a lot of interesting possibilities open up. That's all pretty far down the road and hazy at the moment though.

konradvoelkel commented 9 years ago

Oh, there is a lot one could discuss about integration with Isabelle and/or friends. Let's look at that again in a few months.

As for the original question: shouldn't one replace all occurences of "Space" with "Object" (or something appropriate, such as "Entity" maybe)? I'm imagining the headache of having "Space" in the code where one has actually "Set" or "Morphism" or even both "Space" and "Morphism" in the UI later on. Better change now, given that there seems to be interest in having non-topology instances of pi-base?

I admit that it's not a very urgent issue, and helping other pi-base instances is probably not the main concern atm.

jamesdabbs commented 9 years ago

Haha ... Entity and Object already mean something very specific in Yesod (c.f. the exist TValue type vs. JSON's Value), but I take your meaning.

I'd be inclined to hold off on a name change until we have some better idea what exactly we'll need to support. One of the things that took me a while to appreciate about Haskell is how incredibly easily refactorable it is relative to other languages. I'd be worried about making that change later in the lifecycle of a Ruby project; I'm not so worried here.

On Thu, Nov 6, 2014 at 9:34 AM, Konrad Voelkel notifications@github.com wrote:

Oh, there is a lot one could discuss about integration with Isabelle and/or friends. Let's look at that again in a few months.

As for the original question: shouldn't one replace all occurences of "Space" with "Object" (or something appropriate, such as "Entity" maybe)? I'm imagining the headache of having "Space" in the code where one has actually "Set" or "Morphism" or even both "Space" and "Morphism" in the UI later on. Better change now, given that there seems to be interest in having non-topology instances of pi-base?

I admit that it's not a very urgent issue, and helping other pi-base instances is probably not the main concern atm.

— Reply to this email directly or view it on GitHub https://github.com/jamesdabbs/pi-base.hs/issues/41#issuecomment-61986896 .

ekce commented 8 years ago

It might be worth mentioning that a mathematician named Nathan Carter wrote a piece of software for group theory a few years ago that in addition to functioning as a database of groups it also provides Cayley graphs, Cayley tables, cycle graphs, and other visualizations. I believe the software can only handle discrete finite groups but I'm not sure.

Unfortunately it seems activity stalled on it a few years ago.

http://groupexplorer.sourceforge.net/index.html http://groupexplorer.sourceforge.net/ge2intro.html