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.