[WSS22] A study in proof space Topology

8 Likes

news-congrads-kkluyshnik-02-04-19.jpg – you have earned Featured Contributor Badge 2015-11-02_10-07-11.png
Your exceptional post has been selected for our editorial column Staff Picks http://wolfr.am/StaffPicks and Your Profile is now distinguished by a Featured Contributor Badge and is displayed on the Featured Contributor Board. Thank you!

1 Like

Oh Richard we might have missed a lot of lectures and things we needed to understand this project, but it’s okay because we’ve generated this entailment structure and constructed some equivalence to points… and the structure of future points within them.

This truly is a study in the axioms’ proof graphs, in proof space topology…

# <-> b & /@ {{a, a}, {a}}

r3.png

With these two-way rules you can just see how the under-lining features that correlate with Boolean and the other systems, some of them seem like randomness because something else is going on mathematically.

ResourceFunction[
ResourceObject[<|
   "Name" -> "TwoWayRuleNestGraph", "UUID" -> 
    "98cc7a51-abf1-4f9f-a0dd-542056ccad73", "ResourceType" -> 
    "Function", "ResourceLocations" -> {
CloudObject[
      "https://www.wolframcloud.com/obj/wolframphysics/Resources/98c/\
98cc7a51-abf1-4f9f-a0dd-542056ccad73"]}, "Version" -> None, 
    "DocumentationLink" -> 
    URL["https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayRuleNestGraph"], "ExampleNotebookData" -> Automatic, 
    "FunctionLocation" -> 
    CloudObject[
     "https://www.wolframcloud.com/obj/wolframphysics/Resources/98c/\
98cc7a51-abf1-4f9f-a0dd-542056ccad73/download/DefinitionData"], 
    "ShortName" -> "TwoWayRuleNestGraph", "SymbolName" -> 
    "FunctionRepository`$98cc7a51abf14f9fa0dd542056ccad73`\
TwoWayRuleNestGraph"|>]][
 x_\[SmallCircle] 
   y_ <-> (x_\[SmallCircle]y_)\[SmallCircle]x_, (a\[SmallCircle]b)\
\[SmallCircle]a, 2, 
 GraphLayout -> {"LayeredDigraphEmbedding", 
   "RootVertex" -> (a\[SmallCircle]b)\[SmallCircle]a}, 
 ImageSize -> Scaled[0.8`], AspectRatio -> 1/3]

It’s like how in Rulial space you get beamed around like the disjointed unions that exist in the union graph; for example it’s not really random, since the cycles will be different at various rules.

ResourceFunction[
ResourceObject[<|
   "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
    "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
    "Function", "ResourceLocations" -> {
CloudObject[
      "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
    "DocumentationLink" -> 
    URL["https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
    "FunctionLocation" -> 
    CloudObject[
     "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
    "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
    "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][{"B" <-> "BB"}, 2, "Sorting" -> True,
  "EventDeduplication" -> True]

g = With[{g = ResourceFunction[
ResourceObject[<|
      "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
       "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
       "Function", "ResourceLocations" -> {
CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
6ef/6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
       "DocumentationLink" -> 
       URL[
        "https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
       "FunctionLocation" -> 
       CloudObject[
        "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
6ef/6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
       "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
       "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][{"AB" <-> "B"}, 3, "Sorting" -> True,
     VertexSize -> .75, Sequence[
    "EventDeduplication" -> True, "TokenLabeling" -> False, 
     AspectRatio -> 0.5, VertexSize -> 0.2, ImageSize -> Full]]}, 
 With[{proof = ResourceFunction[
ResourceObject[<|
       "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
        "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
        "Function", "Version" -> None, "FunctionLocation" -> 
        CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
        "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
        "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
        URL[
         "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]]@
     First@ResourceFunction[
ResourceObject[<|
         "Name" -> "FindTokenEventProof", "UUID" -> 
          "a328bf50-d269-4df6-829a-11f247a17a2e", "ResourceType" -> 
          "Function", "Version" -> None, "FunctionLocation" -> 
          CloudObject[
           "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e/download/DefinitionData"], 
          "ShortName" -> "FindTokenEventProof", "SymbolName" -> 
          "FunctionRepository`$a328bf50d2694df6829a11f247a17a2e`\
FindTokenEventProof", "ResourceLocations" -> {
CloudObject[
            "https://www.wolframcloud.com/obj/wolframphysics/\
Resources/a32/a328bf50-d269-4df6-829a-11f247a17a2e"]}, 
          "DocumentationLink" -> 
          URL[
           "https://www.wolframcloud.com/obj/wolframphysics/\
FindTokenEventProof"], "ExampleNotebookData" -> Automatic|>]][
       g, {"AB" <-> "B"}, "AAAB" <-> "AAB"]},
  HighlightGraph[ResourceFunction[
ResourceObject[<|
      "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
       "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
       "Function", "Version" -> None, "FunctionLocation" -> 
       CloudObject[
        "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
       "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
       "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
       URL[
        "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]]@g, 
   Style[Subgraph[ResourceFunction[
ResourceObject[<|
        "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
         "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
         "Function", "Version" -> None, "FunctionLocation" -> 
         CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
         "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
         "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
           "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
         URL[
          "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]]@g, 
     proof],
    Arrowheads[0.02],
    Directive[Opacity[0.9`], Hue[0.06, 1, 1], Arrowheads[0.02`], 
     Thickness[0.005`]]], ImageSize -> Scaled[.8]]]]

And then we can actually delete the edges! When you plot the line graph,

EdgeDelete[LineGraph[g], 
 from_ \[DirectedEdge] to_ /; 
  ContainsNone[events[[to]]["Destroyed"], events[[from]]["Created"]]]

LineGraph[g, GraphLayout -> "LayeredDigraphEmbedding"]

It’s the typological space that is homotopy equivalent… that is apart of the fundamental group.. let’s do more k-cycles.

Table[With[{h = ResourceFunction[
ResourceObject[<|
       "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
        "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
        "Function", "ResourceLocations" -> {
CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
6ef/6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
        "DocumentationLink" -> 
        URL[
         "https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
        "FunctionLocation" -> 
        CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
6ef/6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
        "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
        "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][{"AAB" <-> "B"}, 3, 
     "Sorting" -> True, VertexSize -> .75, Sequence[
     "EventDeduplication" -> True, "TokenLabeling" -> False, 
      AspectRatio -> 0.5, VertexSize -> 0.2, ImageSize -> Full]]}, 
  With[{proof = ResourceFunction[
ResourceObject[<|
        "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
         "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
         "Function", "Version" -> None, "FunctionLocation" -> 
         CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
         "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
         "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
           "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
         URL[
          "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]]@
      First@ResourceFunction[
ResourceObject[<|
          "Name" -> "FindTokenEventProof", "UUID" -> 
           "a328bf50-d269-4df6-829a-11f247a17a2e", "ResourceType" -> 
           "Function", "Version" -> None, "FunctionLocation" -> 
           CloudObject[
            "https://www.wolframcloud.com/obj/wolframphysics/\
Resources/a32/a328bf50-d269-4df6-829a-11f247a17a2e/download/\
DefinitionData"], "ShortName" -> "FindTokenEventProof", "SymbolName" -> 
           "FunctionRepository`$a328bf50d2694df6829a11f247a17a2e`\
FindTokenEventProof", "ResourceLocations" -> {
CloudObject[
             "https://www.wolframcloud.com/obj/wolframphysics/\
Resources/a32/a328bf50-d269-4df6-829a-11f247a17a2e"]}, 
           "DocumentationLink" -> 
           URL[
            "https://www.wolframcloud.com/obj/wolframphysics/\
FindTokenEventProof"], "ExampleNotebookData" -> Automatic|>]][
        h, {"AAB" <-> "B"}, vertlist[[i]]]},
   HighlightGraph[ResourceFunction[
ResourceObject[<|
       "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
        "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
        "Function", "Version" -> None, "FunctionLocation" -> 
        CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
        "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
        "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
        URL[
         "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]]@h, 
    Style[Subgraph[ResourceFunction[
ResourceObject[<|
         "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
          "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
          "Function", "Version" -> None, "FunctionLocation" -> 
          CloudObject[
           "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
          "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
          "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
            "https://www.wolframcloud.com/obj/wolframphysics/\
Resources/ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, 
          "DocumentationLink" -> 
          URL[
           "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]]@h, 
      proof],
     Arrowheads[0.02],
     Directive[Opacity[0.9`], Hue[0.06, 1, 1], Arrowheads[0.02`], 
      Thickness[0.005`]]], ImageSize -> Scaled[.8]]]], {i, 2, 11}]

It’s so cool how you can generate things like the denotation of the list of enclosed parenthesis describing the permutations, varying the spokes on the graph chaotically as it goes around to complete a circuit and show the organization…

h = ResourceFunction[
ResourceObject[<|
    "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
     "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
     "Function", "ResourceLocations" -> {
CloudObject[
       "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
     "DocumentationLink" -> 
     URL[
      "https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
     "FunctionLocation" -> 
     CloudObject[
      "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
     "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
     "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][{"AAB" <-> "B"}, 3, 
  "Sorting" -> True, VertexSize -> .75, "EventDeduplication" -> True, 
  "TokenLabeling" -> False, AspectRatio -> 0.5`, VertexSize -> 0.2`, 
  ImageSize -> Full]
vertlist = VertexList[h]
Table[Row@Module[{g = ResourceFunction[
ResourceObject[<|
        "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
         "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
         "Function", "ResourceLocations" -> {
CloudObject[
           "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
6ef/6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
         "DocumentationLink" -> 
         URL[
          "https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
         "FunctionLocation" -> 
         CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
6ef/6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
         "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
         "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][{"AB" <-> "B"}, 3, "Sorting" -> True,
       Sequence[
      VertexSize -> 0.75, "EventDeduplication" -> True, 
       "TokenLabeling" -> False]], proofs},
   proofs = ResourceFunction[
ResourceObject[<|
       "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
        "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
        "Function", "Version" -> None, "FunctionLocation" -> 
        CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
        "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
        "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
        URL[
         "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]] /@ 
     ResourceFunction[
ResourceObject[<|
        "Name" -> "FindTokenEventProof", "UUID" -> 
         "a328bf50-d269-4df6-829a-11f247a17a2e", "ResourceType" -> 
         "Function", "Version" -> None, "FunctionLocation" -> 
         CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e/download/DefinitionData"], 
         "ShortName" -> "FindTokenEventProof", "SymbolName" -> 
         "FunctionRepository`$a328bf50d2694df6829a11f247a17a2e`\
FindTokenEventProof", "ResourceLocations" -> {
CloudObject[
           "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e"]}, "DocumentationLink" -> 
         URL[
          "https://www.wolframcloud.com/obj/wolframphysics/\
FindTokenEventProof"], "ExampleNotebookData" -> Automatic|>]][
      g, {"AB" <-> "B"}, vertlist[[i]], 8];
   g = ResourceFunction[
ResourceObject[<|
       "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
        "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
        "Function", "Version" -> None, "FunctionLocation" -> 
        CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
        "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
        "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
        URL[
         "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]]@g;
   HighlightGraph[g, 
      Style[Subgraph[g, #], Directive[ResourceFunction[
ResourceObject[<|
           "Name" -> "MetamathematicsStyleData", "UUID" -> 
            "f8f6fa82-4753-4c07-acb7-8d910780ee4e", "ResourceType" -> 
            "Function", "Version" -> None, "FunctionLocation" -> 
            CloudObject[
             "https://www.wolframcloud.com/obj/wolframphysics/\
Resources/f8f/f8f6fa82-4753-4c07-acb7-8d910780ee4e/download/\
DefinitionData"], "ShortName" -> "MetamathematicsStyleData", 
            "SymbolName" -> 
            "FunctionRepository`$f8f6fa8247534c07acb78d910780ee4e`\
MetamathematicsStyleData", "ResourceLocations" -> {
CloudObject[
              "https://www.wolframcloud.com/obj/wolframphysics/\
Resources/f8f/f8f6fa82-4753-4c07-acb7-8d910780ee4e"]}, 
            "DocumentationLink" -> 
            URL[
             "https://www.wolframcloud.com/obj/wolframphysics/\
MetamathematicsStyleData"], "ExampleNotebookData" -> Automatic|>]][
         "ProofPathStyle"], Thick]], VertexSize -> 1.4`, 
      ImageSize -> 120, AspectRatio -> 0.8`] & /@ proofs], {i, 2, 11}]

It’s a long way, making these proof path graphs that are used multiple times using a graph union and now, the base axioms can prove the structure preserved from different initial conditions, showing its topological features…

g = ResourceFunction[
ResourceObject[<|
     "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
      "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
      "Function", "ResourceLocations" -> {
CloudObject[
        "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
6ef/6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
      "DocumentationLink" -> 
      URL[
       "https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
      "FunctionLocation" -> 
      CloudObject[
       "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
      "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
      "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][{"C" <-> "ABC"}, 3, 
   "Sorting" -> True, Sequence[
   VertexSize -> 0.75, "EventDeduplication" -> True, "TokenLabeling" -> 
    False]];
proofs = ResourceFunction[
ResourceObject[<|
     "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
      "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
      "Function", "Version" -> None, "FunctionLocation" -> 
      CloudObject[
       "https://www.wolframcloud.com/obj/wolframphysics/Resources/ea2/\
ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
      "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
      "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
        "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
      URL[
       "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]] /@ 
   ResourceFunction[
ResourceObject[<|
      "Name" -> "FindTokenEventProof", "UUID" -> 
       "a328bf50-d269-4df6-829a-11f247a17a2e", "ResourceType" -> 
       "Function", "Version" -> None, "FunctionLocation" -> 
       CloudObject[
        "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e/download/DefinitionData"], 
       "ShortName" -> "FindTokenEventProof", "SymbolName" -> 
       "FunctionRepository`$a328bf50d2694df6829a11f247a17a2e`\
FindTokenEventProof", "ResourceLocations" -> {
CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e"]}, "DocumentationLink" -> 
       URL[
        "https://www.wolframcloud.com/obj/wolframphysics/\
FindTokenEventProof"], "ExampleNotebookData" -> Automatic|>]][
    g, {"C" <-> "ABC"}, "ABABABABABC" <-> "C", 8];
proofgraphs = Graph[#] & /@ proofs;
HighlightGraph[GraphUnion @@ proofgraphs, proofgraphs]

During our conventions we usually focused on the enumeration of entailment cones that are accumulative & non-accumulative using cosubstitution & substitution… helping us to understand these axiom systems and the process by which the theorems are reached. Therefore we shouldn’t hesitate to post the non-symbolic code here…

With[{h = 
   First@
    WeaklyConnectedGraphComponents[
     RandomGraph[{20, 20}, VertexLabels -> Automatic]]}, 
 HighlightGraph[
  h, PathGraph[FindShortestPath[h, 15, 2]]
  ]]

Taking a random sample, showing off the k-cycles in these graphs.. what are they for?

h = ResourceFunction[
ResourceObject[<|
     "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
      "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
      "Function", "ResourceLocations" -> {
CloudObject[
        "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
6ef/6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
      "DocumentationLink" -> 
      URL[
       "https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
      "FunctionLocation" -> 
      CloudObject[
       "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
      "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
      "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][{"C" <-> "ABC"}, 3, 
   "Sorting" -> True, VertexSize -> 1.4`, 
   "EventDeduplication" -> True, "TokenLabeling" -> True, 
   AspectRatio -> 0.5`];
proofs = ResourceFunction[
ResourceObject[<|
     "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
      "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
      "Function", "Version" -> None, "FunctionLocation" -> 
      CloudObject[
       "https://www.wolframcloud.com/obj/wolframphysics/Resources/ea2/\
ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
      "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
      "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
        "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
      URL[
       "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]] /@ 
   ResourceFunction[
ResourceObject[<|
      "Name" -> "FindTokenEventProof", "UUID" -> 
       "a328bf50-d269-4df6-829a-11f247a17a2e", "ResourceType" -> 
       "Function", "Version" -> None, "FunctionLocation" -> 
       CloudObject[
        "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e/download/DefinitionData"], 
       "ShortName" -> "FindTokenEventProof", "SymbolName" -> 
       "FunctionRepository`$a328bf50d2694df6829a11f247a17a2e`\
FindTokenEventProof", "ResourceLocations" -> {
CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e"]}, "DocumentationLink" -> 
       URL[
        "https://www.wolframcloud.com/obj/wolframphysics/\
FindTokenEventProof"], "ExampleNotebookData" -> Automatic|>]][
    h, {"C" <-> "ABC"}, "ABABABC" <-> "C", 8];
proofgraphs = Graph[#] & /@ proofs;
HighlightGraph[GraphUnion @@ proofgraphs, proofgraphs]

These are some beautiful proof graphs that help us understand axiom systems and entailment cones, and the interactions in the causal quantum event graph.

ResourceFunction[
ResourceObject[<|
   "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
    "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
    "Function", "ResourceLocations" -> {
CloudObject[
      "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
    "DocumentationLink" -> 
    URL["https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
    "FunctionLocation" -> 
    CloudObject[
     "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
    "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
    "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][
 {"AAB" <-> "B"},
 3,
 "Sorting" -> True,
 "EventDeduplication" -> True,
 "TokenLabeling" -> False,
 AspectRatio -> 0.5`,
 VertexSize -> 1.4`,
 ImageSize -> Full,
 VertexLabels :> hi_ :> hi
 ]

Your post brings it home that you are supposed to study the theorems and not the proofs. It also helps that during our meetings we did a lot of white-boarding exploring these scintillating entailment structures and you were available for that. This is the most interesting project!

rules = Flatten[
  With[{strings = 
     Flatten[
      Table[StringJoin[#] & /@ Tuples[{"A", "B"}, i], {i, 1, 3}]]}, 
   Table[
    strings[[i]] <-> strings[[j]], {i, 1, Length[strings]}, {j, 1, 
     Length[strings]}]]]

As long as the spokes on the graph vary by cycle length as it goes around we can complete the circuit, chaotically. If we take these rules,

rules = Flatten[
  With[{strings = 
     Flatten[
      Table[
       StringJoin[#] & /@ Tuples[{"A", "B", "C"}, i], {i, 1, 7}]]}, 
   Table[
    strings[[i]] <-> strings[[j]], {i, 1, Length[strings]}, {j, 1, 
     Length[strings]}]]]
VertexPop[g_, patt_, opts___] := 
 EdgeAdd[VertexDelete[g, patt], 
  Catenate[
   DirectedEdge @@@ 
      Tuples[{VertexInComponent[g, #, {1}], 
        VertexOutComponent[g, #, {1}]}] & /@ VertexList[g, patt]], 
  opts, Options[g]]
h = ResourceFunction[
ResourceObject[<|
     "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
      "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
      "Function", "ResourceLocations" -> {
CloudObject[
        "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
6ef/6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
      "DocumentationLink" -> 
      URL[
       "https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
      "FunctionLocation" -> 
      CloudObject[
       "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
      "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
      "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][{rules[[3]]}, 3, "Sorting" -> True, 
   VertexSize -> 0.75`, "EventDeduplication" -> False, 
   "TokenLabeling" -> True, FrameLabel -> Automatic, 
   Editable -> Automatic, Ticks -> Automatic, Background -> Automatic,
    FrameStyle -> Automatic];
graphs = 
 Table[Module[{proofs},
   proofs = ResourceFunction[
ResourceObject[<|
       "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
        "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
        "Function", "Version" -> None, "FunctionLocation" -> 
        CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
        "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
        "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
        URL[
         "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]] /@ 
     ResourceFunction[
ResourceObject[<|
        "Name" -> "FindTokenEventProof", "UUID" -> 
         "a328bf50-d269-4df6-829a-11f247a17a2e", "ResourceType" -> 
         "Function", "Version" -> None, "FunctionLocation" -> 
         CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e/download/DefinitionData"], 
         "ShortName" -> "FindTokenEventProof", "SymbolName" -> 
         "FunctionRepository`$a328bf50d2694df6829a11f247a17a2e`\
FindTokenEventProof", "ResourceLocations" -> {
CloudObject[
           "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e"]}, "DocumentationLink" -> 
         URL[
          "https://www.wolframcloud.com/obj/wolframphysics/\
FindTokenEventProof"], "ExampleNotebookData" -> Automatic|>]][
      h, {rules[[3]]}, vertlist[[i]], 8];
   proofgraphs = VertexPop[#, {"Event", ___}] & /@ proofs;
   UndirectedGraph[
    HighlightGraph[GraphUnion @@ proofgraphs, proofgraphs]]], {i, 8, 
   Length[vertlist]}]

cycles = FindCycle[#, {Length[VertexList[#]]}] & /@ graphs

g = GraphUnion @@ 
 MapIndexed[
  VertexReplace[Graph[Flatten[#]], 
    v : Except["A" \[LeftRightArrow] "AAA", 
       "A" \[LeftRightArrow] "AAAA"] :> {v, #2[[0]]}] &, cycles]

.. and we can compare the cycle depending on which loop of the figure 8 you start on. It’s fundamentally non-abelian and transformative, seeing the interconnectivity of both loops… it will be phenomenal whenever that is revealed to us, at a later date.

GraphUnion @@ 
 MapIndexed[
  VertexReplace[Graph[Flatten[#]], 
    v : Except["A" \[LeftRightArrow] "AA"] :> {v, #2[[1]]}] &, cycles]

..then we can see just how chaotic these things really are, how it makes it possible to do these disjointed unions.

GraphDisjointUnion @@ (Graph[Flatten[#]] & /@ cycles)

It seems like it’s by defining a base point, that you can find the proof paths…

HighlightGraph[g, FindCycle[g, {Length[VertexList[g]]}]]

ResourceFunction[
ResourceObject[<|
   "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
    "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
    "Function", "ResourceLocations" -> {
CloudObject[
      "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
    "DocumentationLink" -> 
    URL["https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
    "FunctionLocation" -> 
    CloudObject[
     "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
    "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
    "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][{rules[[3]]}, 1, 
 "Sorting" -> True, Sequence[
 VertexSize -> 0.75, "EventDeduplication" -> True, "TokenLabeling" -> 
  False]]

h = ResourceFunction[
ResourceObject[<|
     "Name" -> "TwoWayStringTokenEventGraph", "UUID" -> 
      "6efe33fc-c0fa-4d4f-8198-1e9db29ac03e", "ResourceType" -> 
      "Function", "ResourceLocations" -> {
CloudObject[
        "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
6ef/6efe33fc-c0fa-4d4f-8198-1e9db29ac03e"]}, "Version" -> None, 
      "DocumentationLink" -> 
      URL[
       "https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayStringTokenEventGraph"], "ExampleNotebookData" -> Automatic, 
      "FunctionLocation" -> 
      CloudObject[
       "https://www.wolframcloud.com/obj/wolframphysics/Resources/6ef/\
6efe33fc-c0fa-4d4f-8198-1e9db29ac03e/download/DefinitionData"], 
      "ShortName" -> "TwoWayStringTokenEventGraph", "SymbolName" -> 
      "FunctionRepository`$6efe33fcc0fa4d4f81981e9db29ac03e`\
TwoWayStringTokenEventGraph"|>]][{rules[[3]]}, 3, "Sorting" -> True, 
   Sequence[
   VertexSize -> 0.75, "EventDeduplication" -> True, "TokenLabeling" -> 
    False]];
graphs = 
 Table[Module[{proofs},
   proofs = ResourceFunction[
ResourceObject[<|
       "Name" -> "LiteralizeTwoWayRules", "UUID" -> 
        "ea258343-71ec-45e9-ac49-1816affc7a92", "ResourceType" -> 
        "Function", "Version" -> None, "FunctionLocation" -> 
        CloudObject[
         "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92/download/DefinitionData"], 
        "ShortName" -> "LiteralizeTwoWayRules", "SymbolName" -> 
        "FunctionRepository`$ea25834371ec45e9ac491816affc7a92`\
LiteralizeTwoWayRules", "ResourceLocations" -> {
CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
ea2/ea258343-71ec-45e9-ac49-1816affc7a92"]}, "DocumentationLink" -> 
        URL[
         "https://www.wolframcloud.com/obj/wolframphysics/\
LiteralizeTwoWayRules"], "ExampleNotebookData" -> Automatic|>]] /@ 
     ResourceFunction[
ResourceObject[<|
        "Name" -> "FindTokenEventProof", "UUID" -> 
         "a328bf50-d269-4df6-829a-11f247a17a2e", "ResourceType" -> 
         "Function", "Version" -> None, "FunctionLocation" -> 
         CloudObject[
          "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e/download/DefinitionData"], 
         "ShortName" -> "FindTokenEventProof", "SymbolName" -> 
         "FunctionRepository`$a328bf50d2694df6829a11f247a17a2e`\
FindTokenEventProof", "ResourceLocations" -> {
CloudObject[
           "https://www.wolframcloud.com/obj/wolframphysics/Resources/\
a32/a328bf50-d269-4df6-829a-11f247a17a2e"]}, "DocumentationLink" -> 
         URL[
          "https://www.wolframcloud.com/obj/wolframphysics/\
FindTokenEventProof"], "ExampleNotebookData" -> Automatic|>]][
      h, {rules[[3]]}, vertlist[[i]], 8];
   proofgraphs = # & /@ proofs;
   UndirectedGraph[
    HighlightGraph[GraphUnion @@ proofgraphs, proofgraphs]]], {i, 2, 
   Length[vertlist]}]

These proof paths are from that time at our centennial meet-up that signifies our approach to finding cycles… how do you label your cycles?

UndirectedGraph[ResourceFunction[
ResourceObject[<|
    "Name" -> "TwoWayRuleNestGraph", "UUID" -> 
     "98cc7a51-abf1-4f9f-a0dd-542056ccad73", "ResourceType" -> 
     "Function", "ResourceLocations" -> {
CloudObject[
       "https://www.wolframcloud.com/obj/wolframphysics/Resources/98c/\
98cc7a51-abf1-4f9f-a0dd-542056ccad73"]}, "Version" -> None, 
     "DocumentationLink" -> 
     URL[
      "https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayRuleNestGraph"], "ExampleNotebookData" -> Automatic, 
     "FunctionLocation" -> 
     CloudObject[
      "https://www.wolframcloud.com/obj/wolframphysics/Resources/98c/\
98cc7a51-abf1-4f9f-a0dd-542056ccad73/download/DefinitionData"], 
     "ShortName" -> "TwoWayRuleNestGraph", "SymbolName" -> 
     "FunctionRepository`$98cc7a51abf14f9fa0dd542056ccad73`\
TwoWayRuleNestGraph"|>]][
  x_\[SmallCircle] y_ <-> (y_\[SmallCircle]x_)\[SmallCircle]z_, 
  a\[SmallCircle]b, 4, Sequence[
  GraphLayout -> {
    "LayeredDigraphEmbedding", 
     "VertexLayerPosition" -> {4, 3, 2, 2, 1, 1, 1, 1, 1}}, 
   AspectRatio -> 1/3, ImageSize -> Scaled[0.85]]]]

ResourceFunction[
ResourceObject[<|
   "Name" -> "TwoWayRuleNestGraph", "UUID" -> 
    "98cc7a51-abf1-4f9f-a0dd-542056ccad73", "ResourceType" -> 
    "Function", "ResourceLocations" -> {
CloudObject[
      "https://www.wolframcloud.com/obj/wolframphysics/Resources/98c/\
98cc7a51-abf1-4f9f-a0dd-542056ccad73"]}, "Version" -> None, 
    "DocumentationLink" -> 
    URL["https://www.wolframcloud.com/obj/wolframphysics/\
TwoWayRuleNestGraph"], "ExampleNotebookData" -> Automatic, 
    "FunctionLocation" -> 
    CloudObject[
     "https://www.wolframcloud.com/obj/wolframphysics/Resources/98c/\
98cc7a51-abf1-4f9f-a0dd-542056ccad73/download/DefinitionData"], 
    "ShortName" -> "TwoWayRuleNestGraph", "SymbolName" -> 
    "FunctionRepository`$98cc7a51abf14f9fa0dd542056ccad73`\
TwoWayRuleNestGraph"|>]][
 x_\[SmallCircle] y_ <-> (y_\[SmallCircle]x_)\[SmallCircle]z_, 
 a\[SmallCircle]b, 5, 
 GraphLayout -> {"LayeredDigraphEmbedding", 
   "VertexLayerPosition" -> {4, 3, 2, 2, 1, 1, 1, 1, 1}}, 
 AspectRatio -> 1/3, ImageSize -> Scaled[0.85`]]

The layered digraph embedding.

Length /@ 
 FindCycle[{UndirectedGraph@h, (b\[SmallCircle]a)\[SmallCircle]b}, {1,
    Infinity}]

GraphDisjointUnion @@ (PathGraph[#, DirectedEdges -> True] & /@ 
     FindPath[h, a\[SmallCircle]b, #, All, All]) & /@ 
 Rest@VertexList[h]

r24.png

NestGraph[
 Catenate@
   Values@
    ResourceFunction["MultiReplace"][#, 
     a_\[CenterDot]b_ :> 
      Block[{$ModuleNumber = 1}, 
       Module[{c}, 
        a\[CenterDot](b\[CenterDot]c)]]] &, {a\[CenterDot]b}, 3, 
 VertexLabels -> Automatic]

Anyhow in exploring topological spaces you’re good at the Wolfram Language… whether it’s rock-climbing or entailment cones, you’ve really been a great partner in group theory, and so thanks for sharing. This has been A study in proof space Topology!

1 Like

I have not given up on this, just last month was busy for me to make any big updates, but by the start of this year, I will continue slow updates on this project as I see this as ongoing. If you wish to help you can, I just need your contact information.

1 Like

Absolutely! I would love to help. Where is the update going to be on? Where is my contact info? You can have my deansgladish@gmail.com. You can even have my phone number! 224-306-4486. Try dgladish3@gatech.edu, please!