Settings

{% for key in settings: %} {% endfor %}
Setting Value
{{key}} {{settings[key]}}

Exploration

  • BLACK denotes a block in the longest path.
  • BLUE denotes a hidden block.
  • RED denotes an orphaned block.
  • A state where all attacker blocks are blue is a typical state where the attacker has not published anything yet.
{% for state in lut: %} {% set state_details = lut[state] %} {% if loop.index % 5 == 0: %}
{% elif loop.index % 5 == 1: %}
{% elif loop.index % 5 == 2: %}
{% elif loop.index % 5 == 3: %}
{% else: %}
{% endif %} {% if loop.index % 5 == 0: %}

{% elif loop.index % 5 == 1: %}

{% elif loop.index % 5 == 2: %}

{% elif loop.index % 5 == 3: %}

{% else: %}

{% endif %} {{ pretty_state_str(state_details.get_state())|safe }}

Action bounds:

{% set bounds = state_details.get_action_bounds() %} {% for i in range(bounds | length): %} {% set bound = bounds[i] %} {% endfor %}
Action Immediate Reward Subsequent State Lower Bound Upper Bound Plot
{{ "Wait" if bound["action"][0] == 0 else bound["action"] }} ${{ latex(bound["immediate_reward"]) }}$ {{ pretty_state_str(bound["subsequent_state"])|safe }} ${{ latex(bound["lower_bound"]) }}$ ${{ latex(bound["upper_bound"]) }}$

Commitment bounds:

{% set bounds = state_details.get_commitment_bounds() %} {% for i in range(bounds | length): %} {% set bound = bounds[i] %} {% endfor %}
Commitment Lower Bound Plot
{{ commitment_str(bound["commitment"]) }} ${{ latex(bound["lower_bound"]) }}$

Lemma bounds:

{% set bounds = state_details.get_lemma_bounds() %} {% for i in range(bounds | length): %} {% set bound = bounds[i] %} {% if bound_isinstance(bound, LemmaLowerBound): %} {% else: %} {% endif %} {% endfor %}
Lemma Lower Bound Upper Bound Plot
{{ bound["lemma"] }} ${{ latex(bound["lower_bound"]) }}$ {{ bound["lemma"] }} ${{ latex(bound["upper_bound"]) }}$

Best Lower Bound:

{% set bound = state_details.get_best_lower_bound() %} {% if bound_isinstance(bound, ActionLowerBound): %} {% elif bound_isinstance(bound, CommitmentLowerBound): %} {% else: %} {% endif %}
Action, Commitment or Lemma Immediate Reward Subsequent State Lower Bound Upper Bound Plot
{{ "Wait" if bound["action"][0] == 0 else bound["action"] }} ${{ latex(bound["immediate_reward"]) }}$ {{ pretty_state_str(bound["subsequent_state"])|safe }} ${{ latex(bound["lower_bound"]) }}$ {{ commitment_str(bound["commitment"]) }} ${{ latex(bound["lower_bound"]) }}$ {{ bound["lemma"] }} ${{ latex(bound["lower_bound"]) }}$

Best Upper Bound:

{% set bound = state_details.get_best_upper_bound() %} {% if bound_isinstance(bound, ActionUpperBound): %} {% else: %} {% endif %}
Action or Lemma Immediate Reward Subsequent State Lower Bound Upper Bound Plot
{{ "Wait" if bound["action"][0] == 0 else bound["action"] }} ${{ latex(bound["immediate_reward"]) }}$ {{ pretty_state_str(bound["subsequent_state"])|safe }} ${{ latex(bound["upper_bound"]) }}$ {{ bound["lemma"] }} ${{ latex(bound["upper_bound"]) }}$

Best bounds plotted together:

{% if loop.index % 5 == 0: %}