chemart / cham

View on GitHub

Chemical Abstract Machine (CHAM) — The machine behind the chemical metaphor in computing. Molecules are terms of a process algebra held in a solution, and rules come in three kinds: heating breaks a compound term into simpler ones, cooling reassembles the…

chemistry official · built in rewriting fidelity: reconstructed constructive #banzhaf-yamamoto
files / preview.json · 9.1 KB · at e38be85f310a Raw
{"species": [{"id": "a.0|(~a.P|Q)\\b", "structure": "a.0 | (~a.P | Q)\\b"}, {"id": "a.0", "structure": "a.0"}, {"id": "(~a.P|Q)\\b", "structure": "(~a.P | Q)\\b"}, {"id": "{|~a.P|Q|}\\b", "structure": "{| ~a.P | Q |}\\b"}, {"id": "{|Q,~a.P|}\\b", "structure": "{| Q, ~a.P |}\\b"}, {"id": "{|Q<|{|~a.P|}|}\\b", "structure": "{| Q <| {| ~a.P |} |}\\b"}, {"id": "{|~a.P<|{|Q|}|}\\b", "structure": "{| ~a.P <| {| Q |} |}\\b"}, {"id": "(Q<|{|~a.P|})\\b", "structure": "(Q <| {| ~a.P |})\\b"}, {"id": "(~a.P<|{|Q|})\\b", "structure": "(~a.P <| {| Q |})\\b"}, {"id": "{|~a.(P<|{|Q|})|}\\b", "structure": "{| ~a.(P <| {| Q |}) |}\\b"}, {"id": "(~a.(P<|{|Q|}))\\b", "structure": "(~a.(P <| {| Q |}))\\b"}, {"id": "~a.(P<|{|Q|})\\b", "structure": "~a.(P <| {| Q |})\\b"}, {"id": "0", "structure": "0"}, {"id": "(P<|{|Q|})\\b", "structure": "(P <| {| Q |})\\b"}, {"id": "{|P<|{|Q|}|}\\b", "structure": "{| P <| {| Q |} |}\\b"}, {"id": "{|P,Q|}\\b", "structure": "{| P, Q |}\\b"}, {"id": "{|Q<|{|P|}|}\\b", "structure": "{| Q <| {| P |} |}\\b"}, {"id": "(Q<|{|P|})\\b", "structure": "(Q <| {| P |})\\b"}], "reactions": [{"reactants": {"a.0|(~a.P|Q)\\b": 1}, "products": {"a.0": 1, "(~a.P|Q)\\b": 1}, "rate": null, "count": null}, {"reactants": {"a.0": 1, "(~a.P|Q)\\b": 1}, "products": {"a.0|(~a.P|Q)\\b": 1}, "rate": null, "count": null}, {"reactants": {"(~a.P|Q)\\b": 1}, "products": {"{|~a.P|Q|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|~a.P|Q|}\\b": 1}, "products": {"(~a.P|Q)\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|~a.P|Q|}\\b": 1}, "products": {"{|Q,~a.P|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|Q,~a.P|}\\b": 1}, "products": {"{|~a.P|Q|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|Q,~a.P|}\\b": 1}, "products": {"{|Q<|{|~a.P|}|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|Q<|{|~a.P|}|}\\b": 1}, "products": {"{|Q,~a.P|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|Q,~a.P|}\\b": 1}, "products": {"{|~a.P<|{|Q|}|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|~a.P<|{|Q|}|}\\b": 1}, "products": {"{|Q,~a.P|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|Q<|{|~a.P|}|}\\b": 1}, "products": {"(Q<|{|~a.P|})\\b": 1}, "rate": null, "count": null}, {"reactants": {"(Q<|{|~a.P|})\\b": 1}, "products": {"{|Q<|{|~a.P|}|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|~a.P<|{|Q|}|}\\b": 1}, "products": {"(~a.P<|{|Q|})\\b": 1}, "rate": null, "count": null}, {"reactants": {"(~a.P<|{|Q|})\\b": 1}, "products": {"{|~a.P<|{|Q|}|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|~a.P<|{|Q|}|}\\b": 1}, "products": {"{|~a.(P<|{|Q|})|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|~a.(P<|{|Q|})|}\\b": 1}, "products": {"{|~a.P<|{|Q|}|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|~a.(P<|{|Q|})|}\\b": 1}, "products": {"(~a.(P<|{|Q|}))\\b": 1}, "rate": null, "count": null}, {"reactants": {"(~a.(P<|{|Q|}))\\b": 1}, "products": {"{|~a.(P<|{|Q|})|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"(~a.(P<|{|Q|}))\\b": 1}, "products": {"~a.(P<|{|Q|})\\b": 1}, "rate": null, "count": null}, {"reactants": {"~a.(P<|{|Q|})\\b": 1}, "products": {"(~a.(P<|{|Q|}))\\b": 1}, "rate": null, "count": null}, {"reactants": {"a.0": 1, "~a.(P<|{|Q|})\\b": 1}, "products": {"0": 1, "(P<|{|Q|})\\b": 1}, "rate": null, "count": null}, {"reactants": {"0": 1}, "products": {}, "rate": null, "count": null}, {"reactants": {"(P<|{|Q|})\\b": 1}, "products": {"{|P<|{|Q|}|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|P<|{|Q|}|}\\b": 1}, "products": {"(P<|{|Q|})\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|P<|{|Q|}|}\\b": 1}, "products": {"{|P,Q|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|P,Q|}\\b": 1}, "products": {"{|P<|{|Q|}|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|P,Q|}\\b": 1}, "products": {"{|Q<|{|P|}|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|Q<|{|P|}|}\\b": 1}, "products": {"{|P,Q|}\\b": 1}, "rate": null, "count": null}, {"reactants": {"{|Q<|{|P|}|}\\b": 1}, "products": {"(Q<|{|P|})\\b": 1}, "rate": null, "count": null}, {"reactants": {"(Q<|{|P|})\\b": 1}, "products": {"{|Q<|{|P|}|}\\b": 1}, "rate": null, "count": null}], "status": "complete", "initial_state": {"a.0|(~a.P|Q)\\b": 1.0}, "inflow": null, "outflow": null, "extras": {"machine": "tccs", "rules": ["parallel: ?p | ?q <=> ?p, ?q", "reaction: ?a.?m, ~?a.?n -> ?m, ?n", "restriction membrane: ?m\\?a <=> {| ?m |}\\?a", "restriction ion: (?l.?m)\\?a <=> ?l.?m\\?a if ?l notin {?a, ~?a}", "heavy ion: ?l.?m <| ?S <=> ?l.(?m <| ?S)", "relabelling membrane: ?m[?f] <=> {| ?m |}[?f]", "relabelling ion: (?l.?m)[?f] <=> ?f(?l).?m[?f]", "internal sum left: ?p (+) ?q -> ?p", "internal sum right: ?p (+) ?q -> ?q", "external sum expansion: ?p [] ?q <=> <{| ?p |}, {| ?q |}>", "left external sum ion: <{| ?l.?m |}, ?S> <=> ?l.l:<?m, ?S>", "right external sum ion: <?S, {| ?l.?m |}> <=> ?l.r:<?S, ?m>", "left projection: l:<?m, ?n> ~> ?m", "right projection: r:<?m, ?n> ~> ?n", "fixpoint: ?F => unfold(?F)", "inaction cleanup: 0 =>", "restriction cleanup: {||}\\?a =>", "relabelling cleanup: {||}[?f] =>"], "airlock_law": true, "reaction_rules": [{"class": "heating", "rule": "parallel", "reversible": true, "depth": 0}, {"class": "cooling", "rule": "parallel", "reversible": true, "depth": 0}, {"class": "heating", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "cooling", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "heating", "rule": "parallel", "reversible": true, "depth": 1}, {"class": "cooling", "rule": "parallel", "reversible": true, "depth": 1}, {"class": "heating", "rule": "airlock", "reversible": true, "depth": 1}, {"class": "cooling", "rule": "airlock", "reversible": true, "depth": 1}, {"class": "heating", "rule": "airlock", "reversible": true, "depth": 1}, {"class": "cooling", "rule": "airlock", "reversible": true, "depth": 1}, {"class": "cooling", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "heating", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "cooling", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "heating", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "heating", "rule": "heavy ion", "reversible": true, "depth": 1}, {"class": "cooling", "rule": "heavy ion", "reversible": true, "depth": 1}, {"class": "cooling", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "heating", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "heating", "rule": "restriction ion", "reversible": true, "depth": 0}, {"class": "cooling", "rule": "restriction ion", "reversible": true, "depth": 0}, {"class": "reaction", "rule": "reaction", "reversible": false, "depth": 0}, {"class": "heating", "rule": "inaction cleanup", "reversible": false, "depth": 0}, {"class": "heating", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "cooling", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "cooling", "rule": "airlock", "reversible": true, "depth": 1}, {"class": "heating", "rule": "airlock", "reversible": true, "depth": 1}, {"class": "heating", "rule": "airlock", "reversible": true, "depth": 1}, {"class": "cooling", "rule": "airlock", "reversible": true, "depth": 1}, {"class": "cooling", "rule": "restriction membrane", "reversible": true, "depth": 0}, {"class": "heating", "rule": "restriction membrane", "reversible": true, "depth": 0}], "compartments": {"{|~a.P|Q|}\\b": [{"depth": 1, "context": "restriction \\b", "molecules": ["~a.P|Q"]}], "{|Q,~a.P|}\\b": [{"depth": 1, "context": "restriction \\b", "molecules": ["Q", "~a.P"]}], "{|Q<|{|~a.P|}|}\\b": [{"depth": 1, "context": "restriction \\b", "molecules": ["Q<|{|~a.P|}"]}, {"depth": 2, "context": "airlock", "molecules": ["~a.P"]}], "{|~a.P<|{|Q|}|}\\b": [{"depth": 1, "context": "restriction \\b", "molecules": ["~a.P<|{|Q|}"]}, {"depth": 2, "context": "airlock", "molecules": ["Q"]}], "(Q<|{|~a.P|})\\b": [{"depth": 1, "context": "airlock", "molecules": ["~a.P"]}], "(~a.P<|{|Q|})\\b": [{"depth": 1, "context": "airlock", "molecules": ["Q"]}], "{|~a.(P<|{|Q|})|}\\b": [{"depth": 1, "context": "restriction \\b", "molecules": ["~a.(P<|{|Q|})"]}, {"depth": 2, "context": "airlock", "molecules": ["Q"]}], "(~a.(P<|{|Q|}))\\b": [{"depth": 1, "context": "airlock", "molecules": ["Q"]}], "~a.(P<|{|Q|})\\b": [{"depth": 1, "context": "airlock", "molecules": ["Q"]}], "(P<|{|Q|})\\b": [{"depth": 1, "context": "airlock", "molecules": ["Q"]}], "{|P<|{|Q|}|}\\b": [{"depth": 1, "context": "restriction \\b", "molecules": ["P<|{|Q|}"]}, {"depth": 2, "context": "airlock", "molecules": ["Q"]}], "{|P,Q|}\\b": [{"depth": 1, "context": "restriction \\b", "molecules": ["P", "Q"]}], "{|Q<|{|P|}|}\\b": [{"depth": 1, "context": "restriction \\b", "molecules": ["Q<|{|P|}"]}, {"depth": 2, "context": "airlock", "molecules": ["P"]}], "(Q<|{|P|})\\b": [{"depth": 1, "context": "airlock", "molecules": ["P"]}]}}, "chemistry": "cham", "params": {"program": "heavy-ion-communication", "solution": "", "machine": "tccs", "rules": "", "cleanup": true, "airlock": true, "max_species": 500}, "seed": 1}