> In fact, I think that functorial composition might be a heavy argument for 
> your
> approach to isotypes as representatives...

Ah. Finally, you begin to agree with me. ;-)

> Consider Graphs:
> 
> P[P2 [1,2,3,4]] = 
> 
> P[12, 13, 14, 23, 24, 34] =
> 
> ()
> 
> (12) (13) (14) (23) (24) (34) 
> 
> (12 13) (12 14) (12 23) (12 24) (12 34) (13 14) (13 23) (13 24) (13 34) 
> (14 23) (14 24) (14 34) (23 24) (23 34) (24 34)

> Now, how are we going to represent isotypes of graphs?  We raised that 
> question
> already once: simply replacing labels with dots does not work...

Yep. If people draw unlabelled graphs they take some "positions" and 
then draw the edges that belong to the graph. But, hey, "positions" must 
be distinguishable. So they are labelled in some sense although you 
don't actually see a label. One can think of the (x,y) coordinates as 
their labels.

> So, maybe we could have
> 
> structures: (Tuple SetSpecies L, Tuple Boolean) -> Generator %
> 
> where the second - optional - argument indicates which variables should be
> generated "unlabelled". I must admit that I don't like that either. But at
> least it takes away the burden to generate labels!

I don't understand what you mean by "generate labels" if you look at the 
current signature of isomorphismTypes you find

   SetSpecies L -> Generator %

the same as for "structures". There is no need to generate (extra) 
labels. But you probably rather want

   Integer -> Generator %.

Then you would need a function "elements: Integer -> Generator L" which 
generates exactly the number of labels you need.

> -------------------------------------------------------------------------------
> 
> In a private mail you suggested to define
> 
> CombinatorialSpecies: L: LabelType -> T: Tuple(L) ->
>     CombinatorialSpeciesCategory(L)(T)
> 
> I do not understand: a CombinatorialSpecies takes a LabelType and produces a
> function from Tuple L to CombinatorialSpeciesCategory(L)(T)? Maybe you could
> give a possible signature for structures and a type for generatingSeries?

Forget about that. I rather meant

MultisortSpecies: (L: Tuple LabelType) -> MultiSortSpeciesCategory L.

Or maybe replace Tuple by Array.
The reason for this structure is that I want functorial composition to 
be simple. Look at the definition of functorial composition as we have 
it now. You find

FunctorialCompose(
     F: SPECIES,
     G: SPECIES
)(L: LabelType): CombinatorialSpecies(L) == add {
         Rep == F G L;
         import from Rep;
         <<implementation: FunctorialCompose>>
}

Now my vision for multisort functorial compose is

macro MSPECIES==(L: Tuple LabelType)->MultisortSpeciesCategory L;
FunctorialCompose(
     F: MSPECIES,
     G: Tuple MSPECIES
)(L: Tuple LabelType): MultisortSpeciesCategory L == add {
     Rep == F(G1(L), G2(L), ..., Gn(L));
     ...
}

Of course, it does not exactly work as above, but it should be *very* 
close to it. In order to resolve the (G1,...,Gn), it would be perhaps 
worthwhile to think of a function

   Integer -> MSPECIES

instead of

   Tuple MSPECIES

So perhaps

macro MSPECIES==(L: Integer->LabelType)->MultisortSpeciesCategory L;
FunctorialCompose(
     F: MSPECIES,
     G: Integer -> MSPECIES
)(L: Integer -> LabelType): MultisortSpeciesCategory L == add {
     Rep == F((n: Integer) +-> G(L n));
     ...
}

could be extended to some working code. (All modulo the hope that the 
Aldor compiler doesn't produce trash from that really heavy definition.)

Ralf

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Aldor-combinat-devel mailing list
Aldor-combinat-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/aldor-combinat-devel

Reply via email to