Habanero Phaser formalization
Phaser state operations
Welcome to our online interpreter of the Habanero formalization. Read on the developer notes for information about the implementation of this page.
The following two operations are translated automatically from our Coq formalization into Javascript.
hj.run(op,ph)performs a reduction step by applying operationopto phaser stateph. The function returns the new state or throws an exception if it cannot reduce.hj.hb(ph1,ph2)returns true if, and only if, phaserph1happened before phaserph2.hj.par(ph1,ph2)returns true if, and only if, phaserph1may happen in parallel withph2.hj.wf(ph)returns true if, and only if, phaserphis well-formed.hj.wo(ph)returns true if, and only if, phaserphis well-ordered.
Executable samples. The widget below is a Javascript REPL; input a Javascript expression to exercise our functions.
sandbox loading...
Happens-before visualization
The trace in the text box is rendered as a graph. Editing the trace automatically updates the graph.
Rendering of the trace:
Trace manipulation
We provide the following functions to handle a trace:
trace()returns the trace from the input text box.hj.run_trace(t)returns a phaser state from a given tracet.hj.render_graph(t)renders tracetin the visualization widget.
sandbox loading...