Given a finite abstract simplicial complex G that is a q-manifold, we consider a k-simplex y in an oriented maximal simplex x as an element in the Grassmannian G(k,q). Of course we are in finite geometry and have no vector spaces but a maximal simplex serves as a q-dimensional frame and a k-simplex can be considered as the analog of k-dimensional subspace. Similarly as in the continuum, where an element in the Grassmannian of the tangent space
of a point p in a Riemannian manifold M, defines a k-dimensional geodesic sheet obtained by running all geodesics within the subspace, we want to get in the discrete a k-dimensional discrete manifold passing through that point in the Grassmannian. In the case k=1, this is just the geodesic. In the two dimensional case, this is a geodesic sheet that we have used last year to define sectional curvature. Below is some code which generates the local patches. As written, it first defines a 5 dimensional simplicial complex, (a 5-sphere), then chooses a random oriented facet x, then a random k=2 simplex y in x, then displays the patch it generates as I describe it in the video. Furthermore, the curvature is printed. It is a sectional curvature. In the case of the manifold at hand, all sectional curvatures are positive.
What is new and what still needs to be worked out that is that I had thought last year that the pair (x,y) would define a sub-manifold in the frame bundle of G. This is not the case, we need the analog of the Grassmanian G(k,q) and look at pairs (x,y) as it could happen that we move along the manifold and get back to x with the same orientation but that y has shifted. The code below does only compute the local version (which is enough for sectional curvature). We would like to see however what kind of manifolds do appear, especially when considering higher dimensional manifolds. But this also needs a result. We have to verify that we can transport the Grassmanian along. At the moment, I do not see any problem. But is often a famous last word. One of the warning signs is that in the continuum, if we look at a geodesic sheet (it exists) and chose an other point on the sheet, then the sheet starting at that point is not the same than the original sheet. An other thing we want to check and to be true is that in a 2 dimensional situation we have 6 geodesics on the surface. In a 3-dimensional pack, we would have all 24 oriented geodesics through x are on the sheet. An other thing we want to check is whether if we have a 2 dimensional sheet in a 3 dimensional complex, then what the nature of the boundary of this sheet is if we look at the union of all its simplices as defining a solid. In the case of geodesics, this boundary consisted of a flat torus.
[Update April 7, 2026: I spent a few hours yesterday to refine the code below to produce the entire 2-manifold in a q-manifold but inside the Grassmannian bundle, rather than the frame bundle and it seems to work. The move from frame bundles to Grassmannians turned out to be crucial. It had not worked a year ago, when I had still worked in the frame bundle. I will talk about this next Saturday. What was achieved yesterday is to attach the different patches to each other to get a 2-manifold without boundary, but within the Grassmannian bundle and not the frame bundle. The orthogonal frame bundle can be seen as the Grassmannian G(q,q), now I work in G(2,q) which of course is still a finite set but q(q-1)/2 times larger than the frame bundle. I had used the name “geomag” for a similar construction in a very naive set up the Geomag lemma, where we just glue together a 2-manifold by attaching more and more “magnets”. (My earliest steps in this subject got a lot of inspiration from playing with “geomag”.) If positive curvature was understood in the sense that all vertices of a 2 dimensional patch have 4 or 5 elements, then we got to very small spheres. I called this Mickey-Mouse spheres. It was part of the “Simple Sphere Theorem” or “Mickey Mouse theorem from 2019”.
[[ P.S. I had mentioned this theorem also in a talk about “parameters for communicating mathematics” in the fall of 2019, and I had made the point by hand out geomag samples to the participants. It is “communicating mathematics” through tactiles, which is an other component beside visual or auditory. I once gave a presentation in 2021 about the VARK (Visual,Auditory, Read, Kinesthetic ) model of Fleming and Mills (from 1992). It had at that time been popularized by Veritasium as “the biggest myth of education”. Of course that later title is like many youtube hits a ridiculous click bait title (which seems to be important to be successful in youtube). I think that it had been clear since when I was a school kid that all sensors are important and that it is difficult to figure out what works best for whom. My first year teacher (his name was Mr Ilg) taught us the numbers using Cusineaire sticks, which are both visual and tactile. (He did this from his own initiative and not by using shelved lesson plans as teachers have today to use for teaching, it has shifted in also in higher education. I lamented about this modern trend in education here (The colorful ring of partitions [PDF]. ). My parititions article is quite cute and now also on the ArXiv, but had quite a bit difficulty to get into the ArXiv as some AI moderator must have thought that it is not suited, as it deals with first grade mathematics. The colorful ring of partitions is one of my more creative papers. It introduces partitions as a number system which is a special case of an even more general number system in which geometric objects are numbers, but that is as pointed out in other places mathematics for the next century. Back to VARK. If you would ask me, what the biggest myth in education is, then it is the silly dogma that skills and memory are of secondary importance in teaching and learning. You can look at anything in learning, knowing and skills are important. I am at the moment in the rather steep learning part of carpentry, masonry, plumbing, flooring, drilling etc while renovating our basement. I essentially do everything wrong at first and almost already lost a thumb in the table saw (don’t put it near the saw even if the blade has almost stopped!) You can not just use intuition. You need to know your tools and materials, you need to acquire skills and learn which tool works best in which situation.. It needs practice, sometimes watching youtube videos or ask folks at the hardware shop on “how to”. And that is also true in mathematics. Creativity only flourishes if one has acquired some basic knowledge. I for example have already figured out creative parts to cut away parts of a door using a “router tool”, but still suck, especially when routing free hand. END OF P.S.]]
But now I have a notion of sectional curvature that is more sophisticated and realistic and produces richer forms of geodesic patches in positive curvature cases. In the simple sphere theorem, the positive curvature manifolds were all very small. The current case works in more realistic cases like CP2 (a case I tried it out already) which is a 4 manifold of positive curvature and one of my favorite as it is the threshold case for the classical sphere theorem in the continuum (Berger and Klingenberg) which assured that 1/4 pinched positive curvature manifolds are spheres. End of Update from April 7. ]
Generate[A_]:=If[A=={},A,Sort[Delete[Union[Sort[Flatten[Map[Subsets,Map[Sort,A]],1]]],1]]];
Whitney[s_] :=Map[Sort,Generate[FindClique[s,Infinity,All]]];
Facets[G_] :=Select[G,(Length[#]==Max[Map[Length,G]] ) &];
OpenStar[G_,x_]:=Select[G,SubsetQ[#,x]&]; Stable[G_,x_]:=Complement[OpenStar[G,x],{x}];
Mirror[G_,y_]:=Module[{U=Stable[G,y]},Table[First[Complement[U[[j]],y]],{j,Length[U]}]];
T[G_,x_]:=Append[z=Delete[x,1];z,First[Append[Complement[Mirror[G,Sort[z]],{x[[1]]}],x[[1]]]]];
Bundle[G_] :=Module[{f=Facets[G]},Flatten[Table[Permutations[f[[k]]],{k,Length[f]}],1]];
Dual[H_]:=Module[{e={},n=Length[H]},Do[If[Length[Intersection[H[[k]],H[[l]]]]==Length[H[[1]]]-1,
e=Append[e,H[[k]]->H[[l]]]],{k,n},{l,k+1,n}]; UndirectedGraph[Graph[e]]];
s = GraphJoin[GraphJoin[CycleGraph[11], CycleGraph[5]], CycleGraph[4]]; k=2;
G = Whitney[s]; F=Facets[G]; q=Length[First[F]]-1;
x=RandomChoice[F]; y=RandomChoice[Select[Generate[{x}],Length[#]==k+1 &]];
a=Select[Generate[{y}],Length[#]==k &]; b=Table[Complement[x,a[[k]]],{k,Length[a]}];
s=Table[Stable[G,b[[m]]],{m,Length[b]}]; S=Table[Select[s[[m]],Length[#]==q+1 &],{m,Length[s]}];
ss=Dual[Flatten[S,1]]; GraphPlot3D[HighlightGraph[ss, {x}]]
Print[Total[1/Map[Length, S]] - 1/2];