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}}
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]
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!