On Sun, Feb 09, 2025 at 02:20:54PM +0000, Martin Baker wrote:
> On 09/02/2025 12:58, Waldek Hebisch wrote:
> > To say the truth, before trying to fix the functions one should ask
> > if this code is ever used?  Function in categories are only used via
> > inheritance to domains.  If a domain provides its own representation,
> > then it probably also provides all functions depeneding on representation
> > (doing otherwise risks bugs when code changes).  So possibly
> > simplest fix would just remove the problematic code.
> 
> Well I often get thrown by the differences between SPAD categories and
> say Java interfaces so the code may well be sub optimal.
> 
> Recently I have been writing some SPAD code to implement (mostly finite)
> topological spaces and the continuous maps between them.

Finite topological spaces are equivalent to partial orders, so
there is connection to logic.  But they are quite different than
infinite topological spaces like simplicial complexes.

> What I would
> like to do is have links (conversions) between this logic
> implementation, topological space implementation and simplicial complex
> implementation. So in the longer term I would like to revisit this logic
> code after the implementing topological space.
> 
> Another thing I have always wanted to do is implement simplicial sets
> (degenerate faces and all that) but the point of that is to have nice
> topological properties so again I want to implement topological spaces
> first.
> 
> I don't know what your view of having more of these finite structures in
> FriCAS is? I suspect most people here are more interested in fields and
> rings and that sort of thing?

Well, I am interested in more general things.  Finite things
frequently are related to combinatorics and there was (and I
hope still is) interest in having good support for combinatorics
in FriCAS.

> When implementing these finite structures like simplicial complexes I
> keep getting a vague idea that they might be more efficiently
> implemented as databases where the schema is the base space and the
> tables are the entire space. Then, maybe it might be possible to
> abstract out topological concepts like fibrations and cofibrations and
> lifting and extension properties. I haven't thought this though and I
> suspect it wouldn't be practical.

Let me present my view here.  What does it mean "doing mathematics
in computer"?  One aspect is to support notation analogus to used
in literature, allowing creation and manipulation of statements/
expressions.  In particular this means reasonably nice output.
Basicaly this would be "programmable editor", so transformation
could be specified by hand.  Nontrivial mathematical statements
may be hard or impossible to decide, so I do _not_ expect
general domain of this sort to be able to say decide mathematical
equality.  But hopefully user should be able to specify
transformations and see their effect.

Different aspect is examples.  I would like to see domains allowing
work with small parts of corresponding mathematical domain, allowing
deciding various problems within such a small part.

> So feel free to do whatever you want with IsArrow? and if any of this
> topological space stuff seems interesting to anyone I would appreciate
> any ideas.

For classical topological spaces people care about homotopies and
homology.  Homology for simplicial complexes essentially reduces to
linear algebra over integers, so is relatively easy.  First homotopy
group is in general uncomputable.  Assuming that first homotopy
group is trivial, there is old result about higher homotopy groups,
namely there is relation to homology of loop spaces.  Loop spaces
as normally defined are not simpilical complexes, but it is
relatively easy to give infinite simpilical complex which is
homotopy equvalent to loop space of a simplical complex.  So
one needs to tame infinity.  One step here was done by E. Brown,
who proved that to compute homotopy of given order is is enough
to look at finite part of infinite simpilical complex equivalent
to loop space.  Complex given by Brown is quite large.  F. Sergeraert
showed that one can use much smaller finite complex, which allowed
practical computations.  AFAICS there is rather heavy theory
behind this and implementation needs a lot of coding.

Vector bundles over simplicial complexes have rather natural
representation: over each simplex you have vector space
of given dimension, so by choosing basis you can just take
R^n.  On intersection of simplexes there is change of base,
so you need a transition matrix.  In general this transition
matrix may be an arbitrary continous matrix function, subject
to agreement rules.  But you should be able to do with
matrix valued polynomials (or rational functions since we need
inverses).  And AFAICS homotopic sets of transition matrices
give isomorphic bundles, so there is more possibilities to
limiot form of transition matrices.  If transition matrices
take values in orthogonal matrices you should be able to
represent bundles of spheres in similar way.  If transition
matrices have integer entries and determinant +-1 you will
get bundles of toruses.

In somewhat different direction you may consider algebraic
sets.  CAD (implementd by CylindricalAlgebraicDecompositionPackage)
give you decomposition of real algebraic set into cells,
so you should be able to produce a simplicial complex from
such decomposition.  If the set is smooth you may consider
tanget bundle or normal bundle.

I think that analog of cylindrical algebraic decomposition
works for more general sets, defined by elementary equations
and inequalities (with reasonable regularity assumptions needed
to avoid uncomputability).  But again, this probaly would
require working out details of theory (I am not aware of
precise description) and coding is likely to be rather
involved.

I would suggest to start with relatively simple things and
make them work well, so simplicial complexes rather than
generalizations, functions which are as simple as possible
(for mappings one gets nontrivial theory already from
piecewise linear maps).

-- 
                              Waldek Hebisch

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/fricas-devel/Z6jpoY_94azWRhVk%40fricas.org.

Reply via email to