Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4799079d0c | ||
|
|
be85c51957 | ||
|
|
7ea55461ef | ||
|
|
841e59d481 | ||
|
|
14d299fb22 | ||
|
|
1a5c144ba7 | ||
|
|
8050f09160 | ||
|
|
cff0417304 | ||
|
|
6e7e24d805 | ||
|
|
0580800aba |
No files matched your search
@@ -2,14 +2,36 @@ This was (mostly) me being bored in a Monday evening and in an attempt to formal
|
||||
|
||||
## Graphs
|
||||
|
||||
The dependency graph covers the six milestones and every edge runs from a dependency to the result that uses it while the node colour encodes the status proved or stated or planned or blocked:
|
||||
The dependency graphs are drawn in greyscale and split by milestone. Every edge runs from a dependency to the result that uses it. A box is a result named after a paper statement, an ellipse is a supporting result, and a dashed box labelled with a milestone is a result defined in another diagram. The overview gives the shape of the whole development:
|
||||
|
||||

|
||||
<p align="center"><img src="graphs/dependency-overview.svg" alt="Theorem dependency by milestone"></p>
|
||||
|
||||
The details are then one diagram per milestone:
|
||||
|
||||
### M1, binding and reduction
|
||||
|
||||
<p align="center"><img src="graphs/dependency-M1.svg" alt="M1 dependencies"></p>
|
||||
|
||||
### M2, metatheory and checks
|
||||
|
||||
<p align="center"><img src="graphs/dependency-M2.svg" alt="M2 dependencies"></p>
|
||||
|
||||
### M3, subsystem
|
||||
|
||||
<p align="center"><img src="graphs/dependency-M3.svg" alt="M3 dependencies"></p>
|
||||
|
||||
### M4, parallel reduction
|
||||
|
||||
<p align="center"><img src="graphs/dependency-M4.svg" alt="M4 dependencies"></p>
|
||||
|
||||
### M5, metaterms and the named calculus
|
||||
|
||||
<p align="center"><img src="graphs/dependency-M5.svg" alt="M5 dependencies"></p>
|
||||
|
||||
The rule sketch gives the transition system generated by the rules B and Gc and R:
|
||||
|
||||

|
||||
<p align="center"><img src="graphs/rules.svg" alt="Reduction rules"></p>
|
||||
|
||||
The reduction graph gives the bounded reduct set of the term that applies the duplicating identity to a variable with every edge labelled by its rule and with the normal form marked:
|
||||
|
||||

|
||||
<p align="center"><img src="graphs/reduction.svg" alt="Reduction graph of the duplicating identity"></p>
|
||||
@@ -0,0 +1,71 @@
|
||||
digraph deps {
|
||||
rankdir=LR;
|
||||
bgcolor="transparent";
|
||||
splines=polyline;
|
||||
concentrate=true;
|
||||
nodesep=0.2;
|
||||
ranksep=0.9;
|
||||
node [fontname=Inter, fontsize=9];
|
||||
edge [fontname=Inter, fontsize=8, color="#8f9780", fontcolor="#c9d1bb", arrowsize=0.6, penwidth=0.8];
|
||||
graph [fontname=Inter, fontsize=12, labelloc=t, fontcolor="#c9d1bb", label=<<B>Theorem dependencies M1, 33 results</B>>];
|
||||
close_rec_fvar [label="close_rec_fvar", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="close_rec_fvar theory/Binding.v proved"];
|
||||
close_rec_fvs [label="close_rec_fvs", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="close_rec_fvs theory/Binding.v proved"];
|
||||
close_rec_notin [label="close_rec_notin", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="close_rec_notin theory/Binding.v proved"];
|
||||
fvs_lift [label="fvs_lift", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="fvs_lift theory/Binding.v proved"];
|
||||
lift_0_lc [label="lift_0_lc", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="lift_0_lc theory/Binding.v proved"];
|
||||
lift_lc [label="lift_lc", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="lift_lc theory/Binding.v proved"];
|
||||
open_close [label="open_close", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_close theory/Binding.v proved"];
|
||||
open_rec_bvar [label="open_rec_bvar", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_rec_bvar theory/Binding.v proved"];
|
||||
open_rec_bvar_neq [label="open_rec_bvar_neq", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_rec_bvar_neq theory/Binding.v proved"];
|
||||
open_rec_fvs [label="open_rec_fvs", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_rec_fvs theory/Binding.v proved"];
|
||||
open_rec_occurs_false [label="open_rec_occurs_false", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_rec_occurs_false theory/Binding.v proved"];
|
||||
subst_fvar_other [label="subst_fvar_other", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subst_fvar_other theory/Binding.v proved"];
|
||||
subst_fvar_self [label="subst_fvar_self", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subst_fvar_self theory/Binding.v proved"];
|
||||
subst_fvs [label="subst_fvs", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subst_fvs theory/Binding.v proved"];
|
||||
at_ctx_comp [label="at_ctx_comp", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="at_ctx_comp theory/Reduction.v proved"];
|
||||
has_red_f [label="has_red_f", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="has_red_f theory/Reduction.v proved"];
|
||||
has_red_spec [label="has_red_spec", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="has_red_spec theory/Reduction.v proved"];
|
||||
nf_dec [label="nf_dec", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nf_dec theory/Reduction.v proved"];
|
||||
nf_iff_steps_nil [label="nf_iff_steps_nil", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nf_iff_steps_nil theory/Reduction.v proved"];
|
||||
normal_form_iff_nf [label="normal_form_iff_nf", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="normal_form_iff_nf theory/Reduction.v proved"];
|
||||
plug_comp [label="plug_comp", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="plug_comp theory/Reduction.v proved"];
|
||||
positions_at [label="positions_at", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="positions_at theory/Reduction.v proved"];
|
||||
positions_comp [label="positions_comp", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="positions_comp theory/Reduction.v proved"];
|
||||
positions_hole [label="positions_hole", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="positions_hole theory/Reduction.v proved"];
|
||||
red1_dec [label="red1_dec", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red1_dec theory/Reduction.v proved"];
|
||||
root_steps_complete [label="root_steps_complete", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="root_steps_complete theory/Reduction.v proved"];
|
||||
root_steps_in_steps [label="root_steps_in_steps", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="root_steps_in_steps theory/Reduction.v proved"];
|
||||
root_steps_sound [label="root_steps_sound", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="root_steps_sound theory/Reduction.v proved"];
|
||||
steps_complete [label="steps_complete", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="steps_complete theory/Reduction.v proved"];
|
||||
steps_sound [label="steps_sound", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="steps_sound theory/Reduction.v proved"];
|
||||
steps_sound_red1 [label="steps_sound_red1", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="steps_sound_red1 theory/Reduction.v proved"];
|
||||
zdecs_complete [label="zdecs_complete", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="zdecs_complete theory/Reduction.v proved"];
|
||||
zdecs_sound [label="zdecs_sound", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="zdecs_sound theory/Reduction.v proved"];
|
||||
lift_lc -> lift_0_lc;
|
||||
fvs_lift -> open_rec_fvs;
|
||||
open_rec_bvar -> open_rec_fvs;
|
||||
open_rec_bvar_neq -> open_rec_fvs;
|
||||
open_rec_bvar -> open_close;
|
||||
lift_0_lc -> subst_fvar_self;
|
||||
close_rec_fvs -> subst_fvs;
|
||||
open_rec_fvs -> subst_fvs;
|
||||
zdecs_sound -> root_steps_sound;
|
||||
zdecs_complete -> root_steps_complete;
|
||||
positions_at -> steps_sound;
|
||||
root_steps_sound -> steps_sound;
|
||||
steps_sound -> steps_sound_red1;
|
||||
positions_hole -> root_steps_in_steps;
|
||||
at_ctx_comp -> steps_complete;
|
||||
plug_comp -> steps_complete;
|
||||
positions_comp -> steps_complete;
|
||||
root_steps_complete -> steps_complete;
|
||||
root_steps_in_steps -> steps_complete;
|
||||
has_red_f -> has_red_spec;
|
||||
steps_complete -> has_red_spec;
|
||||
steps_sound -> has_red_spec;
|
||||
has_red_spec -> red1_dec;
|
||||
steps_complete -> nf_iff_steps_nil;
|
||||
steps_sound_red1 -> nf_iff_steps_nil;
|
||||
nf_iff_steps_nil -> normal_form_iff_nf;
|
||||
nf_iff_steps_nil -> nf_dec;
|
||||
}
|
||||
|
After Width: | Height: | Size: 150 KiB |
@@ -0,0 +1,472 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.42.4 (0)
|
||||
-->
|
||||
<!-- Title: deps Pages: 1 -->
|
||||
<svg width="1019pt" height="715pt"
|
||||
viewBox="0.00 0.00 1018.89 715.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 711)">
|
||||
<title>deps</title>
|
||||
<text text-anchor="start" x="375.95" y="-694.4" font-family="Inter" font-weight="bold" font-size="12.00" fill="#c9d1bb">Theorem dependencies M1, 33 results</text>
|
||||
<!-- close_rec_fvar -->
|
||||
<g id="node1" class="node">
|
||||
<title>close_rec_fvar</title>
|
||||
<g id="a_node1"><a xlink:title="close_rec_fvar theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-18" rx="46.38" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-15.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">close_rec_fvar</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- close_rec_fvs -->
|
||||
<g id="node2" class="node">
|
||||
<title>close_rec_fvs</title>
|
||||
<g id="a_node2"><a xlink:title="close_rec_fvs theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-168" rx="43.1" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-165.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">close_rec_fvs</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subst_fvs -->
|
||||
<g id="node14" class="node">
|
||||
<title>subst_fvs</title>
|
||||
<g id="a_node14"><a xlink:title="subst_fvs theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="442.35" cy="-143" rx="34.13" ry="18"/>
|
||||
<text text-anchor="middle" x="442.35" y="-140.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_fvs</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- close_rec_fvs->subst_fvs -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>close_rec_fvs->subst_fvs</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M304.71,-162.33C334.28,-158.14 374.26,-152.49 403.32,-148.38"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="403.71,-150.45 409.35,-147.53 403.12,-146.29 403.71,-150.45"/>
|
||||
</g>
|
||||
<!-- close_rec_notin -->
|
||||
<g id="node3" class="node">
|
||||
<title>close_rec_notin</title>
|
||||
<g id="a_node3"><a xlink:title="close_rec_notin theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-218" rx="49.8" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-215.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">close_rec_notin</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- fvs_lift -->
|
||||
<g id="node4" class="node">
|
||||
<title>fvs_lift</title>
|
||||
<g id="a_node4"><a xlink:title="fvs_lift theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-168" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-165.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">fvs_lift</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_fvs -->
|
||||
<g id="node10" class="node">
|
||||
<title>open_rec_fvs</title>
|
||||
<g id="a_node10"><a xlink:title="open_rec_fvs theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-118" rx="43.1" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-115.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_fvs</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- fvs_lift->open_rec_fvs -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>fvs_lift->open_rec_fvs</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M93.13,-161.67C125.07,-153.44 181.37,-138.93 220.26,-128.91"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="221.06,-130.87 226.35,-127.34 220.01,-126.81 221.06,-130.87"/>
|
||||
</g>
|
||||
<!-- lift_0_lc -->
|
||||
<g id="node5" class="node">
|
||||
<title>lift_0_lc</title>
|
||||
<g id="a_node5"><a xlink:title="lift_0_lc theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-268" rx="28.74" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-265.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">lift_0_lc</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subst_fvar_self -->
|
||||
<g id="node13" class="node">
|
||||
<title>subst_fvar_self</title>
|
||||
<g id="a_node13"><a xlink:title="subst_fvar_self theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="442.35" cy="-268" rx="47.84" ry="18"/>
|
||||
<text text-anchor="middle" x="442.35" y="-265.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_fvar_self</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- lift_0_lc->subst_fvar_self -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>lift_0_lc->subst_fvar_self</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M292.61,-268C318.16,-268 356.61,-268 388.01,-268"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="388.19,-270.1 394.19,-268 388.19,-265.9 388.19,-270.1"/>
|
||||
</g>
|
||||
<!-- lift_lc -->
|
||||
<g id="node6" class="node">
|
||||
<title>lift_lc</title>
|
||||
<g id="a_node6"><a xlink:title="lift_lc theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-268" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-265.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">lift_lc</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- lift_lc->lift_0_lc -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>lift_lc->lift_0_lc</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M94.72,-268C129.24,-268 190.08,-268 228.27,-268"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="228.66,-270.1 234.66,-268 228.66,-265.9 228.66,-270.1"/>
|
||||
</g>
|
||||
<!-- open_close -->
|
||||
<g id="node7" class="node">
|
||||
<title>open_close</title>
|
||||
<g id="a_node7"><a xlink:title="open_close theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-68" rx="38.21" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-65.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_close</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_bvar -->
|
||||
<g id="node8" class="node">
|
||||
<title>open_rec_bvar</title>
|
||||
<g id="a_node8"><a xlink:title="open_rec_bvar theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-68" rx="47.84" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-65.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_bvar</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_bvar->open_close -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>open_rec_bvar->open_close</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M115.53,-68C147.18,-68 188.62,-68 219.44,-68"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="219.46,-70.1 225.46,-68 219.46,-65.9 219.46,-70.1"/>
|
||||
</g>
|
||||
<!-- open_rec_bvar->open_rec_fvs -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>open_rec_bvar->open_rec_fvs</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M107.82,-78.12C140.45,-86.53 186.79,-98.47 220.25,-107.09"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="220.01,-109.19 226.35,-108.66 221.06,-105.13 220.01,-109.19"/>
|
||||
</g>
|
||||
<!-- open_rec_bvar_neq -->
|
||||
<g id="node9" class="node">
|
||||
<title>open_rec_bvar_neq</title>
|
||||
<g id="a_node9"><a xlink:title="open_rec_bvar_neq theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-118" rx="60.09" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-115.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_bvar_neq</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_bvar_neq->open_rec_fvs -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>open_rec_bvar_neq->open_rec_fvs</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M127.83,-118C155.48,-118 187.99,-118 214.14,-118"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="214.31,-120.1 220.31,-118 214.31,-115.9 214.31,-120.1"/>
|
||||
</g>
|
||||
<!-- open_rec_fvs->subst_fvs -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>open_rec_fvs->subst_fvs</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M304.71,-123.67C334.28,-127.86 374.26,-133.51 403.32,-137.62"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="403.12,-139.71 409.35,-138.47 403.71,-135.55 403.12,-139.71"/>
|
||||
</g>
|
||||
<!-- open_rec_occurs_false -->
|
||||
<g id="node11" class="node">
|
||||
<title>open_rec_occurs_false</title>
|
||||
<g id="a_node11"><a xlink:title="open_rec_occurs_false theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-318" rx="67.6" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-315.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_occurs_false</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subst_fvar_other -->
|
||||
<g id="node12" class="node">
|
||||
<title>subst_fvar_other</title>
|
||||
<g id="a_node12"><a xlink:title="subst_fvar_other theory/Binding.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-368" rx="53.23" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-365.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_fvar_other</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- at_ctx_comp -->
|
||||
<g id="node15" class="node">
|
||||
<title>at_ctx_comp</title>
|
||||
<g id="a_node15"><a xlink:title="at_ctx_comp theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-618" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-615.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">at_ctx_comp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_complete -->
|
||||
<g id="node29" class="node">
|
||||
<title>steps_complete</title>
|
||||
<g id="a_node29"><a xlink:title="steps_complete theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="442.35" cy="-518" rx="50.46" ry="18"/>
|
||||
<text text-anchor="middle" x="442.35" y="-515.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">steps_complete</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- at_ctx_comp->steps_complete -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>at_ctx_comp->steps_complete</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M295.13,-605.79C311,-599.45 327.12,-593 327.12,-593 327.12,-593 392.12,-543 392.12,-543 392.12,-543 398.81,-539.6 407.26,-535.31"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="408.31,-537.13 412.71,-532.54 406.41,-533.39 408.31,-537.13"/>
|
||||
</g>
|
||||
<!-- has_red_f -->
|
||||
<g id="node16" class="node">
|
||||
<title>has_red_f</title>
|
||||
<g id="a_node16"><a xlink:title="has_red_f theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="442.35" cy="-568" rx="34.13" ry="18"/>
|
||||
<text text-anchor="middle" x="442.35" y="-565.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">has_red_f</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- has_red_spec -->
|
||||
<g id="node17" class="node">
|
||||
<title>has_red_spec</title>
|
||||
<g id="a_node17"><a xlink:title="has_red_spec theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="614.16" cy="-518" rx="44.41" ry="18"/>
|
||||
<text text-anchor="middle" x="614.16" y="-515.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">has_red_spec</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- has_red_f->has_red_spec -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>has_red_f->has_red_spec</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M472.54,-559.4C499.83,-551.37 540.87,-539.28 571.58,-530.24"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="572.42,-532.18 577.58,-528.48 571.23,-528.16 572.42,-532.18"/>
|
||||
</g>
|
||||
<!-- red1_dec -->
|
||||
<g id="node25" class="node">
|
||||
<title>red1_dec</title>
|
||||
<g id="a_node25"><a xlink:title="red1_dec theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="783.08" cy="-518" rx="34.13" ry="18"/>
|
||||
<text text-anchor="middle" x="783.08" y="-515.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red1_dec</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- has_red_spec->red1_dec -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>has_red_spec->red1_dec</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M659.01,-518C684.93,-518 717.47,-518 742.58,-518"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="742.8,-520.1 748.8,-518 742.8,-515.9 742.8,-520.1"/>
|
||||
</g>
|
||||
<!-- nf_dec -->
|
||||
<g id="node18" class="node">
|
||||
<title>nf_dec</title>
|
||||
<g id="a_node18"><a xlink:title="nf_dec theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="953.16" cy="-475" rx="27.27" ry="18"/>
|
||||
<text text-anchor="middle" x="953.16" y="-472.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nf_dec</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nf_iff_steps_nil -->
|
||||
<g id="node19" class="node">
|
||||
<title>nf_iff_steps_nil</title>
|
||||
<g id="a_node19"><a xlink:title="nf_iff_steps_nil theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="783.08" cy="-450" rx="47.19" ry="18"/>
|
||||
<text text-anchor="middle" x="783.08" y="-447.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nf_iff_steps_nil</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nf_iff_steps_nil->nf_dec -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>nf_iff_steps_nil->nf_dec</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M827.36,-456.44C856.36,-460.75 893.89,-466.33 920.2,-470.25"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="920.05,-472.35 926.29,-471.15 920.67,-468.19 920.05,-472.35"/>
|
||||
</g>
|
||||
<!-- normal_form_iff_nf -->
|
||||
<g id="node20" class="node">
|
||||
<title>normal_form_iff_nf</title>
|
||||
<g id="a_node20"><a xlink:title="normal_form_iff_nf theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="953.16" cy="-425" rx="57.97" ry="18"/>
|
||||
<text text-anchor="middle" x="953.16" y="-422.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">normal_form_iff_nf</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nf_iff_steps_nil->normal_form_iff_nf -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>nf_iff_steps_nil->normal_form_iff_nf</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M827.36,-443.56C847.81,-440.52 872.51,-436.85 894.52,-433.57"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="895.02,-435.62 900.65,-432.66 894.4,-431.47 895.02,-435.62"/>
|
||||
</g>
|
||||
<!-- plug_comp -->
|
||||
<g id="node21" class="node">
|
||||
<title>plug_comp</title>
|
||||
<g id="a_node21"><a xlink:title="plug_comp theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-568" rx="38.87" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-565.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">plug_comp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- plug_comp->steps_complete -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>plug_comp->steps_complete</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M297.02,-558.83C324.87,-550.95 365.29,-539.52 396.28,-530.75"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="397.15,-532.69 402.35,-529.03 396,-528.65 397.15,-532.69"/>
|
||||
</g>
|
||||
<!-- positions_at -->
|
||||
<g id="node22" class="node">
|
||||
<title>positions_at</title>
|
||||
<g id="a_node22"><a xlink:title="positions_at theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-368" rx="40.33" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-365.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">positions_at</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_sound -->
|
||||
<g id="node30" class="node">
|
||||
<title>steps_sound</title>
|
||||
<g id="a_node30"><a xlink:title="steps_sound theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="442.35" cy="-421" rx="42.29" ry="18"/>
|
||||
<text text-anchor="middle" x="442.35" y="-418.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">steps_sound</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- positions_at->steps_sound -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>positions_at->steps_sound</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M297.85,-377.97C327.19,-386.77 370.04,-399.62 401.27,-408.98"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="401,-411.09 407.35,-410.81 402.21,-407.07 401,-411.09"/>
|
||||
</g>
|
||||
<!-- positions_comp -->
|
||||
<g id="node23" class="node">
|
||||
<title>positions_comp</title>
|
||||
<g id="a_node23"><a xlink:title="positions_comp theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-518" rx="49.8" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-515.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">positions_comp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- positions_comp->steps_complete -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>positions_comp->steps_complete</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M313.37,-518C335.79,-518 362.49,-518 385.69,-518"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="385.82,-520.1 391.82,-518 385.82,-515.9 385.82,-520.1"/>
|
||||
</g>
|
||||
<!-- positions_hole -->
|
||||
<g id="node24" class="node">
|
||||
<title>positions_hole</title>
|
||||
<g id="a_node24"><a xlink:title="positions_hole theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-668" rx="46.38" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-665.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">positions_hole</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- root_steps_in_steps -->
|
||||
<g id="node27" class="node">
|
||||
<title>root_steps_in_steps</title>
|
||||
<g id="a_node27"><a xlink:title="root_steps_in_steps theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-668" rx="60.09" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-665.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">root_steps_in_steps</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- positions_hole->root_steps_in_steps -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>positions_hole->root_steps_in_steps</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M114.05,-668C138.84,-668 169.94,-668 197.28,-668"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="197.41,-670.1 203.41,-668 197.41,-665.9 197.41,-670.1"/>
|
||||
</g>
|
||||
<!-- root_steps_complete -->
|
||||
<g id="node26" class="node">
|
||||
<title>root_steps_complete</title>
|
||||
<g id="a_node26"><a xlink:title="root_steps_complete theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-468" rx="63.52" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-465.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">root_steps_complete</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- root_steps_complete->steps_complete -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>root_steps_complete->steps_complete</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M309.21,-480.62C335.92,-488.17 369.78,-497.75 396.53,-505.32"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="396.13,-507.39 402.47,-507 397.27,-503.35 396.13,-507.39"/>
|
||||
</g>
|
||||
<!-- root_steps_in_steps->steps_complete -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>root_steps_in_steps->steps_complete</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M300.61,-653.6C314.5,-648.04 327.12,-643 327.12,-643 327.12,-643 392.12,-543 392.12,-543 392.12,-543 398.81,-539.6 407.26,-535.31"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="408.31,-537.13 412.71,-532.54 406.41,-533.39 408.31,-537.13"/>
|
||||
</g>
|
||||
<!-- root_steps_sound -->
|
||||
<g id="node28" class="node">
|
||||
<title>root_steps_sound</title>
|
||||
<g id="a_node28"><a xlink:title="root_steps_sound theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="263.61" cy="-418" rx="54.7" ry="18"/>
|
||||
<text text-anchor="middle" x="263.61" y="-415.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">root_steps_sound</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- root_steps_sound->steps_sound -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>root_steps_sound->steps_sound</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M318.6,-418.92C342.64,-419.32 370.7,-419.8 393.92,-420.2"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="393.99,-422.3 400.03,-420.3 394.06,-418.1 393.99,-422.3"/>
|
||||
</g>
|
||||
<!-- steps_complete->has_red_spec -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>steps_complete->has_red_spec</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M492.92,-518C515.11,-518 541.22,-518 563.43,-518"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="563.58,-520.1 569.58,-518 563.58,-515.9 563.58,-520.1"/>
|
||||
</g>
|
||||
<!-- steps_complete->nf_iff_steps_nil -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>steps_complete->nf_iff_steps_nil</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M485.56,-508.76C518.1,-501.64 557.58,-493 557.58,-493 557.58,-493 668.2,-471.81 734.14,-459.18"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="734.88,-461.18 740.38,-457.99 734.09,-457.05 734.88,-461.18"/>
|
||||
</g>
|
||||
<!-- steps_sound->has_red_spec -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>steps_sound->has_red_spec</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M468.4,-435.31C498.66,-452.6 549.57,-481.68 582.24,-500.34"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="581.47,-502.32 587.72,-503.47 583.55,-498.67 581.47,-502.32"/>
|
||||
</g>
|
||||
<!-- steps_sound_red1 -->
|
||||
<g id="node31" class="node">
|
||||
<title>steps_sound_red1</title>
|
||||
<g id="a_node31"><a xlink:title="steps_sound_red1 theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="614.16" cy="-431" rx="56.66" ry="18"/>
|
||||
<text text-anchor="middle" x="614.16" y="-428.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">steps_sound_red1</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_sound->steps_sound_red1 -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>steps_sound->steps_sound_red1</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M484.45,-423.42C504.73,-424.61 529.6,-426.08 552.05,-427.4"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="552.2,-429.51 558.31,-427.77 552.44,-425.32 552.2,-429.51"/>
|
||||
</g>
|
||||
<!-- steps_sound_red1->nf_iff_steps_nil -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>steps_sound_red1->nf_iff_steps_nil</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M667.97,-437.01C688.23,-439.32 711.28,-441.94 731.33,-444.22"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="731.26,-446.33 737.46,-444.92 731.73,-442.16 731.26,-446.33"/>
|
||||
</g>
|
||||
<!-- zdecs_complete -->
|
||||
<g id="node32" class="node">
|
||||
<title>zdecs_complete</title>
|
||||
<g id="a_node32"><a xlink:title="zdecs_complete theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-468" rx="51.27" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-465.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">zdecs_complete</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- zdecs_complete->root_steps_complete -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>zdecs_complete->root_steps_complete</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M119.03,-468C141.81,-468 169.07,-468 193.69,-468"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="193.88,-470.1 199.88,-468 193.88,-465.9 193.88,-470.1"/>
|
||||
</g>
|
||||
<!-- zdecs_sound -->
|
||||
<g id="node33" class="node">
|
||||
<title>zdecs_sound</title>
|
||||
<g id="a_node33"><a xlink:title="zdecs_sound theory/Reduction.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="67.55" cy="-418" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="67.55" y="-415.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">zdecs_sound</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- zdecs_sound->root_steps_sound -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>zdecs_sound->root_steps_sound</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M110.66,-418C137.51,-418 172.72,-418 202.49,-418"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="202.76,-420.1 208.76,-418 202.76,-415.9 202.76,-420.1"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,115 @@
|
||||
digraph deps {
|
||||
rankdir=LR;
|
||||
bgcolor="transparent";
|
||||
splines=polyline;
|
||||
concentrate=true;
|
||||
nodesep=0.2;
|
||||
ranksep=0.9;
|
||||
node [fontname=Inter, fontsize=9];
|
||||
edge [fontname=Inter, fontsize=8, color="#8f9780", fontcolor="#c9d1bb", arrowsize=0.6, penwidth=0.8];
|
||||
graph [fontname=Inter, fontsize=12, labelloc=t, fontcolor="#c9d1bb", label=<<B>Theorem dependencies M2, 53 results</B>>];
|
||||
close_rec_notin [label="close_rec_notin\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="close_rec_notin theory/Binding.v proved"];
|
||||
fvs_lift [label="fvs_lift\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="fvs_lift theory/Binding.v proved"];
|
||||
has_red_spec [label="has_red_spec\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="has_red_spec theory/Reduction.v proved"];
|
||||
open_rec_occurs_false [label="open_rec_occurs_false\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="open_rec_occurs_false theory/Binding.v proved"];
|
||||
steps_complete [label="steps_complete\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="steps_complete theory/Reduction.v proved"];
|
||||
steps_sound [label="steps_sound\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="steps_sound theory/Reduction.v proved"];
|
||||
steps_sound_red1 [label="steps_sound_red1\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="steps_sound_red1 theory/Reduction.v proved"];
|
||||
subst_fvar_other [label="subst_fvar_other\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="subst_fvar_other theory/Binding.v proved"];
|
||||
subst_fvar_self [label="subst_fvar_self\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="subst_fvar_self theory/Binding.v proved"];
|
||||
zdecs_sound [label="zdecs_sound\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="zdecs_sound theory/Reduction.v proved"];
|
||||
Plus_to_Star [label="Plus_to_Star", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Plus_to_Star theory/Closure.v proved"];
|
||||
Star_red1_context [label="Star_red1_context", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Star_red1_context theory/Closure.v proved"];
|
||||
Star_trans [label="Star_trans", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Star_trans theory/Closure.v proved"];
|
||||
red1_star [label="red1_star", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red1_star theory/Closure.v proved"];
|
||||
star_one_trans [label="star_one_trans", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="star_one_trans theory/Closure.v proved"];
|
||||
enumerate_check [label="enumerate_check", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="enumerate_check theory/Enumerate.v proved"];
|
||||
enumerate_complete [label="enumerate_complete", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="enumerate_complete theory/Enumerate.v proved"];
|
||||
enumerate_sound [label="enumerate_sound", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="enumerate_sound theory/Enumerate.v proved"];
|
||||
in_comb [label="in_comb", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="in_comb theory/Enumerate.v proved"];
|
||||
pow2_pos [label="pow2_pos", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="pow2_pos theory/Enumerate.v proved"];
|
||||
size_all_terms [label="size_all_terms", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="size_all_terms theory/Enumerate.v proved"];
|
||||
Plus_red1_context [label="Plus_red1_context", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Plus_red1_context theory/Metatheory.v proved"];
|
||||
Plus_step_trans [label="Plus_step_trans", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Plus_step_trans theory/Metatheory.v proved"];
|
||||
Plus_trans [label="Plus_trans", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Plus_trans theory/Metatheory.v proved"];
|
||||
full_comp_aux [label="full_comp_aux", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="full_comp_aux theory/Metatheory.v proved"];
|
||||
fvs_zplug_lift [label="fvs_zplug_lift", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="fvs_zplug_lift theory/Metatheory.v proved"];
|
||||
lemma_2_1_fv_preserved [label="lemma_2_1_fv_preserved", shape=box, style="rounded,filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="lemma_2_1_fv_preserved (section 2.1) theory/Metatheory.v proved"];
|
||||
lemma_2_2_full_comp [label="lemma_2_2_full_comp", shape=box, style="rounded,filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="lemma_2_2_full_comp (section 2.2) theory/Metatheory.v proved"];
|
||||
lemma_2_3_beta_sim [label="lemma_2_3_beta_sim", shape=box, style="rounded,filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="lemma_2_3_beta_sim (section 2.3) theory/Metatheory.v proved"];
|
||||
occurs_count_false [label="occurs_count_false", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="occurs_count_false theory/Metatheory.v proved"];
|
||||
occurs_count_pos [label="occurs_count_pos", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="occurs_count_pos theory/Metatheory.v proved"];
|
||||
occurs_count_zero [label="occurs_count_zero", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="occurs_count_zero theory/Metatheory.v proved"];
|
||||
occurs_count_zfill_plug [label="occurs_count_zfill_plug", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="occurs_count_zfill_plug theory/Metatheory.v proved"];
|
||||
occurs_lift_self [label="occurs_lift_self", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="occurs_lift_self theory/Metatheory.v proved"];
|
||||
open_rec_zplug_lift [label="open_rec_zplug_lift", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_rec_zplug_lift theory/Metatheory.v proved"];
|
||||
plug_fv_mono [label="plug_fv_mono", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="plug_fv_mono theory/Metatheory.v proved"];
|
||||
red1_root_fv [label="red1_root_fv", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red1_root_fv theory/Metatheory.v proved"];
|
||||
red1r_fv [label="red1r_fv", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red1r_fv theory/Metatheory.v proved"];
|
||||
zdecs_nonempty [label="zdecs_nonempty", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="zdecs_nonempty theory/Metatheory.v proved"];
|
||||
check_all_true [label="check_all_true", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="check_all_true theory/Random.v proved"];
|
||||
check_term_true [label="check_term_true", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="check_term_true theory/Random.v proved"];
|
||||
gen_complete [label="gen_complete", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="gen_complete theory/Random.v proved"];
|
||||
gen_fv_preserved [label="gen_fv_preserved", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="gen_fv_preserved theory/Random.v proved"];
|
||||
gen_list_length [label="gen_list_length", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="gen_list_length theory/Random.v proved"];
|
||||
gen_sound [label="gen_sound", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="gen_sound theory/Random.v proved"];
|
||||
close_rec_app [label="close_rec_app", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="close_rec_app theory/Substitution.v proved"];
|
||||
close_rec_esub [label="close_rec_esub", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="close_rec_esub theory/Substitution.v proved"];
|
||||
close_rec_lam [label="close_rec_lam", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="close_rec_lam theory/Substitution.v proved"];
|
||||
open_rec_app [label="open_rec_app", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_rec_app theory/Substitution.v proved"];
|
||||
open_rec_esub [label="open_rec_esub", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_rec_esub theory/Substitution.v proved"];
|
||||
open_rec_lam [label="open_rec_lam", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_rec_lam theory/Substitution.v proved"];
|
||||
open_rec_lc [label="open_rec_lc", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_rec_lc theory/Substitution.v proved"];
|
||||
open_rec_lc_atom [label="open_rec_lc_atom", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="open_rec_lc_atom theory/Substitution.v proved"];
|
||||
subst_app [label="subst_app", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subst_app theory/Substitution.v proved"];
|
||||
subst_esub [label="subst_esub", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subst_esub theory/Substitution.v proved"];
|
||||
subst_lam [label="subst_lam", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subst_lam theory/Substitution.v proved"];
|
||||
subst_lc_self [label="subst_lc_self", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subst_lc_self theory/Substitution.v proved"];
|
||||
subst_notin [label="subst_notin", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subst_notin theory/Substitution.v proved"];
|
||||
subst_other [label="subst_other", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subst_other theory/Substitution.v proved"];
|
||||
corpus_complete [label="corpus_complete", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="corpus_complete theory/Tests.v proved"];
|
||||
corpus_decides [label="corpus_decides", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="corpus_decides theory/Tests.v proved"];
|
||||
corpus_fv_preserved [label="corpus_fv_preserved", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="corpus_fv_preserved theory/Tests.v proved"];
|
||||
corpus_sound [label="corpus_sound", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="corpus_sound theory/Tests.v proved"];
|
||||
in_comb -> size_all_terms;
|
||||
pow2_pos -> size_all_terms;
|
||||
check_all_true -> enumerate_check;
|
||||
steps_sound -> enumerate_sound;
|
||||
steps_complete -> enumerate_complete;
|
||||
occurs_count_zero -> occurs_count_pos;
|
||||
occurs_count_false -> occurs_count_zfill_plug;
|
||||
occurs_lift_self -> occurs_count_zfill_plug;
|
||||
occurs_lift_self -> open_rec_zplug_lift;
|
||||
open_rec_occurs_false -> open_rec_zplug_lift;
|
||||
occurs_count_zero -> full_comp_aux;
|
||||
occurs_count_zfill_plug -> full_comp_aux;
|
||||
open_rec_occurs_false -> full_comp_aux;
|
||||
open_rec_zplug_lift -> full_comp_aux;
|
||||
zdecs_nonempty -> full_comp_aux;
|
||||
zdecs_sound -> full_comp_aux;
|
||||
full_comp_aux -> lemma_2_2_full_comp;
|
||||
fvs_lift -> fvs_zplug_lift;
|
||||
fvs_zplug_lift -> red1_root_fv;
|
||||
plug_fv_mono -> red1r_fv;
|
||||
red1_root_fv -> red1r_fv;
|
||||
red1r_fv -> lemma_2_1_fv_preserved;
|
||||
Plus_red1_context -> lemma_2_3_beta_sim;
|
||||
lemma_2_2_full_comp -> lemma_2_3_beta_sim;
|
||||
has_red_spec -> check_term_true;
|
||||
steps_sound_red1 -> check_term_true;
|
||||
check_term_true -> check_all_true;
|
||||
steps_sound -> gen_sound;
|
||||
steps_complete -> gen_complete;
|
||||
lemma_2_1_fv_preserved -> gen_fv_preserved;
|
||||
steps_sound_red1 -> gen_fv_preserved;
|
||||
close_rec_notin -> subst_notin;
|
||||
open_rec_occurs_false -> subst_notin;
|
||||
subst_fvar_self -> subst_lc_self;
|
||||
subst_fvar_other -> subst_other;
|
||||
open_rec_lc_atom -> open_rec_lc;
|
||||
steps_sound -> corpus_sound;
|
||||
steps_complete -> corpus_complete;
|
||||
has_red_spec -> corpus_decides;
|
||||
lemma_2_1_fv_preserved -> corpus_fv_preserved;
|
||||
steps_sound_red1 -> corpus_fv_preserved;
|
||||
}
|
||||
|
After Width: | Height: | Size: 288 KiB |
@@ -0,0 +1,826 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.42.4 (0)
|
||||
-->
|
||||
<!-- Title: deps Pages: 1 -->
|
||||
<svg width="1445pt" height="1800pt"
|
||||
viewBox="0.00 0.00 1444.74 1800.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1796)">
|
||||
<title>deps</title>
|
||||
<text text-anchor="start" x="588.87" y="-1779.4" font-family="Inter" font-weight="bold" font-size="12.00" fill="#c9d1bb">Theorem dependencies M2, 53 results</text>
|
||||
<!-- close_rec_notin -->
|
||||
<g id="node1" class="node">
|
||||
<title>close_rec_notin</title>
|
||||
<g id="a_node1"><a xlink:title="close_rec_notin theory/Binding.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M119.5,-321C119.5,-321 27.5,-321 27.5,-321 21.5,-321 15.5,-315 15.5,-309 15.5,-309 15.5,-297 15.5,-297 15.5,-291 21.5,-285 27.5,-285 27.5,-285 119.5,-285 119.5,-285 125.5,-285 131.5,-291 131.5,-297 131.5,-297 131.5,-309 131.5,-309 131.5,-315 125.5,-321 119.5,-321"/>
|
||||
<text text-anchor="middle" x="73.5" y="-300.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">close_rec_notin\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subst_notin -->
|
||||
<g id="node58" class="node">
|
||||
<title>subst_notin</title>
|
||||
<g id="a_node58"><a xlink:title="subst_notin theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-303" rx="39.67" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-300.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_notin</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- close_rec_notin->subst_notin -->
|
||||
<g id="edge32" class="edge">
|
||||
<title>close_rec_notin->subst_notin</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M131.59,-303C164.68,-303 205.74,-303 236.51,-303"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="236.52,-305.1 242.52,-303 236.52,-300.9 236.52,-305.1"/>
|
||||
</g>
|
||||
<!-- fvs_lift -->
|
||||
<g id="node2" class="node">
|
||||
<title>fvs_lift</title>
|
||||
<g id="a_node2"><a xlink:title="fvs_lift theory/Binding.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M99,-371C99,-371 48,-371 48,-371 42,-371 36,-365 36,-359 36,-359 36,-347 36,-347 36,-341 42,-335 48,-335 48,-335 99,-335 99,-335 105,-335 111,-341 111,-347 111,-347 111,-359 111,-359 111,-365 105,-371 99,-371"/>
|
||||
<text text-anchor="middle" x="73.5" y="-350.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">fvs_lift\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- fvs_zplug_lift -->
|
||||
<g id="node26" class="node">
|
||||
<title>fvs_zplug_lift</title>
|
||||
<g id="a_node26"><a xlink:title="fvs_zplug_lift theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-353" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-350.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">fvs_zplug_lift</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- fvs_lift->fvs_zplug_lift -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>fvs_lift->fvs_zplug_lift</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M111.02,-353C145.02,-353 195.93,-353 233.25,-353"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="233.59,-355.1 239.59,-353 233.59,-350.9 233.59,-355.1"/>
|
||||
</g>
|
||||
<!-- has_red_spec -->
|
||||
<g id="node3" class="node">
|
||||
<title>has_red_spec</title>
|
||||
<g id="a_node3"><a xlink:title="has_red_spec theory/Reduction.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M884.03,-271C884.03,-271 801.03,-271 801.03,-271 795.03,-271 789.03,-265 789.03,-259 789.03,-259 789.03,-247 789.03,-247 789.03,-241 795.03,-235 801.03,-235 801.03,-235 884.03,-235 884.03,-235 890.03,-235 896.03,-241 896.03,-247 896.03,-247 896.03,-259 896.03,-259 896.03,-265 890.03,-271 884.03,-271"/>
|
||||
<text text-anchor="middle" x="842.53" y="-250.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">has_red_spec\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- check_term_true -->
|
||||
<g id="node41" class="node">
|
||||
<title>check_term_true</title>
|
||||
<g id="a_node41"><a xlink:title="check_term_true theory/Random.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="1036.54" cy="-278" rx="53.89" ry="18"/>
|
||||
<text text-anchor="middle" x="1036.54" y="-275.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">check_term_true</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- has_red_spec->check_term_true -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>has_red_spec->check_term_true</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M896.26,-259.86C922.26,-263.25 953.62,-267.33 980,-270.77"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="980.02,-272.89 986.24,-271.58 980.56,-268.72 980.02,-272.89"/>
|
||||
</g>
|
||||
<!-- corpus_decides -->
|
||||
<g id="node61" class="node">
|
||||
<title>corpus_decides</title>
|
||||
<g id="a_node61"><a xlink:title="corpus_decides theory/Tests.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="1036.54" cy="-228" rx="49.8" ry="18"/>
|
||||
<text text-anchor="middle" x="1036.54" y="-225.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">corpus_decides</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- has_red_spec->corpus_decides -->
|
||||
<g id="edge39" class="edge">
|
||||
<title>has_red_spec->corpus_decides</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M896.26,-246.14C923.4,-242.6 956.38,-238.31 983.44,-234.78"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="983.79,-236.86 989.47,-234 983.25,-232.69 983.79,-236.86"/>
|
||||
</g>
|
||||
<!-- open_rec_occurs_false -->
|
||||
<g id="node4" class="node">
|
||||
<title>open_rec_occurs_false</title>
|
||||
<g id="a_node4"><a xlink:title="open_rec_occurs_false theory/Binding.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M135,-271C135,-271 12,-271 12,-271 6,-271 0,-265 0,-259 0,-259 0,-247 0,-247 0,-241 6,-235 12,-235 12,-235 135,-235 135,-235 141,-235 147,-241 147,-247 147,-247 147,-259 147,-259 147,-265 141,-271 135,-271"/>
|
||||
<text text-anchor="middle" x="73.5" y="-250.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_occurs_false\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- full_comp_aux -->
|
||||
<g id="node25" class="node">
|
||||
<title>full_comp_aux</title>
|
||||
<g id="a_node25"><a xlink:title="full_comp_aux theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="474.45" cy="-143" rx="46.53" ry="18"/>
|
||||
<text text-anchor="middle" x="474.45" y="-140.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">full_comp_aux</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_occurs_false->full_comp_aux -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>open_rec_occurs_false->full_comp_aux</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M147.28,-250.39C229.76,-247.42 352.87,-243 352.87,-243 352.87,-243 413.53,-192.7 448.8,-163.44"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="450.53,-164.74 453.81,-159.29 447.85,-161.5 450.53,-164.74"/>
|
||||
</g>
|
||||
<!-- open_rec_zplug_lift -->
|
||||
<g id="node35" class="node">
|
||||
<title>open_rec_zplug_lift</title>
|
||||
<g id="a_node35"><a xlink:title="open_rec_zplug_lift theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-218" rx="59.43" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-215.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_zplug_lift</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_occurs_false->open_rec_zplug_lift -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>open_rec_occurs_false->open_rec_zplug_lift</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M147.17,-240.71C172.4,-236.44 200.31,-231.72 224.13,-227.69"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="224.53,-229.76 230.09,-226.68 223.82,-225.61 224.53,-229.76"/>
|
||||
</g>
|
||||
<!-- open_rec_occurs_false->subst_notin -->
|
||||
<g id="edge33" class="edge">
|
||||
<title>open_rec_occurs_false->subst_notin</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M147.17,-270.56C178.67,-278.17 214.37,-286.8 241.04,-293.24"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="240.6,-295.29 246.93,-294.66 241.59,-291.21 240.6,-295.29"/>
|
||||
</g>
|
||||
<!-- steps_complete -->
|
||||
<g id="node5" class="node">
|
||||
<title>steps_complete</title>
|
||||
<g id="a_node5"><a xlink:title="steps_complete theory/Reduction.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M120,-471C120,-471 27,-471 27,-471 21,-471 15,-465 15,-459 15,-459 15,-447 15,-447 15,-441 21,-435 27,-435 27,-435 120,-435 120,-435 126,-435 132,-441 132,-447 132,-447 132,-459 132,-459 132,-465 126,-471 120,-471"/>
|
||||
<text text-anchor="middle" x="73.5" y="-450.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">steps_complete\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- enumerate_complete -->
|
||||
<g id="node17" class="node">
|
||||
<title>enumerate_complete</title>
|
||||
<g id="a_node17"><a xlink:title="enumerate_complete theory/Enumerate.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-503" rx="65.48" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-500.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">enumerate_complete</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_complete->enumerate_complete -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>steps_complete->enumerate_complete</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M132.14,-466.93C161.73,-474.08 197.58,-482.74 226.74,-489.78"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="226.53,-491.89 232.85,-491.26 227.51,-487.81 226.53,-491.89"/>
|
||||
</g>
|
||||
<!-- gen_complete -->
|
||||
<g id="node42" class="node">
|
||||
<title>gen_complete</title>
|
||||
<g id="a_node42"><a xlink:title="gen_complete theory/Random.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-453" rx="46.38" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-450.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">gen_complete</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_complete->gen_complete -->
|
||||
<g id="edge29" class="edge">
|
||||
<title>steps_complete->gen_complete</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M132.14,-453C162.85,-453 200.3,-453 230.01,-453"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="230.23,-455.1 236.23,-453 230.23,-450.9 230.23,-455.1"/>
|
||||
</g>
|
||||
<!-- corpus_complete -->
|
||||
<g id="node60" class="node">
|
||||
<title>corpus_complete</title>
|
||||
<g id="a_node60"><a xlink:title="corpus_complete theory/Tests.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-403" rx="54.04" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-400.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">corpus_complete</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_complete->corpus_complete -->
|
||||
<g id="edge38" class="edge">
|
||||
<title>steps_complete->corpus_complete</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M132.14,-439.07C163.65,-431.46 202.26,-422.13 232.32,-414.87"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="232.87,-416.89 238.21,-413.44 231.89,-412.81 232.87,-416.89"/>
|
||||
</g>
|
||||
<!-- steps_sound -->
|
||||
<g id="node6" class="node">
|
||||
<title>steps_sound</title>
|
||||
<g id="a_node6"><a xlink:title="steps_sound theory/Reduction.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M113,-621C113,-621 34,-621 34,-621 28,-621 22,-615 22,-609 22,-609 22,-597 22,-597 22,-591 28,-585 34,-585 34,-585 113,-585 113,-585 119,-585 125,-591 125,-597 125,-597 125,-609 125,-609 125,-615 119,-621 113,-621"/>
|
||||
<text text-anchor="middle" x="73.5" y="-600.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">steps_sound\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- enumerate_sound -->
|
||||
<g id="node18" class="node">
|
||||
<title>enumerate_sound</title>
|
||||
<g id="a_node18"><a xlink:title="enumerate_sound theory/Enumerate.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-653" rx="56.66" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-650.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">enumerate_sound</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_sound->enumerate_sound -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>steps_sound->enumerate_sound</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M125.12,-615.23C157.34,-623.02 198.9,-633.06 231.07,-640.83"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="230.63,-642.89 236.96,-642.25 231.62,-638.8 230.63,-642.89"/>
|
||||
</g>
|
||||
<!-- gen_sound -->
|
||||
<g id="node45" class="node">
|
||||
<title>gen_sound</title>
|
||||
<g id="a_node45"><a xlink:title="gen_sound theory/Random.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-603" rx="38.21" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-600.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">gen_sound</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_sound->gen_sound -->
|
||||
<g id="edge28" class="edge">
|
||||
<title>steps_sound->gen_sound</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M125.12,-603C159.82,-603 205.35,-603 238.31,-603"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="238.32,-605.1 244.32,-603 238.32,-600.9 238.32,-605.1"/>
|
||||
</g>
|
||||
<!-- corpus_sound -->
|
||||
<g id="node63" class="node">
|
||||
<title>corpus_sound</title>
|
||||
<g id="a_node63"><a xlink:title="corpus_sound theory/Tests.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-553" rx="46.38" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-550.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">corpus_sound</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_sound->corpus_sound -->
|
||||
<g id="edge37" class="edge">
|
||||
<title>steps_sound->corpus_sound</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M125.12,-590.77C159.25,-582.52 203.87,-571.74 236.7,-563.81"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="237.35,-565.81 242.69,-562.36 236.36,-561.73 237.35,-565.81"/>
|
||||
</g>
|
||||
<!-- steps_sound_red1 -->
|
||||
<g id="node7" class="node">
|
||||
<title>steps_sound_red1</title>
|
||||
<g id="a_node7"><a xlink:title="steps_sound_red1 theory/Reduction.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M894.53,-346C894.53,-346 790.53,-346 790.53,-346 784.53,-346 778.53,-340 778.53,-334 778.53,-334 778.53,-322 778.53,-322 778.53,-316 784.53,-310 790.53,-310 790.53,-310 894.53,-310 894.53,-310 900.53,-310 906.53,-316 906.53,-322 906.53,-322 906.53,-334 906.53,-334 906.53,-340 900.53,-346 894.53,-346"/>
|
||||
<text text-anchor="middle" x="842.53" y="-325.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">steps_sound_red1\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_sound_red1->check_term_true -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>steps_sound_red1->check_term_true</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M906.67,-311.56C932.97,-304.71 963.01,-296.89 987.47,-290.52"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="988.29,-292.48 993.56,-288.93 987.23,-288.41 988.29,-292.48"/>
|
||||
</g>
|
||||
<!-- gen_fv_preserved -->
|
||||
<g id="node43" class="node">
|
||||
<title>gen_fv_preserved</title>
|
||||
<g id="a_node43"><a xlink:title="gen_fv_preserved theory/Random.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="1036.54" cy="-378" rx="55.35" ry="18"/>
|
||||
<text text-anchor="middle" x="1036.54" y="-375.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">gen_fv_preserved</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_sound_red1->gen_fv_preserved -->
|
||||
<g id="edge31" class="edge">
|
||||
<title>steps_sound_red1->gen_fv_preserved</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M906.67,-344.44C932.67,-351.21 962.32,-358.93 986.62,-365.26"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="986.35,-367.36 992.68,-366.84 987.41,-363.29 986.35,-367.36"/>
|
||||
</g>
|
||||
<!-- corpus_fv_preserved -->
|
||||
<g id="node62" class="node">
|
||||
<title>corpus_fv_preserved</title>
|
||||
<g id="a_node62"><a xlink:title="corpus_fv_preserved theory/Tests.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="1036.54" cy="-328" rx="63.52" ry="18"/>
|
||||
<text text-anchor="middle" x="1036.54" y="-325.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">corpus_fv_preserved</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- steps_sound_red1->corpus_fv_preserved -->
|
||||
<g id="edge41" class="edge">
|
||||
<title>steps_sound_red1->corpus_fv_preserved</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M906.67,-328C925.99,-328 947.32,-328 966.98,-328"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="967.02,-330.1 973.02,-328 967.02,-325.9 967.02,-330.1"/>
|
||||
</g>
|
||||
<!-- subst_fvar_other -->
|
||||
<g id="node8" class="node">
|
||||
<title>subst_fvar_other</title>
|
||||
<g id="a_node8"><a xlink:title="subst_fvar_other theory/Binding.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M122.5,-721C122.5,-721 24.5,-721 24.5,-721 18.5,-721 12.5,-715 12.5,-709 12.5,-709 12.5,-697 12.5,-697 12.5,-691 18.5,-685 24.5,-685 24.5,-685 122.5,-685 122.5,-685 128.5,-685 134.5,-691 134.5,-697 134.5,-697 134.5,-709 134.5,-709 134.5,-715 128.5,-721 122.5,-721"/>
|
||||
<text text-anchor="middle" x="73.5" y="-700.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_fvar_other\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subst_other -->
|
||||
<g id="node59" class="node">
|
||||
<title>subst_other</title>
|
||||
<g id="a_node59"><a xlink:title="subst_other theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-703" rx="40.33" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-700.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_other</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subst_fvar_other->subst_other -->
|
||||
<g id="edge35" class="edge">
|
||||
<title>subst_fvar_other->subst_other</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M134.63,-703C166.83,-703 205.86,-703 235.58,-703"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="235.78,-705.1 241.78,-703 235.78,-700.9 235.78,-705.1"/>
|
||||
</g>
|
||||
<!-- subst_fvar_self -->
|
||||
<g id="node9" class="node">
|
||||
<title>subst_fvar_self</title>
|
||||
<g id="a_node9"><a xlink:title="subst_fvar_self theory/Binding.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M118,-771C118,-771 29,-771 29,-771 23,-771 17,-765 17,-759 17,-759 17,-747 17,-747 17,-741 23,-735 29,-735 29,-735 118,-735 118,-735 124,-735 130,-741 130,-747 130,-747 130,-759 130,-759 130,-765 124,-771 118,-771"/>
|
||||
<text text-anchor="middle" x="73.5" y="-750.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_fvar_self\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subst_lc_self -->
|
||||
<g id="node57" class="node">
|
||||
<title>subst_lc_self</title>
|
||||
<g id="a_node57"><a xlink:title="subst_lc_self theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-753" rx="42.29" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-750.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_lc_self</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subst_fvar_self->subst_lc_self -->
|
||||
<g id="edge34" class="edge">
|
||||
<title>subst_fvar_self->subst_lc_self</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M130.23,-753C162.66,-753 203.11,-753 234.01,-753"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="234.06,-755.1 240.06,-753 234.06,-750.9 234.06,-755.1"/>
|
||||
</g>
|
||||
<!-- zdecs_sound -->
|
||||
<g id="node10" class="node">
|
||||
<title>zdecs_sound</title>
|
||||
<g id="a_node10"><a xlink:title="zdecs_sound theory/Reduction.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M322.44,-186C322.44,-186 242.44,-186 242.44,-186 236.44,-186 230.44,-180 230.44,-174 230.44,-174 230.44,-162 230.44,-162 230.44,-156 236.44,-150 242.44,-150 242.44,-150 322.44,-150 322.44,-150 328.44,-150 334.44,-156 334.44,-162 334.44,-162 334.44,-174 334.44,-174 334.44,-180 328.44,-186 322.44,-186"/>
|
||||
<text text-anchor="middle" x="282.44" y="-165.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">zdecs_sound\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- zdecs_sound->full_comp_aux -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>zdecs_sound->full_comp_aux</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M334.61,-161.27C362.3,-157.62 396.36,-153.14 423.82,-149.53"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="424.25,-151.59 429.93,-148.73 423.7,-147.43 424.25,-151.59"/>
|
||||
</g>
|
||||
<!-- Plus_to_Star -->
|
||||
<g id="node11" class="node">
|
||||
<title>Plus_to_Star</title>
|
||||
<g id="a_node11"><a xlink:title="Plus_to_Star theory/Closure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-803" rx="40.98" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-800.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Plus_to_Star</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Star_red1_context -->
|
||||
<g id="node12" class="node">
|
||||
<title>Star_red1_context</title>
|
||||
<g id="a_node12"><a xlink:title="Star_red1_context theory/Closure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-853" rx="57.97" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-850.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Star_red1_context</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Star_trans -->
|
||||
<g id="node13" class="node">
|
||||
<title>Star_trans</title>
|
||||
<g id="a_node13"><a xlink:title="Star_trans theory/Closure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-903" rx="36.25" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-900.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Star_trans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red1_star -->
|
||||
<g id="node14" class="node">
|
||||
<title>red1_star</title>
|
||||
<g id="a_node14"><a xlink:title="red1_star theory/Closure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-953" rx="34.13" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-950.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red1_star</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- star_one_trans -->
|
||||
<g id="node15" class="node">
|
||||
<title>star_one_trans</title>
|
||||
<g id="a_node15"><a xlink:title="star_one_trans theory/Closure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1003" rx="47.84" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1000.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">star_one_trans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- enumerate_check -->
|
||||
<g id="node16" class="node">
|
||||
<title>enumerate_check</title>
|
||||
<g id="a_node16"><a xlink:title="enumerate_check theory/Enumerate.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="1380.16" cy="-278" rx="56.66" ry="18"/>
|
||||
<text text-anchor="middle" x="1380.16" y="-275.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">enumerate_check</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- in_comb -->
|
||||
<g id="node19" class="node">
|
||||
<title>in_comb</title>
|
||||
<g id="a_node19"><a xlink:title="in_comb theory/Enumerate.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1103" rx="31.51" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1100.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">in_comb</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- size_all_terms -->
|
||||
<g id="node21" class="node">
|
||||
<title>size_all_terms</title>
|
||||
<g id="a_node21"><a xlink:title="size_all_terms theory/Enumerate.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-1078" rx="45.07" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-1075.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">size_all_terms</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- in_comb->size_all_terms -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>in_comb->size_all_terms</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M105.03,-1099.31C138.65,-1095.25 193.17,-1088.66 232.7,-1083.89"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="233.21,-1085.94 238.92,-1083.14 232.71,-1081.77 233.21,-1085.94"/>
|
||||
</g>
|
||||
<!-- pow2_pos -->
|
||||
<g id="node20" class="node">
|
||||
<title>pow2_pos</title>
|
||||
<g id="a_node20"><a xlink:title="pow2_pos theory/Enumerate.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1053" rx="35.59" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1050.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">pow2_pos</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- pow2_pos->size_all_terms -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>pow2_pos->size_all_terms</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M108.67,-1057.13C142.56,-1061.22 194.8,-1067.53 232.97,-1072.14"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="232.76,-1074.23 238.97,-1072.87 233.27,-1070.07 232.76,-1074.23"/>
|
||||
</g>
|
||||
<!-- Plus_red1_context -->
|
||||
<g id="node22" class="node">
|
||||
<title>Plus_red1_context</title>
|
||||
<g id="a_node22"><a xlink:title="Plus_red1_context theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="654.03" cy="-93" rx="57.32" ry="18"/>
|
||||
<text text-anchor="middle" x="654.03" y="-90.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Plus_red1_context</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- lemma_2_3_beta_sim -->
|
||||
<g id="node29" class="node">
|
||||
<title>lemma_2_3_beta_sim</title>
|
||||
<g id="a_node29"><a xlink:title="lemma_2_3_beta_sim (section 2.3) theory/Metatheory.v proved">
|
||||
<path fill="transparent" stroke="#a9b492" d="M887.03,-136C887.03,-136 798.03,-136 798.03,-136 792.03,-136 786.03,-130 786.03,-124 786.03,-124 786.03,-112 786.03,-112 786.03,-106 792.03,-100 798.03,-100 798.03,-100 887.03,-100 887.03,-100 893.03,-100 899.03,-106 899.03,-112 899.03,-112 899.03,-124 899.03,-124 899.03,-130 893.03,-136 887.03,-136"/>
|
||||
<text text-anchor="middle" x="842.53" y="-115.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">lemma_2_3_beta_sim</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Plus_red1_context->lemma_2_3_beta_sim -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>Plus_red1_context->lemma_2_3_beta_sim</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M706.98,-99.96C729.54,-102.99 756.14,-106.55 779.71,-109.71"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="779.72,-111.83 785.95,-110.55 780.28,-107.67 779.72,-111.83"/>
|
||||
</g>
|
||||
<!-- Plus_step_trans -->
|
||||
<g id="node23" class="node">
|
||||
<title>Plus_step_trans</title>
|
||||
<g id="a_node23"><a xlink:title="Plus_step_trans theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1153" rx="49.8" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1150.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Plus_step_trans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Plus_trans -->
|
||||
<g id="node24" class="node">
|
||||
<title>Plus_trans</title>
|
||||
<g id="a_node24"><a xlink:title="Plus_trans theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1203" rx="35.59" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1200.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Plus_trans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- lemma_2_2_full_comp -->
|
||||
<g id="node28" class="node">
|
||||
<title>lemma_2_2_full_comp</title>
|
||||
<g id="a_node28"><a xlink:title="lemma_2_2_full_comp (section 2.2) theory/Metatheory.v proved">
|
||||
<path fill="transparent" stroke="#a9b492" d="M700.03,-161C700.03,-161 608.03,-161 608.03,-161 602.03,-161 596.03,-155 596.03,-149 596.03,-149 596.03,-137 596.03,-137 596.03,-131 602.03,-125 608.03,-125 608.03,-125 700.03,-125 700.03,-125 706.03,-125 712.03,-131 712.03,-137 712.03,-137 712.03,-149 712.03,-149 712.03,-155 706.03,-161 700.03,-161"/>
|
||||
<text text-anchor="middle" x="654.03" y="-140.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">lemma_2_2_full_comp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- full_comp_aux->lemma_2_2_full_comp -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>full_comp_aux->lemma_2_2_full_comp</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M521.65,-143C542.41,-143 567.24,-143 589.7,-143"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="589.96,-145.1 595.96,-143 589.96,-140.9 589.96,-145.1"/>
|
||||
</g>
|
||||
<!-- red1_root_fv -->
|
||||
<g id="node37" class="node">
|
||||
<title>red1_root_fv</title>
|
||||
<g id="a_node37"><a xlink:title="red1_root_fv theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="474.45" cy="-353" rx="42.29" ry="18"/>
|
||||
<text text-anchor="middle" x="474.45" y="-350.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red1_root_fv</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- fvs_zplug_lift->red1_root_fv -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>fvs_zplug_lift->red1_root_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M325.61,-353C355.33,-353 395.18,-353 426.01,-353"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="426.05,-355.1 432.05,-353 426.05,-350.9 426.05,-355.1"/>
|
||||
</g>
|
||||
<!-- lemma_2_1_fv_preserved -->
|
||||
<g id="node27" class="node">
|
||||
<title>lemma_2_1_fv_preserved</title>
|
||||
<g id="a_node27"><a xlink:title="lemma_2_1_fv_preserved (section 2.1) theory/Metatheory.v proved">
|
||||
<path fill="transparent" stroke="#a9b492" d="M896.03,-396C896.03,-396 789.03,-396 789.03,-396 783.03,-396 777.03,-390 777.03,-384 777.03,-384 777.03,-372 777.03,-372 777.03,-366 783.03,-360 789.03,-360 789.03,-360 896.03,-360 896.03,-360 902.03,-360 908.03,-366 908.03,-372 908.03,-372 908.03,-384 908.03,-384 908.03,-390 902.03,-396 896.03,-396"/>
|
||||
<text text-anchor="middle" x="842.53" y="-375.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">lemma_2_1_fv_preserved</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- lemma_2_1_fv_preserved->gen_fv_preserved -->
|
||||
<g id="edge30" class="edge">
|
||||
<title>lemma_2_1_fv_preserved->gen_fv_preserved</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M908.27,-378C929.77,-378 953.63,-378 974.81,-378"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="975.01,-380.1 981.01,-378 975.01,-375.9 975.01,-380.1"/>
|
||||
</g>
|
||||
<!-- lemma_2_1_fv_preserved->corpus_fv_preserved -->
|
||||
<g id="edge40" class="edge">
|
||||
<title>lemma_2_1_fv_preserved->corpus_fv_preserved</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M908.27,-361.14C932.66,-354.79 960.06,-347.66 983.18,-341.64"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="983.99,-343.59 989.27,-340.05 982.94,-339.53 983.99,-343.59"/>
|
||||
</g>
|
||||
<!-- lemma_2_2_full_comp->lemma_2_3_beta_sim -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>lemma_2_2_full_comp->lemma_2_3_beta_sim</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M712.26,-135.33C733.69,-132.46 758.13,-129.18 779.94,-126.26"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="780.35,-128.32 786.02,-125.44 779.79,-124.16 780.35,-128.32"/>
|
||||
</g>
|
||||
<!-- occurs_count_false -->
|
||||
<g id="node30" class="node">
|
||||
<title>occurs_count_false</title>
|
||||
<g id="a_node30"><a xlink:title="occurs_count_false theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-118" rx="58.78" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-115.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">occurs_count_false</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- occurs_count_zfill_plug -->
|
||||
<g id="node33" class="node">
|
||||
<title>occurs_count_zfill_plug</title>
|
||||
<g id="a_node33"><a xlink:title="occurs_count_zfill_plug theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-118" rx="70.37" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-115.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">occurs_count_zfill_plug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- occurs_count_false->occurs_count_zfill_plug -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>occurs_count_false->occurs_count_zfill_plug</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M132.42,-118C155.13,-118 181.49,-118 205.67,-118"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="205.77,-120.1 211.77,-118 205.77,-115.9 205.77,-120.1"/>
|
||||
</g>
|
||||
<!-- occurs_count_pos -->
|
||||
<g id="node31" class="node">
|
||||
<title>occurs_count_pos</title>
|
||||
<g id="a_node31"><a xlink:title="occurs_count_pos theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="474.45" cy="-18" rx="56.66" ry="18"/>
|
||||
<text text-anchor="middle" x="474.45" y="-15.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">occurs_count_pos</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- occurs_count_zero -->
|
||||
<g id="node32" class="node">
|
||||
<title>occurs_count_zero</title>
|
||||
<g id="a_node32"><a xlink:title="occurs_count_zero theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-18" rx="58.13" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-15.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">occurs_count_zero</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- occurs_count_zero->full_comp_aux -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>occurs_count_zero->full_comp_aux</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M321,-31.52C337.36,-37.41 352.87,-43 352.87,-43 352.87,-43 413.53,-93.3 448.8,-122.56"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="447.85,-124.5 453.81,-126.71 450.53,-121.26 447.85,-124.5"/>
|
||||
</g>
|
||||
<!-- occurs_count_zero->occurs_count_pos -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>occurs_count_zero->occurs_count_pos</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M340.96,-18C363.32,-18 388.98,-18 411.73,-18"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="411.75,-20.1 417.75,-18 411.75,-15.9 411.75,-20.1"/>
|
||||
</g>
|
||||
<!-- occurs_count_zfill_plug->full_comp_aux -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>occurs_count_zfill_plug->full_comp_aux</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M345.39,-126.15C370.85,-129.5 399.93,-133.33 423.93,-136.48"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="423.7,-138.57 429.92,-137.27 424.25,-134.41 423.7,-138.57"/>
|
||||
</g>
|
||||
<!-- occurs_lift_self -->
|
||||
<g id="node34" class="node">
|
||||
<title>occurs_lift_self</title>
|
||||
<g id="a_node34"><a xlink:title="occurs_lift_self theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-185" rx="47.19" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-182.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">occurs_lift_self</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- occurs_lift_self->occurs_count_zfill_plug -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>occurs_lift_self->occurs_count_zfill_plug</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M110.07,-173.48C143.75,-162.58 194.6,-146.11 232.17,-133.95"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="233.02,-135.88 238.08,-132.04 231.73,-131.89 233.02,-135.88"/>
|
||||
</g>
|
||||
<!-- occurs_lift_self->open_rec_zplug_lift -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>occurs_lift_self->open_rec_zplug_lift</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M117.38,-191.84C148.03,-196.73 189.63,-203.36 223.27,-208.72"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="223.19,-210.84 229.45,-209.71 223.86,-206.69 223.19,-210.84"/>
|
||||
</g>
|
||||
<!-- open_rec_zplug_lift->full_comp_aux -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>open_rec_zplug_lift->full_comp_aux</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M321.41,-204.33C337.62,-198.49 352.87,-193 352.87,-193 352.87,-193 401.07,-173.02 436.52,-158.32"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="437.35,-160.24 442.09,-156.01 435.74,-156.36 437.35,-160.24"/>
|
||||
</g>
|
||||
<!-- plug_fv_mono -->
|
||||
<g id="node36" class="node">
|
||||
<title>plug_fv_mono</title>
|
||||
<g id="a_node36"><a xlink:title="plug_fv_mono theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="474.45" cy="-403" rx="46.38" ry="18"/>
|
||||
<text text-anchor="middle" x="474.45" y="-400.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">plug_fv_mono</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red1r_fv -->
|
||||
<g id="node38" class="node">
|
||||
<title>red1r_fv</title>
|
||||
<g id="a_node38"><a xlink:title="red1r_fv theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="654.03" cy="-378" rx="31.35" ry="18"/>
|
||||
<text text-anchor="middle" x="654.03" y="-375.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red1r_fv</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- plug_fv_mono->red1r_fv -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>plug_fv_mono->red1r_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M518.44,-396.95C548.69,-392.69 588.71,-387.06 617.23,-383.04"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="617.85,-385.07 623.5,-382.16 617.26,-380.92 617.85,-385.07"/>
|
||||
</g>
|
||||
<!-- red1_root_fv->red1r_fv -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>red1_root_fv->red1r_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M514.86,-358.55C545.58,-362.87 587.86,-368.82 617.53,-373"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="617.43,-375.11 623.67,-373.87 618.02,-370.95 617.43,-375.11"/>
|
||||
</g>
|
||||
<!-- red1r_fv->lemma_2_1_fv_preserved -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>red1r_fv->lemma_2_1_fv_preserved</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M685.41,-378C708.44,-378 741.05,-378 770.52,-378"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="770.75,-380.1 776.75,-378 770.75,-375.9 770.75,-380.1"/>
|
||||
</g>
|
||||
<!-- zdecs_nonempty -->
|
||||
<g id="node39" class="node">
|
||||
<title>zdecs_nonempty</title>
|
||||
<g id="a_node39"><a xlink:title="zdecs_nonempty theory/Metatheory.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-68" rx="53.89" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-65.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">zdecs_nonempty</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- zdecs_nonempty->full_comp_aux -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>zdecs_nonempty->full_comp_aux</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M319.78,-81.09C336.58,-87.13 352.87,-93 352.87,-93 352.87,-93 401.07,-112.98 436.52,-127.68"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="435.74,-129.64 442.09,-129.99 437.35,-125.76 435.74,-129.64"/>
|
||||
</g>
|
||||
<!-- check_all_true -->
|
||||
<g id="node40" class="node">
|
||||
<title>check_all_true</title>
|
||||
<g id="a_node40"><a xlink:title="check_all_true theory/Random.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="1211.82" cy="-278" rx="46.53" ry="18"/>
|
||||
<text text-anchor="middle" x="1211.82" y="-275.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">check_all_true</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- check_all_true->enumerate_check -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>check_all_true->enumerate_check</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M1258.71,-278C1276.76,-278 1297.76,-278 1317.13,-278"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="1317.35,-280.1 1323.35,-278 1317.35,-275.9 1317.35,-280.1"/>
|
||||
</g>
|
||||
<!-- check_term_true->check_all_true -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>check_term_true->check_all_true</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M1090.47,-278C1112.21,-278 1137.31,-278 1158.94,-278"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="1158.95,-280.1 1164.95,-278 1158.95,-275.9 1158.95,-280.1"/>
|
||||
</g>
|
||||
<!-- gen_list_length -->
|
||||
<g id="node44" class="node">
|
||||
<title>gen_list_length</title>
|
||||
<g id="a_node44"><a xlink:title="gen_list_length theory/Random.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1253" rx="49.15" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1250.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">gen_list_length</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- close_rec_app -->
|
||||
<g id="node46" class="node">
|
||||
<title>close_rec_app</title>
|
||||
<g id="a_node46"><a xlink:title="close_rec_app theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1303" rx="46.38" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1300.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">close_rec_app</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- close_rec_esub -->
|
||||
<g id="node47" class="node">
|
||||
<title>close_rec_esub</title>
|
||||
<g id="a_node47"><a xlink:title="close_rec_esub theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1353" rx="48.49" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1350.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">close_rec_esub</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- close_rec_lam -->
|
||||
<g id="node48" class="node">
|
||||
<title>close_rec_lam</title>
|
||||
<g id="a_node48"><a xlink:title="close_rec_lam theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1403" rx="45.72" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1400.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">close_rec_lam</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_app -->
|
||||
<g id="node49" class="node">
|
||||
<title>open_rec_app</title>
|
||||
<g id="a_node49"><a xlink:title="open_rec_app theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1453" rx="46.38" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1450.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_app</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_esub -->
|
||||
<g id="node50" class="node">
|
||||
<title>open_rec_esub</title>
|
||||
<g id="a_node50"><a xlink:title="open_rec_esub theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1503" rx="48.49" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1500.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_esub</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_lam -->
|
||||
<g id="node51" class="node">
|
||||
<title>open_rec_lam</title>
|
||||
<g id="a_node51"><a xlink:title="open_rec_lam theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1553" rx="45.72" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1550.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_lam</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_lc -->
|
||||
<g id="node52" class="node">
|
||||
<title>open_rec_lc</title>
|
||||
<g id="a_node52"><a xlink:title="open_rec_lc theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="282.44" cy="-1603" rx="40.33" ry="18"/>
|
||||
<text text-anchor="middle" x="282.44" y="-1600.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_lc</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_lc_atom -->
|
||||
<g id="node53" class="node">
|
||||
<title>open_rec_lc_atom</title>
|
||||
<g id="a_node53"><a xlink:title="open_rec_lc_atom theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1603" rx="56.66" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1600.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_lc_atom</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_lc_atom->open_rec_lc -->
|
||||
<g id="edge36" class="edge">
|
||||
<title>open_rec_lc_atom->open_rec_lc</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M130.23,-1603C163.33,-1603 204.79,-1603 235.92,-1603"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="236.01,-1605.1 242.01,-1603 236.01,-1600.9 236.01,-1605.1"/>
|
||||
</g>
|
||||
<!-- subst_app -->
|
||||
<g id="node54" class="node">
|
||||
<title>subst_app</title>
|
||||
<g id="a_node54"><a xlink:title="subst_app theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1653" rx="36.25" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1650.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_app</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subst_esub -->
|
||||
<g id="node55" class="node">
|
||||
<title>subst_esub</title>
|
||||
<g id="a_node55"><a xlink:title="subst_esub theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1703" rx="39.02" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1700.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_esub</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subst_lam -->
|
||||
<g id="node56" class="node">
|
||||
<title>subst_lam</title>
|
||||
<g id="a_node56"><a xlink:title="subst_lam theory/Substitution.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="73.5" cy="-1753" rx="35.59" ry="18"/>
|
||||
<text text-anchor="middle" x="73.5" y="-1750.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subst_lam</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 43 KiB |
@@ -0,0 +1,52 @@
|
||||
digraph deps {
|
||||
rankdir=LR;
|
||||
bgcolor="transparent";
|
||||
splines=polyline;
|
||||
concentrate=true;
|
||||
nodesep=0.2;
|
||||
ranksep=0.9;
|
||||
node [fontname=Inter, fontsize=9];
|
||||
edge [fontname=Inter, fontsize=8, color="#8f9780", fontcolor="#c9d1bb", arrowsize=0.6, penwidth=0.8];
|
||||
graph [fontname=Inter, fontsize=12, labelloc=t, fontcolor="#c9d1bb", label=<<B>Theorem dependencies M3, 16 results</B>>];
|
||||
Plus_to_Star [label="Plus_to_Star\\n(M2)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="Plus_to_Star theory/Closure.v proved"];
|
||||
occurs_count_zero [label="occurs_count_zero\\n(M2)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="occurs_count_zero theory/Metatheory.v proved"];
|
||||
occurs_count_zfill_plug [label="occurs_count_zfill_plug\\n(M2)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="occurs_count_zfill_plug theory/Metatheory.v proved"];
|
||||
open_rec_occurs_false [label="open_rec_occurs_false\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="open_rec_occurs_false theory/Binding.v proved"];
|
||||
open_rec_zplug_lift [label="open_rec_zplug_lift\\n(M2)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="open_rec_zplug_lift theory/Metatheory.v proved"];
|
||||
zdecs_nonempty [label="zdecs_nonempty\\n(M2)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="zdecs_nonempty theory/Metatheory.v proved"];
|
||||
zdecs_sound [label="zdecs_sound\\n(M1)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="zdecs_sound theory/Reduction.v proved"];
|
||||
R_Gc_disjoint [label="R_Gc_disjoint", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="R_Gc_disjoint theory/Subsystem.v proved"];
|
||||
Star_red_sub_context [label="Star_red_sub_context", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Star_red_sub_context theory/Subsystem.v proved"];
|
||||
es_count_plug_mono [label="es_count_plug_mono", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="es_count_plug_mono theory/Subsystem.v proved"];
|
||||
full_comp_aux_sub [label="full_comp_aux_sub", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="full_comp_aux_sub theory/Subsystem.v proved"];
|
||||
occurs_zfill [label="occurs_zfill", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="occurs_zfill theory/Subsystem.v proved"];
|
||||
plus_red_sub_full_comp [label="plus_red_sub_full_comp", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="plus_red_sub_full_comp theory/Subsystem.v proved"];
|
||||
red_gc_measure [label="red_gc_measure", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red_gc_measure theory/Subsystem.v proved"];
|
||||
red_gc_terminates [label="red_gc_terminates", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red_gc_terminates theory/Subsystem.v proved"];
|
||||
red_gc_to_red_sub [label="red_gc_to_red_sub", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red_gc_to_red_sub theory/Subsystem.v proved"];
|
||||
red_sub_context [label="red_sub_context", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red_sub_context theory/Subsystem.v proved"];
|
||||
red_sub_gc [label="red_sub_gc", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red_sub_gc theory/Subsystem.v proved"];
|
||||
red_sub_r [label="red_sub_r", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red_sub_r theory/Subsystem.v proved"];
|
||||
red_sub_root_to_red1 [label="red_sub_root_to_red1", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red_sub_root_to_red1 theory/Subsystem.v proved"];
|
||||
red_sub_to_red1 [label="red_sub_to_red1", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red_sub_to_red1 theory/Subsystem.v proved"];
|
||||
star_red_sub_full_comp [label="star_red_sub_full_comp", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="star_red_sub_full_comp theory/Subsystem.v proved"];
|
||||
zfill_occurs0 [label="zfill_occurs0", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="zfill_occurs0 theory/Subsystem.v proved"];
|
||||
red_sub_root_to_red1 -> red_sub_to_red1;
|
||||
occurs_zfill -> zfill_occurs0;
|
||||
zfill_occurs0 -> R_Gc_disjoint;
|
||||
red_sub_context -> Star_red_sub_context;
|
||||
occurs_count_zero -> full_comp_aux_sub;
|
||||
occurs_count_zfill_plug -> full_comp_aux_sub;
|
||||
open_rec_occurs_false -> full_comp_aux_sub;
|
||||
open_rec_zplug_lift -> full_comp_aux_sub;
|
||||
red_sub_gc -> full_comp_aux_sub;
|
||||
red_sub_r -> full_comp_aux_sub;
|
||||
zdecs_nonempty -> full_comp_aux_sub;
|
||||
zdecs_sound -> full_comp_aux_sub;
|
||||
full_comp_aux_sub -> plus_red_sub_full_comp;
|
||||
Plus_to_Star -> star_red_sub_full_comp;
|
||||
plus_red_sub_full_comp -> star_red_sub_full_comp;
|
||||
es_count_plug_mono -> red_gc_measure;
|
||||
red_gc_measure -> red_gc_terminates;
|
||||
red_sub_gc -> red_gc_to_red_sub;
|
||||
}
|
||||
|
After Width: | Height: | Size: 112 KiB |
@@ -0,0 +1,328 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.42.4 (0)
|
||||
-->
|
||||
<!-- Title: deps Pages: 1 -->
|
||||
<svg width="772pt" height="615pt"
|
||||
viewBox="0.00 0.00 771.85 615.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 611)">
|
||||
<title>deps</title>
|
||||
<text text-anchor="start" x="252.42" y="-594.4" font-family="Inter" font-weight="bold" font-size="12.00" fill="#c9d1bb">Theorem dependencies M3, 16 results</text>
|
||||
<!-- Plus_to_Star -->
|
||||
<g id="node1" class="node">
|
||||
<title>Plus_to_Star</title>
|
||||
<g id="a_node1"><a xlink:title="Plus_to_Star theory/Closure.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M524.88,-261C524.88,-261 447.88,-261 447.88,-261 441.88,-261 435.88,-255 435.88,-249 435.88,-249 435.88,-237 435.88,-237 435.88,-231 441.88,-225 447.88,-225 447.88,-225 524.88,-225 524.88,-225 530.88,-225 536.88,-231 536.88,-237 536.88,-237 536.88,-249 536.88,-249 536.88,-255 530.88,-261 524.88,-261"/>
|
||||
<text text-anchor="middle" x="486.38" y="-240.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Plus_to_Star\n(M2)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- star_red_sub_full_comp -->
|
||||
<g id="node22" class="node">
|
||||
<title>star_red_sub_full_comp</title>
|
||||
<g id="a_node22"><a xlink:title="star_red_sub_full_comp theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="693.41" cy="-218" rx="70.37" ry="18"/>
|
||||
<text text-anchor="middle" x="693.41" y="-215.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">star_red_sub_full_comp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Plus_to_Star->star_red_sub_full_comp -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>Plus_to_Star->star_red_sub_full_comp</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M537.01,-236.95C563.01,-233.78 595.27,-229.85 623.64,-226.39"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="623.93,-228.47 629.63,-225.66 623.42,-224.3 623.93,-228.47"/>
|
||||
</g>
|
||||
<!-- occurs_count_zero -->
|
||||
<g id="node2" class="node">
|
||||
<title>occurs_count_zero</title>
|
||||
<g id="a_node2"><a xlink:title="occurs_count_zero theory/Metatheory.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M129.5,-386C129.5,-386 22.5,-386 22.5,-386 16.5,-386 10.5,-380 10.5,-374 10.5,-374 10.5,-362 10.5,-362 10.5,-356 16.5,-350 22.5,-350 22.5,-350 129.5,-350 129.5,-350 135.5,-350 141.5,-356 141.5,-362 141.5,-362 141.5,-374 141.5,-374 141.5,-380 135.5,-386 129.5,-386"/>
|
||||
<text text-anchor="middle" x="76" y="-365.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">occurs_count_zero\n(M2)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- full_comp_aux_sub -->
|
||||
<g id="node11" class="node">
|
||||
<title>full_comp_aux_sub</title>
|
||||
<g id="a_node11"><a xlink:title="full_comp_aux_sub theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="283.4" cy="-193" rx="58.78" ry="18"/>
|
||||
<text text-anchor="middle" x="283.4" y="-190.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">full_comp_aux_sub</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- occurs_count_zero->full_comp_aux_sub -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>occurs_count_zero->full_comp_aux_sub</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M131.11,-349.96C142.94,-346.02 152,-343 152,-343 152,-343 226.9,-256.84 263.17,-215.12"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="264.83,-216.41 267.18,-210.5 261.66,-213.65 264.83,-216.41"/>
|
||||
</g>
|
||||
<!-- occurs_count_zfill_plug -->
|
||||
<g id="node3" class="node">
|
||||
<title>occurs_count_zfill_plug</title>
|
||||
<g id="a_node3"><a xlink:title="occurs_count_zfill_plug theory/Metatheory.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M140,-336C140,-336 12,-336 12,-336 6,-336 0,-330 0,-324 0,-324 0,-312 0,-312 0,-306 6,-300 12,-300 12,-300 140,-300 140,-300 146,-300 152,-306 152,-312 152,-312 152,-324 152,-324 152,-330 146,-336 140,-336"/>
|
||||
<text text-anchor="middle" x="76" y="-315.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">occurs_count_zfill_plug\n(M2)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- occurs_count_zfill_plug->full_comp_aux_sub -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>occurs_count_zfill_plug->full_comp_aux_sub</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M131.11,-299.96C142.94,-296.02 152,-293 152,-293 152,-293 217.44,-242.81 255.6,-213.55"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="257.09,-215.06 260.57,-209.74 254.53,-211.72 257.09,-215.06"/>
|
||||
</g>
|
||||
<!-- open_rec_occurs_false -->
|
||||
<g id="node4" class="node">
|
||||
<title>open_rec_occurs_false</title>
|
||||
<g id="a_node4"><a xlink:title="open_rec_occurs_false theory/Binding.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M137.5,-286C137.5,-286 14.5,-286 14.5,-286 8.5,-286 2.5,-280 2.5,-274 2.5,-274 2.5,-262 2.5,-262 2.5,-256 8.5,-250 14.5,-250 14.5,-250 137.5,-250 137.5,-250 143.5,-250 149.5,-256 149.5,-262 149.5,-262 149.5,-274 149.5,-274 149.5,-280 143.5,-286 137.5,-286"/>
|
||||
<text text-anchor="middle" x="76" y="-265.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_occurs_false\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_occurs_false->full_comp_aux_sub -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>open_rec_occurs_false->full_comp_aux_sub</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M131.11,-249.96C142.94,-246.02 152,-243 152,-243 152,-243 202,-223.83 240.07,-209.23"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="241.22,-211.04 246.07,-206.93 239.72,-207.12 241.22,-211.04"/>
|
||||
</g>
|
||||
<!-- open_rec_zplug_lift -->
|
||||
<g id="node5" class="node">
|
||||
<title>open_rec_zplug_lift</title>
|
||||
<g id="a_node5"><a xlink:title="open_rec_zplug_lift theory/Metatheory.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M130.5,-236C130.5,-236 21.5,-236 21.5,-236 15.5,-236 9.5,-230 9.5,-224 9.5,-224 9.5,-212 9.5,-212 9.5,-206 15.5,-200 21.5,-200 21.5,-200 130.5,-200 130.5,-200 136.5,-200 142.5,-206 142.5,-212 142.5,-212 142.5,-224 142.5,-224 142.5,-230 136.5,-236 130.5,-236"/>
|
||||
<text text-anchor="middle" x="76" y="-215.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">open_rec_zplug_lift\n(M2)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- open_rec_zplug_lift->full_comp_aux_sub -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>open_rec_zplug_lift->full_comp_aux_sub</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M142.55,-210.02C168.1,-206.91 197.18,-203.37 222.19,-200.33"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="222.75,-202.38 228.45,-199.57 222.24,-198.21 222.75,-202.38"/>
|
||||
</g>
|
||||
<!-- zdecs_nonempty -->
|
||||
<g id="node6" class="node">
|
||||
<title>zdecs_nonempty</title>
|
||||
<g id="a_node6"><a xlink:title="zdecs_nonempty theory/Metatheory.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M125.5,-186C125.5,-186 26.5,-186 26.5,-186 20.5,-186 14.5,-180 14.5,-174 14.5,-174 14.5,-162 14.5,-162 14.5,-156 20.5,-150 26.5,-150 26.5,-150 125.5,-150 125.5,-150 131.5,-150 137.5,-156 137.5,-162 137.5,-162 137.5,-174 137.5,-174 137.5,-180 131.5,-186 125.5,-186"/>
|
||||
<text text-anchor="middle" x="76" y="-165.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">zdecs_nonempty\n(M2)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- zdecs_nonempty->full_comp_aux_sub -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>zdecs_nonempty->full_comp_aux_sub</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M137.51,-175.37C164.25,-178.62 195.6,-182.44 222.28,-185.68"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="222.04,-187.77 228.25,-186.41 222.55,-183.6 222.04,-187.77"/>
|
||||
</g>
|
||||
<!-- zdecs_sound -->
|
||||
<g id="node7" class="node">
|
||||
<title>zdecs_sound</title>
|
||||
<g id="a_node7"><a xlink:title="zdecs_sound theory/Reduction.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M116,-136C116,-136 36,-136 36,-136 30,-136 24,-130 24,-124 24,-124 24,-112 24,-112 24,-106 30,-100 36,-100 36,-100 116,-100 116,-100 122,-100 128,-106 128,-112 128,-112 128,-124 128,-124 128,-130 122,-136 116,-136"/>
|
||||
<text text-anchor="middle" x="76" y="-115.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">zdecs_sound\n(M1)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- zdecs_sound->full_comp_aux_sub -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>zdecs_sound->full_comp_aux_sub</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M128.27,-135.09C141.45,-139.48 152,-143 152,-143 152,-143 202,-162.17 240.07,-176.77"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="239.72,-178.88 246.07,-179.07 241.22,-174.96 239.72,-178.88"/>
|
||||
</g>
|
||||
<!-- R_Gc_disjoint -->
|
||||
<g id="node8" class="node">
|
||||
<title>R_Gc_disjoint</title>
|
||||
<g id="a_node8"><a xlink:title="R_Gc_disjoint theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="486.38" cy="-418" rx="43.76" ry="18"/>
|
||||
<text text-anchor="middle" x="486.38" y="-415.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">R_Gc_disjoint</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Star_red_sub_context -->
|
||||
<g id="node9" class="node">
|
||||
<title>Star_red_sub_context</title>
|
||||
<g id="a_node9"><a xlink:title="Star_red_sub_context theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="283.4" cy="-468" rx="66.29" ry="18"/>
|
||||
<text text-anchor="middle" x="283.4" y="-465.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Star_red_sub_context</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- es_count_plug_mono -->
|
||||
<g id="node10" class="node">
|
||||
<title>es_count_plug_mono</title>
|
||||
<g id="a_node10"><a xlink:title="es_count_plug_mono theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="76" cy="-518" rx="64.83" ry="18"/>
|
||||
<text text-anchor="middle" x="76" y="-515.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">es_count_plug_mono</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red_gc_measure -->
|
||||
<g id="node14" class="node">
|
||||
<title>red_gc_measure</title>
|
||||
<g id="a_node14"><a xlink:title="red_gc_measure theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="283.4" cy="-518" rx="52.58" ry="18"/>
|
||||
<text text-anchor="middle" x="283.4" y="-515.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red_gc_measure</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- es_count_plug_mono->red_gc_measure -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>es_count_plug_mono->red_gc_measure</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M140.86,-518C167.57,-518 198.39,-518 224.44,-518"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="224.61,-520.1 230.61,-518 224.61,-515.9 224.61,-520.1"/>
|
||||
</g>
|
||||
<!-- plus_red_sub_full_comp -->
|
||||
<g id="node13" class="node">
|
||||
<title>plus_red_sub_full_comp</title>
|
||||
<g id="a_node13"><a xlink:title="plus_red_sub_full_comp theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="486.38" cy="-193" rx="71.68" ry="18"/>
|
||||
<text text-anchor="middle" x="486.38" y="-190.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">plus_red_sub_full_comp</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- full_comp_aux_sub->plus_red_sub_full_comp -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>full_comp_aux_sub->plus_red_sub_full_comp</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M342.53,-193C363.09,-193 386.54,-193 408.42,-193"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="408.54,-195.1 414.54,-193 408.54,-190.9 408.54,-195.1"/>
|
||||
</g>
|
||||
<!-- occurs_zfill -->
|
||||
<g id="node12" class="node">
|
||||
<title>occurs_zfill</title>
|
||||
<g id="a_node12"><a xlink:title="occurs_zfill theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="76" cy="-418" rx="38.21" ry="18"/>
|
||||
<text text-anchor="middle" x="76" y="-415.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">occurs_zfill</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- zfill_occurs0 -->
|
||||
<g id="node23" class="node">
|
||||
<title>zfill_occurs0</title>
|
||||
<g id="a_node23"><a xlink:title="zfill_occurs0 theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="283.4" cy="-418" rx="41.64" ry="18"/>
|
||||
<text text-anchor="middle" x="283.4" y="-415.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">zfill_occurs0</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- occurs_zfill->zfill_occurs0 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>occurs_zfill->zfill_occurs0</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M114.2,-418C148.18,-418 198.6,-418 235.37,-418"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="235.6,-420.1 241.6,-418 235.6,-415.9 235.6,-420.1"/>
|
||||
</g>
|
||||
<!-- plus_red_sub_full_comp->star_red_sub_full_comp -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>plus_red_sub_full_comp->star_red_sub_full_comp</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M551.13,-200.77C574.01,-203.56 599.9,-206.72 623.22,-209.56"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="623.2,-211.68 629.41,-210.32 623.7,-207.51 623.2,-211.68"/>
|
||||
</g>
|
||||
<!-- red_gc_terminates -->
|
||||
<g id="node15" class="node">
|
||||
<title>red_gc_terminates</title>
|
||||
<g id="a_node15"><a xlink:title="red_gc_terminates theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="486.38" cy="-518" rx="58.13" ry="18"/>
|
||||
<text text-anchor="middle" x="486.38" y="-515.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red_gc_terminates</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red_gc_measure->red_gc_terminates -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>red_gc_measure->red_gc_terminates</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M336.15,-518C362.21,-518 394.04,-518 421.6,-518"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="421.78,-520.1 427.78,-518 421.78,-515.9 421.78,-520.1"/>
|
||||
</g>
|
||||
<!-- red_gc_to_red_sub -->
|
||||
<g id="node16" class="node">
|
||||
<title>red_gc_to_red_sub</title>
|
||||
<g id="a_node16"><a xlink:title="red_gc_to_red_sub theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="283.4" cy="-18" rx="58.13" ry="18"/>
|
||||
<text text-anchor="middle" x="283.4" y="-15.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red_gc_to_red_sub</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red_sub_context -->
|
||||
<g id="node17" class="node">
|
||||
<title>red_sub_context</title>
|
||||
<g id="a_node17"><a xlink:title="red_sub_context theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="76" cy="-468" rx="53.23" ry="18"/>
|
||||
<text text-anchor="middle" x="76" y="-465.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red_sub_context</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red_sub_context->Star_red_sub_context -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>red_sub_context->Star_red_sub_context</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M129.36,-468C154.11,-468 184.05,-468 210.85,-468"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="210.88,-470.1 216.88,-468 210.88,-465.9 210.88,-470.1"/>
|
||||
</g>
|
||||
<!-- red_sub_gc -->
|
||||
<g id="node18" class="node">
|
||||
<title>red_sub_gc</title>
|
||||
<g id="a_node18"><a xlink:title="red_sub_gc theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="76" cy="-18" rx="39.02" ry="18"/>
|
||||
<text text-anchor="middle" x="76" y="-15.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red_sub_gc</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red_sub_gc->full_comp_aux_sub -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>red_sub_gc->full_comp_aux_sub</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M108.37,-28.46C128.92,-35.31 152,-43 152,-43 152,-43 226.9,-129.16 263.17,-170.88"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="261.66,-172.35 267.18,-175.5 264.83,-169.59 261.66,-172.35"/>
|
||||
</g>
|
||||
<!-- red_sub_gc->red_gc_to_red_sub -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>red_sub_gc->red_gc_to_red_sub</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M115.63,-18C144.62,-18 184.95,-18 218.69,-18"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="218.91,-20.1 224.91,-18 218.91,-15.9 218.91,-20.1"/>
|
||||
</g>
|
||||
<!-- red_sub_r -->
|
||||
<g id="node19" class="node">
|
||||
<title>red_sub_r</title>
|
||||
<g id="a_node19"><a xlink:title="red_sub_r theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="76" cy="-68" rx="35.44" ry="18"/>
|
||||
<text text-anchor="middle" x="76" y="-65.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red_sub_r</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red_sub_r->full_comp_aux_sub -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>red_sub_r->full_comp_aux_sub</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M106.21,-77.74C127.27,-84.76 152,-93 152,-93 152,-93 217.44,-143.19 255.6,-172.45"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="254.53,-174.28 260.57,-176.26 257.09,-170.94 254.53,-174.28"/>
|
||||
</g>
|
||||
<!-- red_sub_root_to_red1 -->
|
||||
<g id="node20" class="node">
|
||||
<title>red_sub_root_to_red1</title>
|
||||
<g id="a_node20"><a xlink:title="red_sub_root_to_red1 theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="76" cy="-568" rx="65.64" ry="18"/>
|
||||
<text text-anchor="middle" x="76" y="-565.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red_sub_root_to_red1</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red_sub_to_red1 -->
|
||||
<g id="node21" class="node">
|
||||
<title>red_sub_to_red1</title>
|
||||
<g id="a_node21"><a xlink:title="red_sub_to_red1 theory/Subsystem.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="283.4" cy="-568" rx="53.23" ry="18"/>
|
||||
<text text-anchor="middle" x="283.4" y="-565.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red_sub_to_red1</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red_sub_root_to_red1->red_sub_to_red1 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>red_sub_root_to_red1->red_sub_to_red1</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M141.99,-568C168.32,-568 198.49,-568 224.1,-568"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="224.17,-570.1 230.17,-568 224.17,-565.9 224.17,-570.1"/>
|
||||
</g>
|
||||
<!-- zfill_occurs0->R_Gc_disjoint -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>zfill_occurs0->R_Gc_disjoint</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M325.07,-418C357.14,-418 401.99,-418 436.1,-418"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="436.34,-420.1 442.34,-418 436.34,-415.9 436.34,-420.1"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 18 KiB |
@@ -0,0 +1,19 @@
|
||||
digraph deps {
|
||||
rankdir=LR;
|
||||
bgcolor="transparent";
|
||||
splines=polyline;
|
||||
concentrate=true;
|
||||
nodesep=0.2;
|
||||
ranksep=0.9;
|
||||
node [fontname=Inter, fontsize=9];
|
||||
edge [fontname=Inter, fontsize=8, color="#8f9780", fontcolor="#c9d1bb", arrowsize=0.6, penwidth=0.8];
|
||||
graph [fontname=Inter, fontsize=12, labelloc=t, fontcolor="#c9d1bb", label=<<B>Theorem dependencies M4, 6 results</B>>];
|
||||
par_context [label="par_context", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="par_context theory/Parallel.v proved"];
|
||||
par_red1_iff [label="par_red1_iff", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="par_red1_iff theory/Parallel.v proved"];
|
||||
par_reflexive [label="par_reflexive", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="par_reflexive theory/Parallel.v proved"];
|
||||
par_to_red1_or_eq [label="par_to_red1_or_eq", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="par_to_red1_or_eq theory/Parallel.v proved"];
|
||||
red1_in_par [label="red1_in_par", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red1_in_par theory/Parallel.v proved"];
|
||||
red1_or_eq_to_par [label="red1_or_eq_to_par", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="red1_or_eq_to_par theory/Parallel.v proved"];
|
||||
par_red1_iff -> par_to_red1_or_eq;
|
||||
par_red1_iff -> red1_or_eq_to_par;
|
||||
}
|
||||
|
After Width: | Height: | Size: 27 KiB |
@@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.42.4 (0)
|
||||
-->
|
||||
<!-- Title: deps Pages: 1 -->
|
||||
<svg width="275pt" height="215pt"
|
||||
viewBox="0.00 0.00 275.00 215.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 211)">
|
||||
<title>deps</title>
|
||||
<text text-anchor="start" x="8" y="-194.4" font-family="Inter" font-weight="bold" font-size="12.00" fill="#c9d1bb">Theorem dependencies M4, 6 results</text>
|
||||
<!-- par_context -->
|
||||
<g id="node1" class="node">
|
||||
<title>par_context</title>
|
||||
<g id="a_node1"><a xlink:title="par_context theory/Parallel.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="43.26" cy="-18" rx="40.98" ry="18"/>
|
||||
<text text-anchor="middle" x="43.26" y="-15.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">par_context</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- par_red1_iff -->
|
||||
<g id="node2" class="node">
|
||||
<title>par_red1_iff</title>
|
||||
<g id="a_node2"><a xlink:title="par_red1_iff theory/Parallel.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="43.26" cy="-68" rx="40.33" ry="18"/>
|
||||
<text text-anchor="middle" x="43.26" y="-65.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">par_red1_iff</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- par_to_red1_or_eq -->
|
||||
<g id="node4" class="node">
|
||||
<title>par_to_red1_or_eq</title>
|
||||
<g id="a_node4"><a xlink:title="par_to_red1_or_eq theory/Parallel.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="208.72" cy="-93" rx="57.97" ry="18"/>
|
||||
<text text-anchor="middle" x="208.72" y="-90.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">par_to_red1_or_eq</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- par_red1_iff->par_to_red1_or_eq -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>par_red1_iff->par_to_red1_or_eq</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M81.77,-73.74C102.1,-76.85 127.66,-80.75 150.43,-84.24"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="150.21,-86.33 156.46,-85.16 150.85,-82.18 150.21,-86.33"/>
|
||||
</g>
|
||||
<!-- red1_or_eq_to_par -->
|
||||
<g id="node6" class="node">
|
||||
<title>red1_or_eq_to_par</title>
|
||||
<g id="a_node6"><a xlink:title="red1_or_eq_to_par theory/Parallel.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="208.72" cy="-43" rx="57.97" ry="18"/>
|
||||
<text text-anchor="middle" x="208.72" y="-40.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red1_or_eq_to_par</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- par_red1_iff->red1_or_eq_to_par -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>par_red1_iff->red1_or_eq_to_par</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M81.77,-62.26C102.1,-59.15 127.66,-55.25 150.43,-51.76"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="150.85,-53.82 156.46,-50.84 150.21,-49.67 150.85,-53.82"/>
|
||||
</g>
|
||||
<!-- par_reflexive -->
|
||||
<g id="node3" class="node">
|
||||
<title>par_reflexive</title>
|
||||
<g id="a_node3"><a xlink:title="par_reflexive theory/Parallel.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="43.26" cy="-118" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="43.26" y="-115.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">par_reflexive</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- red1_in_par -->
|
||||
<g id="node5" class="node">
|
||||
<title>red1_in_par</title>
|
||||
<g id="a_node5"><a xlink:title="red1_in_par theory/Parallel.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="43.26" cy="-168" rx="40.33" ry="18"/>
|
||||
<text text-anchor="middle" x="43.26" y="-165.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">red1_in_par</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.6 KiB |
@@ -0,0 +1,126 @@
|
||||
digraph deps {
|
||||
rankdir=LR;
|
||||
bgcolor="transparent";
|
||||
splines=polyline;
|
||||
concentrate=true;
|
||||
nodesep=0.2;
|
||||
ranksep=0.9;
|
||||
node [fontname=Inter, fontsize=9];
|
||||
edge [fontname=Inter, fontsize=8, color="#8f9780", fontcolor="#c9d1bb", arrowsize=0.6, penwidth=0.8];
|
||||
graph [fontname=Inter, fontsize=12, labelloc=t, fontcolor="#c9d1bb", label=<<B>Theorem dependencies M5, 69 results</B>>];
|
||||
lemma_2_2_full_comp [label="lemma_2_2_full_comp\\n(M2)", shape=box, style="rounded,dashed,filled", fillcolor="transparent", color="#8f9780", penwidth=0.9, fontcolor="#c9d1bb", tooltip="lemma_2_2_full_comp (section 2.2) theory/Metatheory.v proved"];
|
||||
Plus_mred_of_Plus_red1 [label="Plus_mred_of_Plus_red1", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Plus_mred_of_Plus_red1 theory/Metaterm.v proved"];
|
||||
mfvs_close_m [label="mfvs_close_m", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mfvs_close_m theory/Metaterm.v proved"];
|
||||
mfvs_lift_m [label="mfvs_lift_m", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mfvs_lift_m theory/Metaterm.v proved"];
|
||||
mfvs_open_m [label="mfvs_open_m", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mfvs_open_m theory/Metaterm.v proved"];
|
||||
mred_B_intro [label="mred_B_intro", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mred_B_intro theory/Metaterm.v proved"];
|
||||
mred_context [label="mred_context", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mred_context theory/Metaterm.v proved"];
|
||||
mred_full_comp_pure [label="mred_full_comp_pure", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mred_full_comp_pure theory/Metaterm.v proved"];
|
||||
mred_gc_intro [label="mred_gc_intro", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mred_gc_intro theory/Metaterm.v proved"];
|
||||
mred_of_red1 [label="mred_of_red1", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mred_of_red1 theory/Metaterm.v proved"];
|
||||
mred_plus_one [label="mred_plus_one", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mred_plus_one theory/Metaterm.v proved"];
|
||||
mred_r_intro [label="mred_r_intro", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mred_r_intro theory/Metaterm.v proved"];
|
||||
mred_term_context [label="mred_term_context", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="mred_term_context theory/Metaterm.v proved"];
|
||||
of_trm_close [label="of_trm_close", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="of_trm_close theory/Metaterm.v proved"];
|
||||
of_trm_fvs [label="of_trm_fvs", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="of_trm_fvs theory/Metaterm.v proved"];
|
||||
of_trm_injective [label="of_trm_injective", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="of_trm_injective theory/Metaterm.v proved"];
|
||||
of_trm_lift [label="of_trm_lift", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="of_trm_lift theory/Metaterm.v proved"];
|
||||
of_trm_moccurs [label="of_trm_moccurs", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="of_trm_moccurs theory/Metaterm.v proved"];
|
||||
of_trm_moccurs0 [label="of_trm_moccurs0", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="of_trm_moccurs0 theory/Metaterm.v proved"];
|
||||
of_trm_open [label="of_trm_open", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="of_trm_open theory/Metaterm.v proved"];
|
||||
of_trm_plug [label="of_trm_plug", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="of_trm_plug theory/Metaterm.v proved"];
|
||||
PlusN_to_StarN [label="PlusN_to_StarN", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="PlusN_to_StarN theory/NamedEs.v proved"];
|
||||
StarN_one_trans [label="StarN_one_trans", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="StarN_one_trans theory/NamedEs.v proved"];
|
||||
StarN_subred_context [label="StarN_subred_context", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="StarN_subred_context theory/NamedEs.v proved"];
|
||||
StarN_trans [label="StarN_trans", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="StarN_trans theory/NamedEs.v proved"];
|
||||
nred_stable_source [label="nred_stable_source", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nred_stable_source theory/NamedEs.v proved"];
|
||||
nred_stable_target [label="nred_stable_target", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nred_stable_target theory/NamedEs.v proved"];
|
||||
subred_Es_l [label="subred_Es_l", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subred_Es_l theory/NamedEs.v proved"];
|
||||
subred_Es_lr [label="subred_Es_lr", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subred_Es_lr theory/NamedEs.v proved"];
|
||||
subred_Es_r [label="subred_Es_r", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subred_Es_r theory/NamedEs.v proved"];
|
||||
subred_context [label="subred_context", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subred_context theory/NamedEs.v proved"];
|
||||
subred_context_rule [label="subred_context_rule", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subred_context_rule theory/NamedEs.v proved"];
|
||||
subred_intro [label="subred_intro", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subred_intro theory/NamedEs.v proved"];
|
||||
subred_nred [label="subred_nred", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subred_nred theory/NamedEs.v proved"];
|
||||
subred_of_Es_nred_Es [label="subred_of_Es_nred_Es", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subred_of_Es_nred_Es theory/NamedEs.v proved"];
|
||||
A1_C_related [label="A1_C_related", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="A1_C_related theory/NamedMeasure.v proved"];
|
||||
A1_Mx_differ [label="A1_Mx_differ", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="A1_Mx_differ theory/NamedMeasure.v proved"];
|
||||
A1_not_invariant [label="A1_not_invariant", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="A1_not_invariant theory/NamedMeasure.v proved"];
|
||||
A1_s_differ [label="A1_s_differ", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="A1_s_differ theory/NamedMeasure.v proved"];
|
||||
Gc_special_nondecrease [label="Gc_special_nondecrease", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Gc_special_nondecrease theory/NamedMeasure.v proved"];
|
||||
Mx_fresh_fails [label="Mx_fresh_fails", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Mx_fresh_fails theory/NamedMeasure.v proved"];
|
||||
Mx_ge_0 [label="Mx_ge_0", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Mx_ge_0 theory/NamedMeasure.v proved"];
|
||||
current_sm_not_terminating [label="current_sm_not_terminating", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="current_sm_not_terminating theory/NamedMeasure.v proved"];
|
||||
current_subred_not_terminating [label="current_subred_not_terminating", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="current_subred_not_terminating theory/NamedMeasure.v proved"];
|
||||
head_has_pos [label="head_has_pos", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="head_has_pos theory/NamedMeasure.v proved"];
|
||||
le_mul_of_one_le [label="le_mul_of_one_le", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="le_mul_of_one_le theory/NamedMeasure.v proved"];
|
||||
nfv_annot_bound_example [label="nfv_annot_bound_example", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nfv_annot_bound_example theory/NamedMeasure.v proved"];
|
||||
nocc_le_Mx [label="nocc_le_Mx", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nocc_le_Mx theory/NamedMeasure.v proved"];
|
||||
nred_Gc_special [label="nred_Gc_special", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nred_Gc_special theory/NamedMeasure.v proved"];
|
||||
nred_R_selfloop [label="nred_R_selfloop", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nred_R_selfloop theory/NamedMeasure.v proved"];
|
||||
s_metavar_empty [label="s_metavar_empty", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="s_metavar_empty theory/NamedMeasure.v proved"];
|
||||
subred_selfloop [label="subred_selfloop", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="subred_selfloop theory/NamedMeasure.v proved"];
|
||||
Es_ctx_any [label="Es_ctx_any", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Es_ctx_any theory/NamedMeta.v proved"];
|
||||
Es_fv [label="Es_fv", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Es_fv theory/NamedMeta.v proved"];
|
||||
Es_fv_both [label="Es_fv_both", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Es_fv_both theory/NamedMeta.v proved"];
|
||||
Es_refl_any [label="Es_refl_any", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Es_refl_any theory/NamedMeta.v proved"];
|
||||
Es_sym_any [label="Es_sym_any", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Es_sym_any theory/NamedMeta.v proved"];
|
||||
Es_trans_any [label="Es_trans_any", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="Es_trans_any theory/NamedMeta.v proved"];
|
||||
eqC_in_Es [label="eqC_in_Es", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="eqC_in_Es theory/NamedMeta.v proved"];
|
||||
filter_neq_in [label="filter_neq_in", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="filter_neq_in theory/NamedMeta.v proved"];
|
||||
in_filter_neq [label="in_filter_neq", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="in_filter_neq theory/NamedMeta.v proved"];
|
||||
in_filter_neq_iff [label="in_filter_neq_iff", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="in_filter_neq_iff theory/NamedMeta.v proved"];
|
||||
isubst_meta_in [label="isubst_meta_in", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="isubst_meta_in theory/NamedMeta.v proved"];
|
||||
isubst_meta_notin [label="isubst_meta_notin", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="isubst_meta_notin theory/NamedMeta.v proved"];
|
||||
nplug_esub_fv [label="nplug_esub_fv", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nplug_esub_fv theory/NamedMeta.v proved"];
|
||||
nplug_fv_mono [label="nplug_fv_mono", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nplug_fv_mono theory/NamedMeta.v proved"];
|
||||
nplug_fv_upper [label="nplug_fv_upper", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nplug_fv_upper theory/NamedMeta.v proved"];
|
||||
nred_R_intro [label="nred_R_intro", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nred_R_intro theory/NamedMeta.v proved"];
|
||||
nred_core_fv [label="nred_core_fv", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nred_core_fv theory/NamedMeta.v proved"];
|
||||
nred_fv [label="nred_fv", shape=ellipse, style="filled", fillcolor="transparent", color="#a9b492", penwidth=1.0, fontcolor="#c9d1bb", tooltip="nred_fv theory/NamedMeta.v proved"];
|
||||
of_trm_lift -> of_trm_open;
|
||||
mfvs_lift_m -> mfvs_open_m;
|
||||
of_trm_plug -> mred_term_context;
|
||||
of_trm_moccurs -> of_trm_moccurs0;
|
||||
Plus_mred_of_Plus_red1 -> mred_full_comp_pure;
|
||||
lemma_2_2_full_comp -> mred_full_comp_pure;
|
||||
subred_intro -> subred_nred;
|
||||
subred_intro -> subred_Es_l;
|
||||
subred_intro -> subred_Es_r;
|
||||
subred_Es_l -> subred_Es_lr;
|
||||
subred_Es_r -> subred_Es_lr;
|
||||
subred_intro -> subred_context;
|
||||
subred_context -> subred_context_rule;
|
||||
subred_nred -> subred_context_rule;
|
||||
subred_intro -> subred_of_Es_nred_Es;
|
||||
subred_intro -> nred_stable_source;
|
||||
subred_intro -> nred_stable_target;
|
||||
subred_context -> StarN_subred_context;
|
||||
head_has_pos -> nocc_le_Mx;
|
||||
le_mul_of_one_le -> nocc_le_Mx;
|
||||
nfv_annot_bound_example -> Mx_fresh_fails;
|
||||
A1_C_related -> A1_not_invariant;
|
||||
A1_s_differ -> A1_not_invariant;
|
||||
nred_R_selfloop -> current_sm_not_terminating;
|
||||
nred_R_selfloop -> subred_selfloop;
|
||||
subred_nred -> subred_selfloop;
|
||||
subred_selfloop -> current_subred_not_terminating;
|
||||
filter_neq_in -> nplug_fv_mono;
|
||||
in_filter_neq -> nplug_fv_mono;
|
||||
filter_neq_in -> nplug_fv_upper;
|
||||
in_filter_neq -> nplug_fv_upper;
|
||||
filter_neq_in -> nred_core_fv;
|
||||
in_filter_neq -> nred_core_fv;
|
||||
nplug_fv_mono -> nred_core_fv;
|
||||
nplug_fv_upper -> nred_core_fv;
|
||||
filter_neq_in -> nplug_esub_fv;
|
||||
in_filter_neq -> nplug_esub_fv;
|
||||
filter_neq_in -> nred_fv;
|
||||
in_filter_neq -> nred_fv;
|
||||
nplug_esub_fv -> nred_fv;
|
||||
nplug_fv_mono -> nred_fv;
|
||||
nplug_fv_upper -> nred_fv;
|
||||
in_filter_neq_iff -> Es_fv_both;
|
||||
nplug_fv_mono -> Es_fv_both;
|
||||
Es_fv_both -> Es_fv;
|
||||
}
|
||||
|
After Width: | Height: | Size: 342 KiB |
@@ -0,0 +1,913 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.42.4 (0)
|
||||
-->
|
||||
<!-- Title: deps Pages: 1 -->
|
||||
<svg width="854pt" height="2210pt"
|
||||
viewBox="0.00 0.00 854.25 2210.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2206)">
|
||||
<title>deps</title>
|
||||
<text text-anchor="start" x="293.63" y="-2189.4" font-family="Inter" font-weight="bold" font-size="12.00" fill="#c9d1bb">Theorem dependencies M5, 69 results</text>
|
||||
<!-- lemma_2_2_full_comp -->
|
||||
<g id="node1" class="node">
|
||||
<title>lemma_2_2_full_comp</title>
|
||||
<g id="a_node1"><a xlink:title="lemma_2_2_full_comp (section 2.2) theory/Metatheory.v proved">
|
||||
<path fill="transparent" stroke="#8f9780" stroke-width="0.9" stroke-dasharray="5,2" d="M140.67,-86C140.67,-86 18.67,-86 18.67,-86 12.67,-86 6.67,-80 6.67,-74 6.67,-74 6.67,-62 6.67,-62 6.67,-56 12.67,-50 18.67,-50 18.67,-50 140.67,-50 140.67,-50 146.67,-50 152.67,-56 152.67,-62 152.67,-62 152.67,-74 152.67,-74 152.67,-80 146.67,-86 140.67,-86"/>
|
||||
<text text-anchor="middle" x="79.67" y="-65.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">lemma_2_2_full_comp\n(M2)</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- mred_full_comp_pure -->
|
||||
<g id="node8" class="node">
|
||||
<title>mred_full_comp_pure</title>
|
||||
<g id="a_node8"><a xlink:title="mred_full_comp_pure theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-43" rx="65.64" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-40.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mred_full_comp_pure</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- lemma_2_2_full_comp->mred_full_comp_pure -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>lemma_2_2_full_comp->mred_full_comp_pure</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M152.82,-59.4C176.09,-56.62 201.75,-53.56 224.53,-50.85"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="224.86,-52.92 230.56,-50.13 224.36,-48.75 224.86,-52.92"/>
|
||||
</g>
|
||||
<!-- Plus_mred_of_Plus_red1 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Plus_mred_of_Plus_red1</title>
|
||||
<g id="a_node2"><a xlink:title="Plus_mred_of_Plus_red1 theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-18" rx="71.68" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-15.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Plus_mred_of_Plus_red1</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Plus_mred_of_Plus_red1->mred_full_comp_pure -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Plus_mred_of_Plus_red1->mred_full_comp_pure</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M144.71,-25.64C170.02,-28.65 199.08,-32.12 224.56,-35.16"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="224.4,-37.25 230.61,-35.88 224.9,-33.08 224.4,-37.25"/>
|
||||
</g>
|
||||
<!-- mfvs_close_m -->
|
||||
<g id="node3" class="node">
|
||||
<title>mfvs_close_m</title>
|
||||
<g id="a_node3"><a xlink:title="mfvs_close_m theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-118" rx="45.72" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-115.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mfvs_close_m</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- mfvs_lift_m -->
|
||||
<g id="node4" class="node">
|
||||
<title>mfvs_lift_m</title>
|
||||
<g id="a_node4"><a xlink:title="mfvs_lift_m theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-168" rx="39.02" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-165.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mfvs_lift_m</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- mfvs_open_m -->
|
||||
<g id="node5" class="node">
|
||||
<title>mfvs_open_m</title>
|
||||
<g id="a_node5"><a xlink:title="mfvs_open_m theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-168" rx="45.72" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-165.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mfvs_open_m</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- mfvs_lift_m->mfvs_open_m -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>mfvs_lift_m->mfvs_open_m</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M119.13,-168C152.87,-168 202.21,-168 239.26,-168"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="239.56,-170.1 245.56,-168 239.56,-165.9 239.56,-170.1"/>
|
||||
</g>
|
||||
<!-- mred_B_intro -->
|
||||
<g id="node6" class="node">
|
||||
<title>mred_B_intro</title>
|
||||
<g id="a_node6"><a xlink:title="mred_B_intro theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-218" rx="44.41" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-215.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mred_B_intro</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- mred_context -->
|
||||
<g id="node7" class="node">
|
||||
<title>mred_context</title>
|
||||
<g id="a_node7"><a xlink:title="mred_context theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-268" rx="46.38" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-265.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mred_context</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- mred_gc_intro -->
|
||||
<g id="node9" class="node">
|
||||
<title>mred_gc_intro</title>
|
||||
<g id="a_node9"><a xlink:title="mred_gc_intro theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-318" rx="47.19" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-315.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mred_gc_intro</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- mred_of_red1 -->
|
||||
<g id="node10" class="node">
|
||||
<title>mred_of_red1</title>
|
||||
<g id="a_node10"><a xlink:title="mred_of_red1 theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-368" rx="45.72" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-365.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mred_of_red1</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- mred_plus_one -->
|
||||
<g id="node11" class="node">
|
||||
<title>mred_plus_one</title>
|
||||
<g id="a_node11"><a xlink:title="mred_plus_one theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-418" rx="49.15" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-415.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mred_plus_one</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- mred_r_intro -->
|
||||
<g id="node12" class="node">
|
||||
<title>mred_r_intro</title>
|
||||
<g id="a_node12"><a xlink:title="mred_r_intro theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-468" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-465.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mred_r_intro</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- mred_term_context -->
|
||||
<g id="node13" class="node">
|
||||
<title>mred_term_context</title>
|
||||
<g id="a_node13"><a xlink:title="mred_term_context theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-518" rx="61.4" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-515.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">mred_term_context</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- of_trm_close -->
|
||||
<g id="node14" class="node">
|
||||
<title>of_trm_close</title>
|
||||
<g id="a_node14"><a xlink:title="of_trm_close theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-568" rx="42.29" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-565.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">of_trm_close</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- of_trm_fvs -->
|
||||
<g id="node15" class="node">
|
||||
<title>of_trm_fvs</title>
|
||||
<g id="a_node15"><a xlink:title="of_trm_fvs theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-618" rx="36.25" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-615.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">of_trm_fvs</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- of_trm_injective -->
|
||||
<g id="node16" class="node">
|
||||
<title>of_trm_injective</title>
|
||||
<g id="a_node16"><a xlink:title="of_trm_injective theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-668" rx="50.61" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-665.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">of_trm_injective</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- of_trm_lift -->
|
||||
<g id="node17" class="node">
|
||||
<title>of_trm_lift</title>
|
||||
<g id="a_node17"><a xlink:title="of_trm_lift theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-718" rx="35.59" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-715.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">of_trm_lift</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- of_trm_open -->
|
||||
<g id="node20" class="node">
|
||||
<title>of_trm_open</title>
|
||||
<g id="a_node20"><a xlink:title="of_trm_open theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-718" rx="42.29" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-715.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">of_trm_open</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- of_trm_lift->of_trm_open -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>of_trm_lift->of_trm_open</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M115.76,-718C150.62,-718 204.3,-718 242.92,-718"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="242.99,-720.1 248.99,-718 242.99,-715.9 242.99,-720.1"/>
|
||||
</g>
|
||||
<!-- of_trm_moccurs -->
|
||||
<g id="node18" class="node">
|
||||
<title>of_trm_moccurs</title>
|
||||
<g id="a_node18"><a xlink:title="of_trm_moccurs theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-768" rx="51.27" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-765.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">of_trm_moccurs</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- of_trm_moccurs0 -->
|
||||
<g id="node19" class="node">
|
||||
<title>of_trm_moccurs0</title>
|
||||
<g id="a_node19"><a xlink:title="of_trm_moccurs0 theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-768" rx="54.7" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-765.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">of_trm_moccurs0</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- of_trm_moccurs->of_trm_moccurs0 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>of_trm_moccurs->of_trm_moccurs0</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M131.16,-768C160.92,-768 198.75,-768 230.07,-768"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="230.24,-770.1 236.24,-768 230.24,-765.9 230.24,-770.1"/>
|
||||
</g>
|
||||
<!-- of_trm_plug -->
|
||||
<g id="node21" class="node">
|
||||
<title>of_trm_plug</title>
|
||||
<g id="a_node21"><a xlink:title="of_trm_plug theory/Metaterm.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-518" rx="40.98" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-515.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">of_trm_plug</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- of_trm_plug->mred_term_context -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>of_trm_plug->mred_term_context</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M121.1,-518C150.11,-518 189.87,-518 223.55,-518"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="223.77,-520.1 229.77,-518 223.77,-515.9 223.77,-520.1"/>
|
||||
</g>
|
||||
<!-- PlusN_to_StarN -->
|
||||
<g id="node22" class="node">
|
||||
<title>PlusN_to_StarN</title>
|
||||
<g id="a_node22"><a xlink:title="PlusN_to_StarN theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-831" rx="49.15" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-828.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">PlusN_to_StarN</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- StarN_one_trans -->
|
||||
<g id="node23" class="node">
|
||||
<title>StarN_one_trans</title>
|
||||
<g id="a_node23"><a xlink:title="StarN_one_trans theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-906" rx="52.58" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-903.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">StarN_one_trans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- StarN_subred_context -->
|
||||
<g id="node24" class="node">
|
||||
<title>StarN_subred_context</title>
|
||||
<g id="a_node24"><a xlink:title="StarN_subred_context theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="507.59" cy="-1193" rx="67.6" ry="18"/>
|
||||
<text text-anchor="middle" x="507.59" y="-1190.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">StarN_subred_context</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- StarN_trans -->
|
||||
<g id="node25" class="node">
|
||||
<title>StarN_trans</title>
|
||||
<g id="a_node25"><a xlink:title="StarN_trans theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1081" rx="40.33" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1078.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">StarN_trans</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nred_stable_source -->
|
||||
<g id="node26" class="node">
|
||||
<title>nred_stable_source</title>
|
||||
<g id="a_node26"><a xlink:title="nred_stable_source theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1018" rx="60.09" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1015.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nred_stable_source</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nred_stable_target -->
|
||||
<g id="node27" class="node">
|
||||
<title>nred_stable_target</title>
|
||||
<g id="a_node27"><a xlink:title="nred_stable_target theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-968" rx="58.13" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-965.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nred_stable_target</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_Es_l -->
|
||||
<g id="node28" class="node">
|
||||
<title>subred_Es_l</title>
|
||||
<g id="a_node28"><a xlink:title="subred_Es_l theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-918" rx="40.33" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-915.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subred_Es_l</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_Es_lr -->
|
||||
<g id="node29" class="node">
|
||||
<title>subred_Es_lr</title>
|
||||
<g id="a_node29"><a xlink:title="subred_Es_lr theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="507.59" cy="-893" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="507.59" y="-890.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subred_Es_lr</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_Es_l->subred_Es_lr -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>subred_Es_l->subred_Es_lr</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M330.63,-913.53C366.85,-909.3 421.27,-902.95 459.99,-898.44"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="460.35,-900.51 466.06,-897.73 459.86,-896.34 460.35,-900.51"/>
|
||||
</g>
|
||||
<!-- subred_Es_r -->
|
||||
<g id="node30" class="node">
|
||||
<title>subred_Es_r</title>
|
||||
<g id="a_node30"><a xlink:title="subred_Es_r theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-868" rx="40.98" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-865.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subred_Es_r</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_Es_r->subred_Es_lr -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>subred_Es_r->subred_Es_lr</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M331.12,-872.53C367.41,-876.76 421.65,-883.09 460.21,-887.59"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="460.05,-889.68 466.25,-888.29 460.54,-885.51 460.05,-889.68"/>
|
||||
</g>
|
||||
<!-- subred_context -->
|
||||
<g id="node31" class="node">
|
||||
<title>subred_context</title>
|
||||
<g id="a_node31"><a xlink:title="subred_context theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1168" rx="50.46" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1165.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subred_context</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_context->StarN_subred_context -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>subred_context->StarN_subred_context</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M339.34,-1173.49C368.68,-1176.91 406.92,-1181.37 439.42,-1185.16"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="439.22,-1187.25 445.42,-1185.86 439.71,-1183.08 439.22,-1187.25"/>
|
||||
</g>
|
||||
<!-- subred_context_rule -->
|
||||
<g id="node32" class="node">
|
||||
<title>subred_context_rule</title>
|
||||
<g id="a_node32"><a xlink:title="subred_context_rule theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="507.59" cy="-1143" rx="62.86" ry="18"/>
|
||||
<text text-anchor="middle" x="507.59" y="-1140.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subred_context_rule</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_context->subred_context_rule -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>subred_context->subred_context_rule</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M339.34,-1162.51C369.73,-1158.97 409.65,-1154.31 442.87,-1150.43"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="443.27,-1152.5 448.99,-1149.72 442.79,-1148.33 443.27,-1152.5"/>
|
||||
</g>
|
||||
<!-- subred_intro -->
|
||||
<g id="node33" class="node">
|
||||
<title>subred_intro</title>
|
||||
<g id="a_node33"><a xlink:title="subred_intro theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-968" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-965.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subred_intro</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_intro->nred_stable_source -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>subred_intro->nred_stable_source</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M117.19,-976.71C150.49,-984.65 200.07,-996.48 237.65,-1005.44"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="237.25,-1007.5 243.57,-1006.85 238.22,-1003.42 237.25,-1007.5"/>
|
||||
</g>
|
||||
<!-- subred_intro->nred_stable_target -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>subred_intro->nred_stable_target</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M122.6,-968C152.41,-968 192.99,-968 226.76,-968"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="226.99,-970.1 232.99,-968 226.99,-965.9 226.99,-970.1"/>
|
||||
</g>
|
||||
<!-- subred_intro->subred_Es_l -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>subred_intro->subred_Es_l</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M117.19,-959.29C154.05,-950.5 210.87,-936.95 249.27,-927.79"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="249.92,-929.79 255.27,-926.36 248.94,-925.71 249.92,-929.79"/>
|
||||
</g>
|
||||
<!-- subred_intro->subred_Es_r -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>subred_intro->subred_Es_r</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M109.08,-954.64C131.61,-944.04 159.35,-931 159.35,-931 159.35,-931 224.35,-893 224.35,-893 224.35,-893 238.69,-887.57 253.99,-881.77"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="254.79,-883.71 259.65,-879.62 253.3,-879.78 254.79,-883.71"/>
|
||||
</g>
|
||||
<!-- subred_intro->subred_context -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>subred_intro->subred_context</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M95.84,-984.97C118.71,-1010.54 159.35,-1056 159.35,-1056 159.35,-1056 224.35,-1143 224.35,-1143 224.35,-1143 236.61,-1147.65 250.56,-1152.93"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="249.82,-1154.9 256.18,-1155.06 251.31,-1150.97 249.82,-1154.9"/>
|
||||
</g>
|
||||
<!-- subred_nred -->
|
||||
<g id="node34" class="node">
|
||||
<title>subred_nred</title>
|
||||
<g id="a_node34"><a xlink:title="subred_nred theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1118" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1115.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subred_nred</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_intro->subred_nred -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>subred_intro->subred_nred</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M99.16,-984.09C137.97,-1017.85 224.35,-1093 224.35,-1093 224.35,-1093 238.02,-1098.18 252.91,-1103.82"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="252.53,-1105.92 258.88,-1106.09 254.01,-1102 252.53,-1105.92"/>
|
||||
</g>
|
||||
<!-- subred_of_Es_nred_Es -->
|
||||
<g id="node35" class="node">
|
||||
<title>subred_of_Es_nred_Es</title>
|
||||
<g id="a_node35"><a xlink:title="subred_of_Es_nred_Es theory/NamedEs.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-818" rx="66.95" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-815.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subred_of_Es_nred_Es</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_intro->subred_of_Es_nred_Es -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>subred_intro->subred_of_Es_nred_Es</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M109.08,-954.64C131.61,-944.04 159.35,-931 159.35,-931 159.35,-931 224.35,-843 224.35,-843 224.35,-843 234.02,-839.34 245.95,-834.82"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="246.7,-836.78 251.56,-832.69 245.21,-832.85 246.7,-836.78"/>
|
||||
</g>
|
||||
<!-- subred_nred->subred_context_rule -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>subred_nred->subred_context_rule</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M332.62,-1122.7C363.68,-1126.33 407.21,-1131.4 442.96,-1135.58"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="442.87,-1137.68 449.08,-1136.29 443.36,-1133.51 442.87,-1137.68"/>
|
||||
</g>
|
||||
<!-- subred_selfloop -->
|
||||
<g id="node52" class="node">
|
||||
<title>subred_selfloop</title>
|
||||
<g id="a_node52"><a xlink:title="subred_selfloop theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="507.59" cy="-1093" rx="50.46" ry="18"/>
|
||||
<text text-anchor="middle" x="507.59" y="-1090.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">subred_selfloop</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_nred->subred_selfloop -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>subred_nred->subred_selfloop</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M332.62,-1113.3C366.66,-1109.33 415.68,-1103.61 453.01,-1099.25"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="453.65,-1101.29 459.37,-1098.51 453.17,-1097.12 453.65,-1101.29"/>
|
||||
</g>
|
||||
<!-- A1_C_related -->
|
||||
<g id="node36" class="node">
|
||||
<title>A1_C_related</title>
|
||||
<g id="a_node36"><a xlink:title="A1_C_related theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1243" rx="43.1" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1240.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">A1_C_related</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- A1_not_invariant -->
|
||||
<g id="node38" class="node">
|
||||
<title>A1_not_invariant</title>
|
||||
<g id="a_node38"><a xlink:title="A1_not_invariant theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1218" rx="53.23" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1215.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">A1_not_invariant</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- A1_C_related->A1_not_invariant -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>A1_C_related->A1_not_invariant</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M121.59,-1238.12C153.92,-1234.27 199.37,-1228.85 234.95,-1224.6"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="235.31,-1226.67 241.02,-1223.88 234.81,-1222.5 235.31,-1226.67"/>
|
||||
</g>
|
||||
<!-- A1_Mx_differ -->
|
||||
<g id="node37" class="node">
|
||||
<title>A1_Mx_differ</title>
|
||||
<g id="a_node37"><a xlink:title="A1_Mx_differ theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1293" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1290.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">A1_Mx_differ</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- A1_s_differ -->
|
||||
<g id="node39" class="node">
|
||||
<title>A1_s_differ</title>
|
||||
<g id="a_node39"><a xlink:title="A1_s_differ theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1193" rx="37.56" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1190.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">A1_s_differ</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- A1_s_differ->A1_not_invariant -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>A1_s_differ->A1_not_invariant</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M116.24,-1197.24C148.6,-1201.1 196.89,-1206.86 234.41,-1211.33"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="234.6,-1213.47 240.81,-1212.1 235.1,-1209.3 234.6,-1213.47"/>
|
||||
</g>
|
||||
<!-- Gc_special_nondecrease -->
|
||||
<g id="node40" class="node">
|
||||
<title>Gc_special_nondecrease</title>
|
||||
<g id="a_node40"><a xlink:title="Gc_special_nondecrease theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1343" rx="72.99" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1340.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Gc_special_nondecrease</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Mx_fresh_fails -->
|
||||
<g id="node41" class="node">
|
||||
<title>Mx_fresh_fails</title>
|
||||
<g id="a_node41"><a xlink:title="Mx_fresh_fails theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1393" rx="45.07" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1390.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Mx_fresh_fails</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Mx_ge_0 -->
|
||||
<g id="node42" class="node">
|
||||
<title>Mx_ge_0</title>
|
||||
<g id="a_node42"><a xlink:title="Mx_ge_0 theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1443" rx="32.16" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1440.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Mx_ge_0</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- current_sm_not_terminating -->
|
||||
<g id="node43" class="node">
|
||||
<title>current_sm_not_terminating</title>
|
||||
<g id="a_node43"><a xlink:title="current_sm_not_terminating theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="507.59" cy="-1043" rx="84.09" ry="18"/>
|
||||
<text text-anchor="middle" x="507.59" y="-1040.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">current_sm_not_terminating</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- current_subred_not_terminating -->
|
||||
<g id="node44" class="node">
|
||||
<title>current_subred_not_terminating</title>
|
||||
<g id="a_node44"><a xlink:title="current_subred_not_terminating theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="751.57" cy="-1093" rx="94.87" ry="18"/>
|
||||
<text text-anchor="middle" x="751.57" y="-1090.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">current_subred_not_terminating</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- head_has_pos -->
|
||||
<g id="node45" class="node">
|
||||
<title>head_has_pos</title>
|
||||
<g id="a_node45"><a xlink:title="head_has_pos theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1543" rx="46.38" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1540.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">head_has_pos</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nocc_le_Mx -->
|
||||
<g id="node48" class="node">
|
||||
<title>nocc_le_Mx</title>
|
||||
<g id="a_node48"><a xlink:title="nocc_le_Mx theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1518" rx="39.02" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1515.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nocc_le_Mx</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- head_has_pos->nocc_le_Mx -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>head_has_pos->nocc_le_Mx</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M124.11,-1537.82C160.17,-1533.52 211.18,-1527.44 247.16,-1523.15"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="247.54,-1525.22 253.24,-1522.42 247.04,-1521.05 247.54,-1525.22"/>
|
||||
</g>
|
||||
<!-- le_mul_of_one_le -->
|
||||
<g id="node46" class="node">
|
||||
<title>le_mul_of_one_le</title>
|
||||
<g id="a_node46"><a xlink:title="le_mul_of_one_le theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1493" rx="53.23" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1490.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">le_mul_of_one_le</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- le_mul_of_one_le->nocc_le_Mx -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>le_mul_of_one_le->nocc_le_Mx</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M130.09,-1498.89C165.53,-1503.12 212.84,-1508.76 246.84,-1512.82"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="246.83,-1514.93 253.03,-1513.55 247.33,-1510.76 246.83,-1514.93"/>
|
||||
</g>
|
||||
<!-- nfv_annot_bound_example -->
|
||||
<g id="node47" class="node">
|
||||
<title>nfv_annot_bound_example</title>
|
||||
<g id="a_node47"><a xlink:title="nfv_annot_bound_example theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1393" rx="79.85" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1390.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nfv_annot_bound_example</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nfv_annot_bound_example->Mx_fresh_fails -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>nfv_annot_bound_example->Mx_fresh_fails</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M159.63,-1393C186.6,-1393 216,-1393 240.07,-1393"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="240.07,-1395.1 246.07,-1393 240.07,-1390.9 240.07,-1395.1"/>
|
||||
</g>
|
||||
<!-- nred_Gc_special -->
|
||||
<g id="node49" class="node">
|
||||
<title>nred_Gc_special</title>
|
||||
<g id="a_node49"><a xlink:title="nred_Gc_special theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1593" rx="51.27" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1590.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nred_Gc_special</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nred_R_selfloop -->
|
||||
<g id="node50" class="node">
|
||||
<title>nred_R_selfloop</title>
|
||||
<g id="a_node50"><a xlink:title="nred_R_selfloop theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1068" rx="50.46" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1065.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nred_R_selfloop</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nred_R_selfloop->current_sm_not_terminating -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>nred_R_selfloop->current_sm_not_terminating</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M339.34,-1062.51C364.99,-1059.52 397.43,-1055.74 426.9,-1052.3"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="427.43,-1054.35 433.14,-1051.57 426.94,-1050.18 427.43,-1054.35"/>
|
||||
</g>
|
||||
<!-- nred_R_selfloop->subred_selfloop -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>nred_R_selfloop->subred_selfloop</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M339.34,-1073.49C373.11,-1077.43 418.67,-1082.74 453.7,-1086.83"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="453.47,-1088.92 459.68,-1087.53 453.96,-1084.75 453.47,-1088.92"/>
|
||||
</g>
|
||||
<!-- s_metavar_empty -->
|
||||
<g id="node51" class="node">
|
||||
<title>s_metavar_empty</title>
|
||||
<g id="a_node51"><a xlink:title="s_metavar_empty theory/NamedMeasure.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1643" rx="56.01" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1640.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">s_metavar_empty</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- subred_selfloop->current_subred_not_terminating -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>subred_selfloop->current_subred_not_terminating</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M557.85,-1093C584.53,-1093 618.51,-1093 650.47,-1093"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="650.84,-1095.1 656.84,-1093 650.84,-1090.9 650.84,-1095.1"/>
|
||||
</g>
|
||||
<!-- Es_ctx_any -->
|
||||
<g id="node53" class="node">
|
||||
<title>Es_ctx_any</title>
|
||||
<g id="a_node53"><a xlink:title="Es_ctx_any theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1693" rx="38.87" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1690.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Es_ctx_any</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Es_fv -->
|
||||
<g id="node54" class="node">
|
||||
<title>Es_fv</title>
|
||||
<g id="a_node54"><a xlink:title="Es_fv theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="751.57" cy="-1880" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="751.57" y="-1877.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Es_fv</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Es_fv_both -->
|
||||
<g id="node55" class="node">
|
||||
<title>Es_fv_both</title>
|
||||
<g id="a_node55"><a xlink:title="Es_fv_both theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="507.59" cy="-1880" rx="37.56" ry="18"/>
|
||||
<text text-anchor="middle" x="507.59" y="-1877.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Es_fv_both</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Es_fv_both->Es_fv -->
|
||||
<g id="edge45" class="edge">
|
||||
<title>Es_fv_both->Es_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M545.34,-1880C592.44,-1880 673.35,-1880 718.22,-1880"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="718.3,-1882.1 724.3,-1880 718.3,-1877.9 718.3,-1882.1"/>
|
||||
</g>
|
||||
<!-- Es_refl_any -->
|
||||
<g id="node56" class="node">
|
||||
<title>Es_refl_any</title>
|
||||
<g id="a_node56"><a xlink:title="Es_refl_any theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1863" rx="39.02" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1860.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Es_refl_any</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Es_sym_any -->
|
||||
<g id="node57" class="node">
|
||||
<title>Es_sym_any</title>
|
||||
<g id="a_node57"><a xlink:title="Es_sym_any theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1913" rx="40.98" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1910.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Es_sym_any</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Es_trans_any -->
|
||||
<g id="node58" class="node">
|
||||
<title>Es_trans_any</title>
|
||||
<g id="a_node58"><a xlink:title="Es_trans_any theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1963" rx="43.76" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1960.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">Es_trans_any</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- eqC_in_Es -->
|
||||
<g id="node59" class="node">
|
||||
<title>eqC_in_Es</title>
|
||||
<g id="a_node59"><a xlink:title="eqC_in_Es theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-2013" rx="35.59" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-2010.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">eqC_in_Es</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- filter_neq_in -->
|
||||
<g id="node60" class="node">
|
||||
<title>filter_neq_in</title>
|
||||
<g id="a_node60"><a xlink:title="filter_neq_in theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1813" rx="41.64" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1810.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">filter_neq_in</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nplug_esub_fv -->
|
||||
<g id="node65" class="node">
|
||||
<title>nplug_esub_fv</title>
|
||||
<g id="a_node65"><a xlink:title="nplug_esub_fv theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1693" rx="47.19" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1690.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nplug_esub_fv</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- filter_neq_in->nplug_esub_fv -->
|
||||
<g id="edge36" class="edge">
|
||||
<title>filter_neq_in->nplug_esub_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M105.57,-1798.76C128.62,-1785.58 159.35,-1768 159.35,-1768 159.35,-1768 224.35,-1718 224.35,-1718 224.35,-1718 237,-1713.2 251.23,-1707.81"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="252.08,-1709.74 256.95,-1705.65 250.59,-1705.81 252.08,-1709.74"/>
|
||||
</g>
|
||||
<!-- nplug_fv_mono -->
|
||||
<g id="node66" class="node">
|
||||
<title>nplug_fv_mono</title>
|
||||
<g id="a_node66"><a xlink:title="nplug_fv_mono theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1853" rx="49.8" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1850.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nplug_fv_mono</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- filter_neq_in->nplug_fv_mono -->
|
||||
<g id="edge28" class="edge">
|
||||
<title>filter_neq_in->nplug_fv_mono</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M118.16,-1820.15C152.48,-1826.7 203.5,-1836.44 241.1,-1843.61"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="240.72,-1845.67 247.01,-1844.74 241.51,-1841.55 240.72,-1845.67"/>
|
||||
</g>
|
||||
<!-- nplug_fv_upper -->
|
||||
<g id="node67" class="node">
|
||||
<title>nplug_fv_upper</title>
|
||||
<g id="a_node67"><a xlink:title="nplug_fv_upper theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1743" rx="50.46" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1740.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nplug_fv_upper</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- filter_neq_in->nplug_fv_upper -->
|
||||
<g id="edge30" class="edge">
|
||||
<title>filter_neq_in->nplug_fv_upper</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M112.97,-1802.22C149.21,-1790.12 208.12,-1770.45 248.01,-1757.13"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="248.73,-1759.1 253.75,-1755.21 247.4,-1755.12 248.73,-1759.1"/>
|
||||
</g>
|
||||
<!-- nred_core_fv -->
|
||||
<g id="node69" class="node">
|
||||
<title>nred_core_fv</title>
|
||||
<g id="a_node69"><a xlink:title="nred_core_fv theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="507.59" cy="-1825" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="507.59" y="-1822.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nred_core_fv</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- filter_neq_in->nred_core_fv -->
|
||||
<g id="edge32" class="edge">
|
||||
<title>filter_neq_in->nred_core_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M113.58,-1823.46C135.14,-1830.31 159.35,-1838 159.35,-1838 159.35,-1838 224.35,-1878 224.35,-1878 224.35,-1878 358.29,-1878 358.29,-1878 358.29,-1878 424.7,-1854.27 468.64,-1838.56"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="469.47,-1840.5 474.41,-1836.5 468.05,-1836.54 469.47,-1840.5"/>
|
||||
</g>
|
||||
<!-- nred_fv -->
|
||||
<g id="node70" class="node">
|
||||
<title>nred_fv</title>
|
||||
<g id="a_node70"><a xlink:title="nred_fv theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="507.59" cy="-1743" rx="28.74" ry="18"/>
|
||||
<text text-anchor="middle" x="507.59" y="-1740.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nred_fv</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- filter_neq_in->nred_fv -->
|
||||
<g id="edge38" class="edge">
|
||||
<title>filter_neq_in->nred_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M118.98,-1806.79C195.14,-1794.45 358.29,-1768 358.29,-1768 358.29,-1768 429.7,-1755.96 473.41,-1748.59"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="473.82,-1750.65 479.39,-1747.59 473.12,-1746.51 473.82,-1750.65"/>
|
||||
</g>
|
||||
<!-- in_filter_neq -->
|
||||
<g id="node61" class="node">
|
||||
<title>in_filter_neq</title>
|
||||
<g id="a_node61"><a xlink:title="in_filter_neq theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-1743" rx="41.64" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-1740.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">in_filter_neq</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- in_filter_neq->nplug_esub_fv -->
|
||||
<g id="edge37" class="edge">
|
||||
<title>in_filter_neq->nplug_esub_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M116.71,-1734.4C152.16,-1725.95 206.4,-1713.01 244.81,-1703.85"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="245.48,-1705.85 250.83,-1702.42 244.51,-1701.77 245.48,-1705.85"/>
|
||||
</g>
|
||||
<!-- in_filter_neq->nplug_fv_mono -->
|
||||
<g id="edge29" class="edge">
|
||||
<title>in_filter_neq->nplug_fv_mono</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M106.8,-1756.71C144.72,-1776.61 215.03,-1813.5 256.75,-1835.38"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="255.9,-1837.31 262.19,-1838.24 257.85,-1833.59 255.9,-1837.31"/>
|
||||
</g>
|
||||
<!-- in_filter_neq->nplug_fv_upper -->
|
||||
<g id="edge31" class="edge">
|
||||
<title>in_filter_neq->nplug_fv_upper</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M121.59,-1743C153.92,-1743 199.37,-1743 234.95,-1743"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="235.02,-1745.1 241.02,-1743 235.02,-1740.9 235.02,-1745.1"/>
|
||||
</g>
|
||||
<!-- in_filter_neq->nred_core_fv -->
|
||||
<g id="edge33" class="edge">
|
||||
<title>in_filter_neq->nred_core_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M118.1,-1750.21C196.62,-1765.32 378.24,-1800.29 462.36,-1816.48"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="462.2,-1818.59 468.48,-1817.66 462.99,-1814.47 462.2,-1818.59"/>
|
||||
</g>
|
||||
<!-- in_filter_neq->nred_fv -->
|
||||
<g id="edge39" class="edge">
|
||||
<title>in_filter_neq->nred_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M113.58,-1732.54C135.14,-1725.69 159.35,-1718 159.35,-1718 159.35,-1718 224.35,-1668 224.35,-1668 224.35,-1668 358.29,-1668 358.29,-1668 358.29,-1668 436.29,-1707.45 479.16,-1729.13"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="478.4,-1731.1 484.71,-1731.93 480.3,-1727.35 478.4,-1731.1"/>
|
||||
</g>
|
||||
<!-- in_filter_neq_iff -->
|
||||
<g id="node62" class="node">
|
||||
<title>in_filter_neq_iff</title>
|
||||
<g id="a_node62"><a xlink:title="in_filter_neq_iff theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="291.32" cy="-1933" rx="49.15" ry="18"/>
|
||||
<text text-anchor="middle" x="291.32" y="-1930.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">in_filter_neq_iff</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- in_filter_neq_iff->Es_fv_both -->
|
||||
<g id="edge43" class="edge">
|
||||
<title>in_filter_neq_iff->Es_fv_both</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M332.37,-1923.09C371.12,-1913.51 429.45,-1899.08 467.78,-1889.6"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="468.43,-1891.6 473.75,-1888.12 467.42,-1887.53 468.43,-1891.6"/>
|
||||
</g>
|
||||
<!-- isubst_meta_in -->
|
||||
<g id="node63" class="node">
|
||||
<title>isubst_meta_in</title>
|
||||
<g id="a_node63"><a xlink:title="isubst_meta_in theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-2063" rx="48.49" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-2060.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">isubst_meta_in</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- isubst_meta_notin -->
|
||||
<g id="node64" class="node">
|
||||
<title>isubst_meta_notin</title>
|
||||
<g id="a_node64"><a xlink:title="isubst_meta_notin theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-2113" rx="57.32" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-2110.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">isubst_meta_notin</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- nplug_esub_fv->nred_fv -->
|
||||
<g id="edge40" class="edge">
|
||||
<title>nplug_esub_fv->nred_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M332.12,-1702.29C373.13,-1711.86 436.28,-1726.59 474.3,-1735.47"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="473.86,-1737.52 480.18,-1736.84 474.81,-1733.43 473.86,-1737.52"/>
|
||||
</g>
|
||||
<!-- nplug_fv_mono->Es_fv_both -->
|
||||
<g id="edge44" class="edge">
|
||||
<title>nplug_fv_mono->Es_fv_both</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M338.55,-1858.83C376.11,-1863.56 428.64,-1870.18 464.92,-1874.75"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="464.83,-1876.85 471.04,-1875.52 465.35,-1872.69 464.83,-1876.85"/>
|
||||
</g>
|
||||
<!-- nplug_fv_mono->nred_core_fv -->
|
||||
<g id="edge34" class="edge">
|
||||
<title>nplug_fv_mono->nred_core_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M338.29,-1846.99C374.32,-1842.28 424.24,-1835.76 460.35,-1831.04"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="460.79,-1833.1 466.47,-1830.24 460.25,-1828.94 460.79,-1833.1"/>
|
||||
</g>
|
||||
<!-- nplug_fv_mono->nred_fv -->
|
||||
<g id="edge41" class="edge">
|
||||
<title>nplug_fv_mono->nred_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M323.76,-1839.18C340.75,-1831.71 358.29,-1824 358.29,-1824 358.29,-1824 437.1,-1780.95 479.82,-1757.62"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="481.08,-1759.32 485.34,-1754.61 479.07,-1755.64 481.08,-1759.32"/>
|
||||
</g>
|
||||
<!-- nplug_fv_upper->nred_core_fv -->
|
||||
<g id="edge35" class="edge">
|
||||
<title>nplug_fv_upper->nred_core_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M326.27,-1755.99C365.3,-1770.93 429.15,-1795.36 469.46,-1810.79"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="468.88,-1812.82 475.23,-1813 470.38,-1808.9 468.88,-1812.82"/>
|
||||
</g>
|
||||
<!-- nplug_fv_upper->nred_fv -->
|
||||
<g id="edge42" class="edge">
|
||||
<title>nplug_fv_upper->nred_fv</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M341.75,-1743C381.65,-1743 436.79,-1743 472.07,-1743"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="472.42,-1745.1 478.42,-1743 472.42,-1740.9 472.42,-1745.1"/>
|
||||
</g>
|
||||
<!-- nred_R_intro -->
|
||||
<g id="node68" class="node">
|
||||
<title>nred_R_intro</title>
|
||||
<g id="a_node68"><a xlink:title="nred_R_intro theory/NamedMeta.v proved">
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="79.67" cy="-2163" rx="42.95" ry="18"/>
|
||||
<text text-anchor="middle" x="79.67" y="-2160.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">nred_R_intro</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 45 KiB |
@@ -0,0 +1,20 @@
|
||||
digraph deps {
|
||||
rankdir=LR;
|
||||
bgcolor="transparent";
|
||||
splines=polyline;
|
||||
concentrate=true;
|
||||
nodesep=0.2;
|
||||
ranksep=0.9;
|
||||
node [fontname=Inter, fontsize=9];
|
||||
edge [fontname=Inter, fontsize=8, color="#8f9780", fontcolor="#c9d1bb", arrowsize=0.6, penwidth=0.8];
|
||||
graph [fontname=Inter, fontsize=12, labelloc=t, fontcolor="#c9d1bb", label=<<B>Theorem dependency by milestone</B>>];
|
||||
M1 [label="M1\\n33 results", shape=box, style="rounded,filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
M2 [label="M2\\n53 results", shape=box, style="rounded,filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
M3 [label="M3\\n16 results", shape=box, style="rounded,filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
M4 [label="M4\\n6 results", shape=box, style="rounded,filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
M5 [label="M5\\n69 results", shape=box, style="rounded,filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
M1 -> M2;
|
||||
M1 -> M3;
|
||||
M2 -> M3;
|
||||
M2 -> M5;
|
||||
}
|
||||
|
After Width: | Height: | Size: 20 KiB |
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.42.4 (0)
|
||||
-->
|
||||
<!-- Title: deps Pages: 1 -->
|
||||
<svg width="390pt" height="145pt"
|
||||
viewBox="0.00 0.00 390.00 145.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 141)">
|
||||
<title>deps</title>
|
||||
<text text-anchor="start" x="72.5" y="-124.4" font-family="Inter" font-weight="bold" font-size="12.00" fill="#c9d1bb">Theorem dependency by milestone</text>
|
||||
<!-- M1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>M1</title>
|
||||
<path fill="transparent" stroke="#a9b492" d="M72,-66C72,-66 12,-66 12,-66 6,-66 0,-60 0,-54 0,-54 0,-42 0,-42 0,-36 6,-30 12,-30 12,-30 72,-30 72,-30 78,-30 84,-36 84,-42 84,-42 84,-54 84,-54 84,-60 78,-66 72,-66"/>
|
||||
<text text-anchor="middle" x="42" y="-45.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">M1\n33 results</text>
|
||||
</g>
|
||||
<!-- M2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>M2</title>
|
||||
<path fill="transparent" stroke="#a9b492" d="M221,-46C221,-46 161,-46 161,-46 155,-46 149,-40 149,-34 149,-34 149,-22 149,-22 149,-16 155,-10 161,-10 161,-10 221,-10 221,-10 227,-10 233,-16 233,-22 233,-22 233,-34 233,-34 233,-40 227,-46 221,-46"/>
|
||||
<text text-anchor="middle" x="191" y="-25.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">M2\n53 results</text>
|
||||
</g>
|
||||
<!-- M1->M2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>M1->M2</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M84.34,-42.38C102.5,-39.91 123.92,-36.99 142.71,-34.43"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="143.31,-36.47 148.97,-33.58 142.74,-32.31 143.31,-36.47"/>
|
||||
</g>
|
||||
<!-- M3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>M3</title>
|
||||
<path fill="transparent" stroke="#a9b492" d="M370,-86C370,-86 310,-86 310,-86 304,-86 298,-80 298,-74 298,-74 298,-62 298,-62 298,-56 304,-50 310,-50 310,-50 370,-50 370,-50 376,-50 382,-56 382,-62 382,-62 382,-74 382,-74 382,-80 376,-86 370,-86"/>
|
||||
<text text-anchor="middle" x="340" y="-65.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">M3\n16 results</text>
|
||||
</g>
|
||||
<!-- M1->M3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>M1->M3</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M84.16,-50.78C138.57,-54.46 234.23,-60.92 291.6,-64.8"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="291.59,-66.9 297.72,-65.21 291.87,-62.71 291.59,-66.9"/>
|
||||
</g>
|
||||
<!-- M2->M3 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>M2->M3</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M233.34,-39.25C251.5,-44.19 272.92,-50.02 291.71,-55.13"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="291.63,-57.29 297.97,-56.84 292.73,-53.23 291.63,-57.29"/>
|
||||
</g>
|
||||
<!-- M5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>M5</title>
|
||||
<path fill="transparent" stroke="#a9b492" d="M370,-36C370,-36 310,-36 310,-36 304,-36 298,-30 298,-24 298,-24 298,-12 298,-12 298,-6 304,0 310,0 310,0 370,0 370,0 376,0 382,-6 382,-12 382,-12 382,-24 382,-24 382,-30 376,-36 370,-36"/>
|
||||
<text text-anchor="middle" x="340" y="-15.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">M5\n69 results</text>
|
||||
</g>
|
||||
<!-- M2->M5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>M2->M5</title>
|
||||
<path fill="none" stroke="#8f9780" stroke-width="0.8" d="M233.34,-25.19C251.5,-23.95 272.92,-22.5 291.71,-21.22"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" stroke-width="0.8" points="292.13,-23.29 297.97,-20.79 291.84,-19.1 292.13,-23.29"/>
|
||||
</g>
|
||||
<!-- M4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>M4</title>
|
||||
<path fill="transparent" stroke="#a9b492" d="M69,-116C69,-116 15,-116 15,-116 9,-116 3,-110 3,-104 3,-104 3,-92 3,-92 3,-86 9,-80 15,-80 15,-80 69,-80 69,-80 75,-80 81,-86 81,-92 81,-92 81,-104 81,-104 81,-110 75,-116 69,-116"/>
|
||||
<text text-anchor="middle" x="42" y="-95.8" font-family="Inter" font-size="9.00" fill="#c9d1bb">M4\n6 results</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@@ -1,206 +0,0 @@
|
||||
digraph theorem_deps {
|
||||
rankdir=LR;
|
||||
bgcolor="white";
|
||||
splines=spline;
|
||||
nodesep=0.22;
|
||||
ranksep=0.6;
|
||||
node [fontname=Inter, fontsize=9, fontcolor="#222222"];
|
||||
edge [fontname=Inter, fontsize=8, color="#9a9a9a", arrowsize=0.6, penwidth=0.8];
|
||||
graph [fontname=Inter, fontsize=12, labelloc=t, label=<<B>Milner's Lambda-Calculus with Partial Substitutions - theorem dependency (M4)</B><BR/><FONT POINT-SIZE="9"><FONT COLOR="#38761d">proved</FONT> <FONT COLOR="#b45f06">stated</FONT> <FONT COLOR="#777777">planned</FONT> <FONT COLOR="#cc0000">blocked</FONT></FONT>>];
|
||||
fvs_lift [label="fvs_lift", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="fvs_lift theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
lift_lc [label="lift_lc", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="lift_lc theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
lift_0_lc [label="lift_0_lc", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="lift_0_lc theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_rec_bvar [label="open_rec_bvar", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_rec_bvar theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
close_rec_fvar [label="close_rec_fvar", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="close_rec_fvar theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_rec_occurs_false [label="open_rec_occurs_false", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_rec_occurs_false theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
close_rec_notin [label="close_rec_notin", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="close_rec_notin theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
close_rec_fvs [label="close_rec_fvs", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="close_rec_fvs theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_rec_bvar_neq [label="open_rec_bvar_neq", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_rec_bvar_neq theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_rec_fvs [label="open_rec_fvs", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_rec_fvs theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_close [label="open_close", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_close theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
subst_fvar_self [label="subst_fvar_self", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="subst_fvar_self theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
subst_fvar_other [label="subst_fvar_other", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="subst_fvar_other theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
subst_fvs [label="subst_fvs", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="subst_fvs theory/Binding.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
Star_trans [label="Star_trans", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="Star_trans theory/Closure.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red1_star [label="red1_star", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red1_star theory/Closure.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
Plus_to_Star [label="Plus_to_Star", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="Plus_to_Star theory/Closure.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
Star_red1_context [label="Star_red1_context", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="Star_red1_context theory/Closure.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
star_one_trans [label="star_one_trans", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="star_one_trans theory/Closure.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
in_comb [label="in_comb", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="in_comb theory/Enumerate.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
pow2_pos [label="pow2_pos", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="pow2_pos theory/Enumerate.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
size_all_terms [label="size_all_terms", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="size_all_terms theory/Enumerate.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
enumerate_check [label="enumerate_check", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="enumerate_check theory/Enumerate.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
enumerate_sound [label="enumerate_sound", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="enumerate_sound theory/Enumerate.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
enumerate_complete [label="enumerate_complete", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="enumerate_complete theory/Enumerate.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
Plus_red1_context [label="Plus_red1_context", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="Plus_red1_context theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
occurs_count_zero [label="occurs_count_zero", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="occurs_count_zero theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
occurs_count_false [label="occurs_count_false", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="occurs_count_false theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
occurs_count_pos [label="occurs_count_pos", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="occurs_count_pos theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
occurs_lift_self [label="occurs_lift_self", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="occurs_lift_self theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
zdecs_nonempty [label="zdecs_nonempty", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="zdecs_nonempty theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
occurs_count_zfill_plug [label="occurs_count_zfill_plug", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="occurs_count_zfill_plug theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_rec_zplug_lift [label="open_rec_zplug_lift", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_rec_zplug_lift theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
full_comp_aux [label="full_comp_aux", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="full_comp_aux theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
lemma_2_2_full_comp [label="lemma_2_2_full_comp", color="#38761d", fillcolor="#d9ead3", style="rounded,filled", fontcolor="#222222", tooltip="lemma_2_2_full_comp (section 2.2) theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=box];
|
||||
fvs_zplug_lift [label="fvs_zplug_lift", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="fvs_zplug_lift theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
plug_fv_mono [label="plug_fv_mono", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="plug_fv_mono theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red1_root_fv [label="red1_root_fv", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red1_root_fv theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red1r_fv [label="red1r_fv", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red1r_fv theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
lemma_2_1_fv_preserved [label="lemma_2_1_fv_preserved", color="#38761d", fillcolor="#d9ead3", style="rounded,filled", fontcolor="#222222", tooltip="lemma_2_1_fv_preserved (section 2.1) theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=box];
|
||||
lemma_2_3_beta_sim [label="lemma_2_3_beta_sim", color="#38761d", fillcolor="#d9ead3", style="rounded,filled", fontcolor="#222222", tooltip="lemma_2_3_beta_sim (section 2.3) theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=box];
|
||||
Plus_trans [label="Plus_trans", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="Plus_trans theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
Plus_step_trans [label="Plus_step_trans", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="Plus_step_trans theory/Metatheory.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
par_red1_iff [label="par_red1_iff", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="par_red1_iff theory/Parallel.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red1_in_par [label="red1_in_par", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red1_in_par theory/Parallel.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
par_context [label="par_context", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="par_context theory/Parallel.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
par_to_red1_or_eq [label="par_to_red1_or_eq", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="par_to_red1_or_eq theory/Parallel.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red1_or_eq_to_par [label="red1_or_eq_to_par", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red1_or_eq_to_par theory/Parallel.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
par_reflexive [label="par_reflexive", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="par_reflexive theory/Parallel.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
gen_list_length [label="gen_list_length", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="gen_list_length theory/Random.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
check_term_true [label="check_term_true", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="check_term_true theory/Random.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
check_all_true [label="check_all_true", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="check_all_true theory/Random.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
gen_sound [label="gen_sound", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="gen_sound theory/Random.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
gen_complete [label="gen_complete", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="gen_complete theory/Random.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
gen_fv_preserved [label="gen_fv_preserved", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="gen_fv_preserved theory/Random.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
zdecs_sound [label="zdecs_sound", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="zdecs_sound theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
zdecs_complete [label="zdecs_complete", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="zdecs_complete theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
positions_at [label="positions_at", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="positions_at theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
root_steps_sound [label="root_steps_sound", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="root_steps_sound theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
root_steps_complete [label="root_steps_complete", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="root_steps_complete theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
steps_sound [label="steps_sound", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="steps_sound theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
steps_sound_red1 [label="steps_sound_red1", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="steps_sound_red1 theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
positions_hole [label="positions_hole", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="positions_hole theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
root_steps_in_steps [label="root_steps_in_steps", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="root_steps_in_steps theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
plug_comp [label="plug_comp", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="plug_comp theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
positions_comp [label="positions_comp", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="positions_comp theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
at_ctx_comp [label="at_ctx_comp", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="at_ctx_comp theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
steps_complete [label="steps_complete", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="steps_complete theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
has_red_f [label="has_red_f", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="has_red_f theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
has_red_spec [label="has_red_spec", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="has_red_spec theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red1_dec [label="red1_dec", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red1_dec theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
nf_iff_steps_nil [label="nf_iff_steps_nil", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="nf_iff_steps_nil theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
normal_form_iff_nf [label="normal_form_iff_nf", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="normal_form_iff_nf theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
nf_dec [label="nf_dec", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="nf_dec theory/Reduction.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_rec_app [label="open_rec_app", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_rec_app theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_rec_lam [label="open_rec_lam", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_rec_lam theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_rec_esub [label="open_rec_esub", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_rec_esub theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
close_rec_app [label="close_rec_app", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="close_rec_app theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
close_rec_lam [label="close_rec_lam", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="close_rec_lam theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
close_rec_esub [label="close_rec_esub", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="close_rec_esub theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
subst_app [label="subst_app", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="subst_app theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
subst_lam [label="subst_lam", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="subst_lam theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
subst_esub [label="subst_esub", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="subst_esub theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
subst_notin [label="subst_notin", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="subst_notin theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
subst_lc_self [label="subst_lc_self", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="subst_lc_self theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
subst_other [label="subst_other", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="subst_other theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_rec_lc_atom [label="open_rec_lc_atom", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_rec_lc_atom theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
open_rec_lc [label="open_rec_lc", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="open_rec_lc theory/Substitution.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red_sub_root_to_red1 [label="red_sub_root_to_red1", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red_sub_root_to_red1 theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red_sub_to_red1 [label="red_sub_to_red1", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red_sub_to_red1 theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red_sub_context [label="red_sub_context", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red_sub_context theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red_sub_gc [label="red_sub_gc", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red_sub_gc theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red_sub_r [label="red_sub_r", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red_sub_r theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
occurs_zfill [label="occurs_zfill", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="occurs_zfill theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
zfill_occurs0 [label="zfill_occurs0", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="zfill_occurs0 theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
R_Gc_disjoint [label="R_Gc_disjoint", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="R_Gc_disjoint theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
Star_red_sub_context [label="Star_red_sub_context", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="Star_red_sub_context theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
full_comp_aux_sub [label="full_comp_aux_sub", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="full_comp_aux_sub theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
plus_red_sub_full_comp [label="plus_red_sub_full_comp", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="plus_red_sub_full_comp theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
star_red_sub_full_comp [label="star_red_sub_full_comp", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="star_red_sub_full_comp theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
es_count_plug_mono [label="es_count_plug_mono", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="es_count_plug_mono theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red_gc_measure [label="red_gc_measure", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red_gc_measure theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red_gc_terminates [label="red_gc_terminates", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red_gc_terminates theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
red_gc_to_red_sub [label="red_gc_to_red_sub", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="red_gc_to_red_sub theory/Subsystem.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
corpus_sound [label="corpus_sound", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="corpus_sound theory/Tests.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
corpus_complete [label="corpus_complete", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="corpus_complete theory/Tests.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
corpus_decides [label="corpus_decides", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="corpus_decides theory/Tests.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
corpus_fv_preserved [label="corpus_fv_preserved", color="#38761d", fillcolor="#d9ead3", style="filled", fontcolor="#222222", tooltip="corpus_fv_preserved theory/Tests.v https://arxiv.org/html/2312.13270v1", shape=ellipse];
|
||||
lift_lc -> lift_0_lc;
|
||||
fvs_lift -> open_rec_fvs;
|
||||
open_rec_bvar -> open_rec_fvs;
|
||||
open_rec_bvar_neq -> open_rec_fvs;
|
||||
open_rec_bvar -> open_close;
|
||||
lift_0_lc -> subst_fvar_self;
|
||||
close_rec_fvs -> subst_fvs;
|
||||
open_rec_fvs -> subst_fvs;
|
||||
in_comb -> size_all_terms;
|
||||
pow2_pos -> size_all_terms;
|
||||
check_all_true -> enumerate_check;
|
||||
steps_sound -> enumerate_sound;
|
||||
steps_complete -> enumerate_complete;
|
||||
occurs_count_zero -> occurs_count_pos;
|
||||
occurs_count_false -> occurs_count_zfill_plug;
|
||||
occurs_lift_self -> occurs_count_zfill_plug;
|
||||
occurs_lift_self -> open_rec_zplug_lift;
|
||||
open_rec_occurs_false -> open_rec_zplug_lift;
|
||||
occurs_count_zero -> full_comp_aux;
|
||||
occurs_count_zfill_plug -> full_comp_aux;
|
||||
open_rec_occurs_false -> full_comp_aux;
|
||||
open_rec_zplug_lift -> full_comp_aux;
|
||||
zdecs_nonempty -> full_comp_aux;
|
||||
zdecs_sound -> full_comp_aux;
|
||||
full_comp_aux -> lemma_2_2_full_comp;
|
||||
fvs_lift -> fvs_zplug_lift;
|
||||
fvs_zplug_lift -> red1_root_fv;
|
||||
plug_fv_mono -> red1r_fv;
|
||||
red1_root_fv -> red1r_fv;
|
||||
red1r_fv -> lemma_2_1_fv_preserved;
|
||||
Plus_red1_context -> lemma_2_3_beta_sim;
|
||||
lemma_2_2_full_comp -> lemma_2_3_beta_sim;
|
||||
par_red1_iff -> par_to_red1_or_eq;
|
||||
par_red1_iff -> red1_or_eq_to_par;
|
||||
has_red_spec -> check_term_true;
|
||||
steps_sound_red1 -> check_term_true;
|
||||
check_term_true -> check_all_true;
|
||||
steps_sound -> gen_sound;
|
||||
steps_complete -> gen_complete;
|
||||
lemma_2_1_fv_preserved -> gen_fv_preserved;
|
||||
steps_sound_red1 -> gen_fv_preserved;
|
||||
zdecs_sound -> root_steps_sound;
|
||||
zdecs_complete -> root_steps_complete;
|
||||
positions_at -> steps_sound;
|
||||
root_steps_sound -> steps_sound;
|
||||
steps_sound -> steps_sound_red1;
|
||||
positions_hole -> root_steps_in_steps;
|
||||
at_ctx_comp -> steps_complete;
|
||||
plug_comp -> steps_complete;
|
||||
positions_comp -> steps_complete;
|
||||
root_steps_complete -> steps_complete;
|
||||
root_steps_in_steps -> steps_complete;
|
||||
has_red_f -> has_red_spec;
|
||||
steps_complete -> has_red_spec;
|
||||
steps_sound -> has_red_spec;
|
||||
has_red_spec -> red1_dec;
|
||||
steps_complete -> nf_iff_steps_nil;
|
||||
steps_sound_red1 -> nf_iff_steps_nil;
|
||||
nf_iff_steps_nil -> normal_form_iff_nf;
|
||||
nf_iff_steps_nil -> nf_dec;
|
||||
close_rec_notin -> subst_notin;
|
||||
open_rec_occurs_false -> subst_notin;
|
||||
subst_fvar_self -> subst_lc_self;
|
||||
subst_fvar_other -> subst_other;
|
||||
open_rec_lc_atom -> open_rec_lc;
|
||||
red_sub_root_to_red1 -> red_sub_to_red1;
|
||||
occurs_zfill -> zfill_occurs0;
|
||||
zfill_occurs0 -> R_Gc_disjoint;
|
||||
red_sub_context -> Star_red_sub_context;
|
||||
occurs_count_zero -> full_comp_aux_sub;
|
||||
occurs_count_zfill_plug -> full_comp_aux_sub;
|
||||
open_rec_occurs_false -> full_comp_aux_sub;
|
||||
open_rec_zplug_lift -> full_comp_aux_sub;
|
||||
red_sub_gc -> full_comp_aux_sub;
|
||||
red_sub_r -> full_comp_aux_sub;
|
||||
zdecs_nonempty -> full_comp_aux_sub;
|
||||
zdecs_sound -> full_comp_aux_sub;
|
||||
full_comp_aux_sub -> plus_red_sub_full_comp;
|
||||
Plus_to_Star -> star_red_sub_full_comp;
|
||||
plus_red_sub_full_comp -> star_red_sub_full_comp;
|
||||
es_count_plug_mono -> red_gc_measure;
|
||||
red_gc_measure -> red_gc_terminates;
|
||||
red_sub_gc -> red_gc_to_red_sub;
|
||||
steps_sound -> corpus_sound;
|
||||
steps_complete -> corpus_complete;
|
||||
has_red_spec -> corpus_decides;
|
||||
lemma_2_1_fv_preserved -> corpus_fv_preserved;
|
||||
steps_sound_red1 -> corpus_fv_preserved;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 563 KiB |
|
Before Width: | Height: | Size: 80 KiB |
@@ -6,9 +6,24 @@
|
||||
(source_tree ../theory))
|
||||
(targets
|
||||
theorems.json
|
||||
dependency.dot
|
||||
dependency.svg
|
||||
dependency.png
|
||||
dependency-overview.dot
|
||||
dependency-overview.svg
|
||||
dependency-overview.png
|
||||
dependency-M1.dot
|
||||
dependency-M1.svg
|
||||
dependency-M1.png
|
||||
dependency-M2.dot
|
||||
dependency-M2.svg
|
||||
dependency-M2.png
|
||||
dependency-M3.dot
|
||||
dependency-M3.svg
|
||||
dependency-M3.png
|
||||
dependency-M4.dot
|
||||
dependency-M4.svg
|
||||
dependency-M4.png
|
||||
dependency-M5.dot
|
||||
dependency-M5.svg
|
||||
dependency-M5.png
|
||||
rules.dot
|
||||
rules.svg
|
||||
rules.png
|
||||
|
||||
@@ -107,3 +107,72 @@ proved M4 infra par_reflexive theory/Parallel.v
|
||||
proved M4 infra par_to_red1_or_eq theory/Parallel.v
|
||||
proved M4 infra red1_in_par theory/Parallel.v
|
||||
proved M4 infra red1_or_eq_to_par theory/Parallel.v
|
||||
proved M5 infra A1_C_related theory/NamedMeasure.v
|
||||
proved M5 infra A1_Mx_differ theory/NamedMeasure.v
|
||||
proved M5 infra A1_not_invariant theory/NamedMeasure.v
|
||||
proved M5 infra A1_s_differ theory/NamedMeasure.v
|
||||
proved M5 infra Es_ctx_any theory/NamedMeta.v
|
||||
proved M5 infra Es_fv theory/NamedMeta.v
|
||||
proved M5 infra Es_fv_both theory/NamedMeta.v
|
||||
proved M5 infra Es_refl_any theory/NamedMeta.v
|
||||
proved M5 infra Es_sym_any theory/NamedMeta.v
|
||||
proved M5 infra Es_trans_any theory/NamedMeta.v
|
||||
proved M5 infra Gc_special_nondecrease theory/NamedMeasure.v
|
||||
proved M5 infra Mx_fresh_fails theory/NamedMeasure.v
|
||||
proved M5 infra Mx_ge_0 theory/NamedMeasure.v
|
||||
proved M5 infra PlusN_to_StarN theory/NamedEs.v
|
||||
proved M5 infra Plus_mred_of_Plus_red1 theory/Metaterm.v
|
||||
proved M5 infra StarN_one_trans theory/NamedEs.v
|
||||
proved M5 infra StarN_subred_context theory/NamedEs.v
|
||||
proved M5 infra StarN_trans theory/NamedEs.v
|
||||
proved M5 infra current_sm_not_terminating theory/NamedMeasure.v
|
||||
proved M5 infra current_subred_not_terminating theory/NamedMeasure.v
|
||||
proved M5 infra eqC_in_Es theory/NamedMeta.v
|
||||
proved M5 infra filter_neq_in theory/NamedMeta.v
|
||||
proved M5 infra head_has_pos theory/NamedMeasure.v
|
||||
proved M5 infra in_filter_neq theory/NamedMeta.v
|
||||
proved M5 infra in_filter_neq_iff theory/NamedMeta.v
|
||||
proved M5 infra isubst_meta_in theory/NamedMeta.v
|
||||
proved M5 infra isubst_meta_notin theory/NamedMeta.v
|
||||
proved M5 infra le_mul_of_one_le theory/NamedMeasure.v
|
||||
proved M5 infra mfvs_close_m theory/Metaterm.v
|
||||
proved M5 infra mfvs_lift_m theory/Metaterm.v
|
||||
proved M5 infra mfvs_open_m theory/Metaterm.v
|
||||
proved M5 infra mred_B_intro theory/Metaterm.v
|
||||
proved M5 infra mred_context theory/Metaterm.v
|
||||
proved M5 infra mred_full_comp_pure theory/Metaterm.v
|
||||
proved M5 infra mred_gc_intro theory/Metaterm.v
|
||||
proved M5 infra mred_of_red1 theory/Metaterm.v
|
||||
proved M5 infra mred_plus_one theory/Metaterm.v
|
||||
proved M5 infra mred_r_intro theory/Metaterm.v
|
||||
proved M5 infra mred_term_context theory/Metaterm.v
|
||||
proved M5 infra nfv_annot_bound_example theory/NamedMeasure.v
|
||||
proved M5 infra nocc_le_Mx theory/NamedMeasure.v
|
||||
proved M5 infra nplug_esub_fv theory/NamedMeta.v
|
||||
proved M5 infra nplug_fv_mono theory/NamedMeta.v
|
||||
proved M5 infra nplug_fv_upper theory/NamedMeta.v
|
||||
proved M5 infra nred_Gc_special theory/NamedMeasure.v
|
||||
proved M5 infra nred_R_intro theory/NamedMeta.v
|
||||
proved M5 infra nred_R_selfloop theory/NamedMeasure.v
|
||||
proved M5 infra nred_core_fv theory/NamedMeta.v
|
||||
proved M5 infra nred_fv theory/NamedMeta.v
|
||||
proved M5 infra nred_stable_source theory/NamedEs.v
|
||||
proved M5 infra nred_stable_target theory/NamedEs.v
|
||||
proved M5 infra of_trm_close theory/Metaterm.v
|
||||
proved M5 infra of_trm_fvs theory/Metaterm.v
|
||||
proved M5 infra of_trm_injective theory/Metaterm.v
|
||||
proved M5 infra of_trm_lift theory/Metaterm.v
|
||||
proved M5 infra of_trm_moccurs theory/Metaterm.v
|
||||
proved M5 infra of_trm_moccurs0 theory/Metaterm.v
|
||||
proved M5 infra of_trm_open theory/Metaterm.v
|
||||
proved M5 infra of_trm_plug theory/Metaterm.v
|
||||
proved M5 infra s_metavar_empty theory/NamedMeasure.v
|
||||
proved M5 infra subred_Es_l theory/NamedEs.v
|
||||
proved M5 infra subred_Es_lr theory/NamedEs.v
|
||||
proved M5 infra subred_Es_r theory/NamedEs.v
|
||||
proved M5 infra subred_context theory/NamedEs.v
|
||||
proved M5 infra subred_context_rule theory/NamedEs.v
|
||||
proved M5 infra subred_intro theory/NamedEs.v
|
||||
proved M5 infra subred_nred theory/NamedEs.v
|
||||
proved M5 infra subred_of_Es_nred_Es theory/NamedEs.v
|
||||
proved M5 infra subred_selfloop theory/NamedMeasure.v
|
||||
@@ -1,20 +1,20 @@
|
||||
digraph reduction_dup {
|
||||
rankdir=LR;
|
||||
bgcolor="white";
|
||||
node [fontname=Inter, fontsize=10];
|
||||
edge [fontname=Inter, fontsize=9, color="#333333"];
|
||||
graph [labelloc=t, fontcolor="#333333", label="(lambda x. x x) y reduction graph"];
|
||||
n0 [label="(lambda x. x x) y", shape=box, style="filled", fillcolor="#f5f5f5", color="#333333", fontcolor="#333333"];
|
||||
n1 [label="(x x)[x/y]", shape=box, style="filled", fillcolor="#f5f5f5", color="#333333", fontcolor="#333333"];
|
||||
n2 [label="(y x)[x/y]", shape=box, style="filled", fillcolor="#f5f5f5", color="#333333", fontcolor="#333333"];
|
||||
n2b [label="(x y)[x/y]", shape=box, style="filled", fillcolor="#f5f5f5", color="#333333", fontcolor="#333333"];
|
||||
n3 [label="(y y)[x/y]", shape=box, style="filled", fillcolor="#f5f5f5", color="#333333", fontcolor="#333333"];
|
||||
nf [label="y y (normal form)", shape=doublecircle, style=filled, fillcolor="#d9ead3", color="#38761d", fontcolor="#333333"];
|
||||
n0 -> n1 [label="B", color="#990000"];
|
||||
n1 -> n2 [label="R", color="#674ea7"];
|
||||
n1 -> n2b [label="R", color="#674ea7"];
|
||||
n2 -> n3 [label="R", color="#674ea7"];
|
||||
n2b -> n3 [label="R", color="#674ea7"];
|
||||
n3 -> nf [label="Gc", color="#38761d"];
|
||||
bgcolor="transparent";
|
||||
node [fontname=Inter, fontsize=10, fontcolor="#c9d1bb"];
|
||||
edge [fontname=Inter, fontsize=9, color="#8f9780", fontcolor="#c9d1bb"];
|
||||
graph [labelloc=t, fontcolor="#c9d1bb", label="(lambda x. x x) y reduction graph"];
|
||||
n0 [label="(lambda x. x x) y", shape=box, style="filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
n1 [label="(x x)[x/y]", shape=box, style="filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
n2 [label="(y x)[x/y]", shape=box, style="filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
n2b [label="(x y)[x/y]", shape=box, style="filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
n3 [label="(y y)[x/y]", shape=box, style="filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
nf [label="y y (normal form)", shape=doublecircle, style=filled, fillcolor="#2a3a22", color="#8fb071", fontcolor="#c9d1bb"];
|
||||
n0 -> n1 [label="B", color="#dfe7cc"];
|
||||
n1 -> n2 [label="R", color="#a9b492"];
|
||||
n1 -> n2b [label="R", color="#a9b492"];
|
||||
n2 -> n3 [label="R", color="#a9b492"];
|
||||
n2b -> n3 [label="R", color="#a9b492"];
|
||||
n3 -> nf [label="Gc", color="#8fb071"];
|
||||
{rank=same; n2; n2b;}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 28 KiB |
@@ -4,90 +4,89 @@
|
||||
<!-- Generated by graphviz version 2.42.4 (0)
|
||||
-->
|
||||
<!-- Title: reduction_dup Pages: 1 -->
|
||||
<svg width="580pt" height="154pt"
|
||||
viewBox="0.00 0.00 580.38 154.38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 150.38)">
|
||||
<svg width="601pt" height="160pt"
|
||||
viewBox="0.00 0.00 601.26 160.26" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 156.26)">
|
||||
<title>reduction_dup</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-150.38 576.38,-150.38 576.38,4 -4,4"/>
|
||||
<text text-anchor="middle" x="286.19" y="-131.18" font-family="Times,serif" font-size="14.00" fill="#333333">(lambda x. x x) y reduction graph</text>
|
||||
<text text-anchor="middle" x="296.63" y="-137.06" font-family="Times,serif" font-size="14.00" fill="#c9d1bb">(lambda x. x x) y reduction graph</text>
|
||||
<!-- n0 -->
|
||||
<g id="node1" class="node">
|
||||
<title>n0</title>
|
||||
<polygon fill="#f5f5f5" stroke="#333333" points="94,-79.69 0,-79.69 0,-43.69 94,-43.69 94,-79.69"/>
|
||||
<text text-anchor="middle" x="47" y="-59.19" font-family="Inter" font-size="10.00" fill="#333333">(lambda x. x x) y</text>
|
||||
<polygon fill="transparent" stroke="#a9b492" points="100,-82.63 0,-82.63 0,-46.63 100,-46.63 100,-82.63"/>
|
||||
<text text-anchor="middle" x="50" y="-62.13" font-family="Inter" font-size="10.00" fill="#c9d1bb">(lambda x. x x) y</text>
|
||||
</g>
|
||||
<!-- n1 -->
|
||||
<g id="node2" class="node">
|
||||
<title>n1</title>
|
||||
<polygon fill="#f5f5f5" stroke="#333333" points="196,-79.69 137,-79.69 137,-43.69 196,-43.69 196,-79.69"/>
|
||||
<text text-anchor="middle" x="166.5" y="-59.19" font-family="Inter" font-size="10.00" fill="#333333">(x x)[x/y]</text>
|
||||
<polygon fill="transparent" stroke="#a9b492" points="205,-82.63 143,-82.63 143,-46.63 205,-46.63 205,-82.63"/>
|
||||
<text text-anchor="middle" x="174" y="-62.13" font-family="Inter" font-size="10.00" fill="#c9d1bb">(x x)[x/y]</text>
|
||||
</g>
|
||||
<!-- n0->n1 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>n0->n1</title>
|
||||
<path fill="none" stroke="#990000" d="M94.1,-61.69C104.9,-61.69 116.3,-61.69 126.75,-61.69"/>
|
||||
<polygon fill="#990000" stroke="#990000" points="126.81,-65.19 136.81,-61.69 126.81,-58.19 126.81,-65.19"/>
|
||||
<text text-anchor="middle" x="115.5" y="-64.49" font-family="Inter" font-size="9.00">B</text>
|
||||
<path fill="none" stroke="#dfe7cc" d="M100.27,-64.63C111.08,-64.63 122.41,-64.63 132.81,-64.63"/>
|
||||
<polygon fill="#dfe7cc" stroke="#dfe7cc" points="132.86,-68.13 142.86,-64.63 132.86,-61.13 132.86,-68.13"/>
|
||||
<text text-anchor="middle" x="121.5" y="-67.43" font-family="Inter" font-size="9.00" fill="#c9d1bb">B</text>
|
||||
</g>
|
||||
<!-- n2 -->
|
||||
<g id="node3" class="node">
|
||||
<title>n2</title>
|
||||
<polygon fill="#f5f5f5" stroke="#333333" points="298,-107.69 239,-107.69 239,-71.69 298,-71.69 298,-107.69"/>
|
||||
<text text-anchor="middle" x="268.5" y="-87.19" font-family="Inter" font-size="10.00" fill="#333333">(y x)[x/y]</text>
|
||||
<polygon fill="transparent" stroke="#a9b492" points="310,-110.63 248,-110.63 248,-74.63 310,-74.63 310,-110.63"/>
|
||||
<text text-anchor="middle" x="279" y="-90.13" font-family="Inter" font-size="10.00" fill="#c9d1bb">(y x)[x/y]</text>
|
||||
</g>
|
||||
<!-- n1->n2 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>n1->n2</title>
|
||||
<path fill="none" stroke="#674ea7" d="M196.16,-69.71C206.41,-72.58 218.13,-75.87 229.08,-78.93"/>
|
||||
<polygon fill="#674ea7" stroke="#674ea7" points="228.27,-82.34 238.84,-81.66 230.15,-75.6 228.27,-82.34"/>
|
||||
<text text-anchor="middle" x="217.5" y="-78.49" font-family="Inter" font-size="9.00">R</text>
|
||||
<path fill="none" stroke="#a9b492" d="M205.07,-72.81C215.34,-75.6 227,-78.77 237.94,-81.74"/>
|
||||
<polygon fill="#a9b492" stroke="#a9b492" points="237.15,-85.15 247.72,-84.4 238.98,-78.4 237.15,-85.15"/>
|
||||
<text text-anchor="middle" x="226.5" y="-81.43" font-family="Inter" font-size="9.00" fill="#c9d1bb">R</text>
|
||||
</g>
|
||||
<!-- n2b -->
|
||||
<g id="node4" class="node">
|
||||
<title>n2b</title>
|
||||
<polygon fill="#f5f5f5" stroke="#333333" points="298,-53.69 239,-53.69 239,-17.69 298,-17.69 298,-53.69"/>
|
||||
<text text-anchor="middle" x="268.5" y="-33.19" font-family="Inter" font-size="10.00" fill="#333333">(x y)[x/y]</text>
|
||||
<polygon fill="transparent" stroke="#a9b492" points="310,-56.63 248,-56.63 248,-20.63 310,-20.63 310,-56.63"/>
|
||||
<text text-anchor="middle" x="279" y="-36.13" font-family="Inter" font-size="10.00" fill="#c9d1bb">(x y)[x/y]</text>
|
||||
</g>
|
||||
<!-- n1->n2b -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>n1->n2b</title>
|
||||
<path fill="none" stroke="#674ea7" d="M196.16,-54.24C206.41,-51.57 218.13,-48.52 229.08,-45.68"/>
|
||||
<polygon fill="#674ea7" stroke="#674ea7" points="230.04,-49.04 238.84,-43.14 228.28,-42.27 230.04,-49.04"/>
|
||||
<text text-anchor="middle" x="217.5" y="-51.49" font-family="Inter" font-size="9.00">R</text>
|
||||
<path fill="none" stroke="#a9b492" d="M205.07,-57.04C215.34,-54.45 227,-51.51 237.94,-48.75"/>
|
||||
<polygon fill="#a9b492" stroke="#a9b492" points="238.88,-52.12 247.72,-46.28 237.16,-45.33 238.88,-52.12"/>
|
||||
<text text-anchor="middle" x="226.5" y="-54.43" font-family="Inter" font-size="9.00" fill="#c9d1bb">R</text>
|
||||
</g>
|
||||
<!-- n3 -->
|
||||
<g id="node5" class="node">
|
||||
<title>n3</title>
|
||||
<polygon fill="#f5f5f5" stroke="#333333" points="400,-79.69 341,-79.69 341,-43.69 400,-43.69 400,-79.69"/>
|
||||
<text text-anchor="middle" x="370.5" y="-59.19" font-family="Inter" font-size="10.00" fill="#333333">(y y)[x/y]</text>
|
||||
<polygon fill="transparent" stroke="#a9b492" points="415,-82.63 353,-82.63 353,-46.63 415,-46.63 415,-82.63"/>
|
||||
<text text-anchor="middle" x="384" y="-62.13" font-family="Inter" font-size="10.00" fill="#c9d1bb">(y y)[x/y]</text>
|
||||
</g>
|
||||
<!-- n2->n3 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>n2->n3</title>
|
||||
<path fill="none" stroke="#674ea7" d="M298.16,-81.67C308.41,-78.79 320.13,-75.51 331.08,-72.45"/>
|
||||
<polygon fill="#674ea7" stroke="#674ea7" points="332.15,-75.78 340.84,-69.71 330.27,-69.04 332.15,-75.78"/>
|
||||
<text text-anchor="middle" x="319.5" y="-78.49" font-family="Inter" font-size="9.00">R</text>
|
||||
<path fill="none" stroke="#a9b492" d="M310.07,-84.46C320.34,-81.67 332,-78.5 342.94,-75.52"/>
|
||||
<polygon fill="#a9b492" stroke="#a9b492" points="343.98,-78.87 352.72,-72.86 342.15,-72.11 343.98,-78.87"/>
|
||||
<text text-anchor="middle" x="331.5" y="-81.43" font-family="Inter" font-size="9.00" fill="#c9d1bb">R</text>
|
||||
</g>
|
||||
<!-- n2b->n3 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>n2b->n3</title>
|
||||
<path fill="none" stroke="#674ea7" d="M298.16,-43.14C308.41,-45.8 320.13,-48.85 331.08,-51.7"/>
|
||||
<polygon fill="#674ea7" stroke="#674ea7" points="330.28,-55.11 340.84,-54.24 332.04,-48.33 330.28,-55.11"/>
|
||||
<text text-anchor="middle" x="319.5" y="-51.49" font-family="Inter" font-size="9.00">R</text>
|
||||
<path fill="none" stroke="#a9b492" d="M310.07,-46.22C320.34,-48.82 332,-51.76 342.94,-54.52"/>
|
||||
<polygon fill="#a9b492" stroke="#a9b492" points="342.16,-57.93 352.72,-56.99 343.88,-51.15 342.16,-57.93"/>
|
||||
<text text-anchor="middle" x="331.5" y="-54.43" font-family="Inter" font-size="9.00" fill="#c9d1bb">R</text>
|
||||
</g>
|
||||
<!-- nf -->
|
||||
<g id="node6" class="node">
|
||||
<title>nf</title>
|
||||
<ellipse fill="#d9ead3" stroke="#38761d" cx="510.69" cy="-61.69" rx="57.87" ry="57.87"/>
|
||||
<ellipse fill="none" stroke="#38761d" cx="510.69" cy="-61.69" rx="61.88" ry="61.88"/>
|
||||
<text text-anchor="middle" x="510.69" y="-59.19" font-family="Inter" font-size="10.00" fill="#333333">y y (normal form)</text>
|
||||
<ellipse fill="#2a3a22" stroke="#8fb071" cx="528.63" cy="-64.63" rx="60.76" ry="60.76"/>
|
||||
<ellipse fill="none" stroke="#8fb071" cx="528.63" cy="-64.63" rx="64.76" ry="64.76"/>
|
||||
<text text-anchor="middle" x="528.63" y="-62.13" font-family="Inter" font-size="10.00" fill="#c9d1bb">y y (normal form)</text>
|
||||
</g>
|
||||
<!-- n3->nf -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>n3->nf</title>
|
||||
<path fill="none" stroke="#38761d" d="M400.13,-61.69C411.41,-61.69 424.91,-61.69 438.51,-61.69"/>
|
||||
<polygon fill="#38761d" stroke="#38761d" points="438.9,-65.19 448.9,-61.69 438.9,-58.19 438.9,-65.19"/>
|
||||
<text text-anchor="middle" x="424.5" y="-64.49" font-family="Inter" font-size="9.00">Gc</text>
|
||||
<path fill="none" stroke="#8fb071" d="M415.25,-64.63C426.59,-64.63 440.03,-64.63 453.6,-64.63"/>
|
||||
<polygon fill="#8fb071" stroke="#8fb071" points="453.97,-68.13 463.97,-64.63 453.97,-61.13 453.97,-68.13"/>
|
||||
<text text-anchor="middle" x="439.5" y="-67.43" font-family="Inter" font-size="9.00" fill="#c9d1bb">Gc</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
@@ -1,19 +1,19 @@
|
||||
digraph lambda_sub_cfg {
|
||||
rankdir=TB;
|
||||
bgcolor="white";
|
||||
node [fontname=Inter, fontsize=10];
|
||||
edge [fontname=Inter, fontsize=9, color="#333333"];
|
||||
start [label="term", shape=oval, style=filled, fillcolor="#f3f3f3", color="#333333"];
|
||||
beta [label="(lambda x. t) u", shape=box, style="rounded,filled", fillcolor="#f5f5f5", color="#333333", fontcolor="#333333"];
|
||||
es [label="t[x/u]", shape=box, style="rounded,filled", fillcolor="#f5f5f5", color="#333333", fontcolor="#333333"];
|
||||
pure [label="pure term", shape=oval, style=filled, fillcolor="#f3f3f3", color="#333333"];
|
||||
nf [label="normal form", shape=doublecircle, style=filled, fillcolor="#d9ead3", color="#38761d"];
|
||||
bgcolor="transparent";
|
||||
node [fontname=Inter, fontsize=10, fontcolor="#c9d1bb"];
|
||||
edge [fontname=Inter, fontsize=9, color="#8f9780", fontcolor="#c9d1bb"];
|
||||
start [label="term", shape=oval, style=filled, fillcolor="transparent", color="#a9b492"];
|
||||
beta [label="(lambda x. t) u", shape=box, style="rounded,filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
es [label="t[x/u]", shape=box, style="rounded,filled", fillcolor="transparent", color="#a9b492", fontcolor="#c9d1bb"];
|
||||
pure [label="pure term", shape=oval, style=filled, fillcolor="transparent", color="#a9b492"];
|
||||
nf [label="normal form", shape=doublecircle, style=filled, fillcolor="#2a3a22", color="#8fb071"];
|
||||
start -> beta [label="App(Lam,_)"];
|
||||
start -> es [label="ESub"];
|
||||
start -> pure [label="BVar/FVar/Lam"];
|
||||
beta -> es [label="B", color="#990000"];
|
||||
es -> es [label="R (one occurrence)", color="#674ea7"];
|
||||
es -> pure [label="Gc (x not in fv)", color="#38761d"];
|
||||
pure -> pure [label="B under context", color="#990000"];
|
||||
es -> nf [label="R/Gc normalisation", color="#674ea7"];
|
||||
beta -> es [label="B", color="#dfe7cc"];
|
||||
es -> es [label="R (one occurrence)", color="#a9b492"];
|
||||
es -> pure [label="Gc (x not in fv)", color="#8fb071"];
|
||||
pure -> pure [label="B under context", color="#dfe7cc"];
|
||||
es -> nf [label="R/Gc normalisation", color="#a9b492"];
|
||||
}
|
||||
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 44 KiB |
@@ -4,97 +4,96 @@
|
||||
<!-- Generated by graphviz version 2.42.4 (0)
|
||||
-->
|
||||
<!-- Title: lambda_sub_cfg Pages: 1 -->
|
||||
<svg width="322pt" height="349pt"
|
||||
viewBox="0.00 0.00 321.65 349.12" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 345.12)">
|
||||
<svg width="338pt" height="353pt"
|
||||
viewBox="0.00 0.00 337.59 352.65" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 348.65)">
|
||||
<title>lambda_sub_cfg</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-345.12 317.65,-345.12 317.65,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<ellipse fill="#f3f3f3" stroke="#333333" cx="152.56" cy="-323.12" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="152.56" y="-320.62" font-family="Inter" font-size="10.00">term</text>
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="161.33" cy="-326.65" rx="27" ry="18"/>
|
||||
<text text-anchor="middle" x="161.33" y="-324.15" font-family="Inter" font-size="10.00" fill="#c9d1bb">term</text>
|
||||
</g>
|
||||
<!-- beta -->
|
||||
<g id="node2" class="node">
|
||||
<title>beta</title>
|
||||
<path fill="#f5f5f5" stroke="#333333" d="M104.56,-259.12C104.56,-259.12 44.56,-259.12 44.56,-259.12 38.56,-259.12 32.56,-253.12 32.56,-247.12 32.56,-247.12 32.56,-235.12 32.56,-235.12 32.56,-229.12 38.56,-223.12 44.56,-223.12 44.56,-223.12 104.56,-223.12 104.56,-223.12 110.56,-223.12 116.56,-229.12 116.56,-235.12 116.56,-235.12 116.56,-247.12 116.56,-247.12 116.56,-253.12 110.56,-259.12 104.56,-259.12"/>
|
||||
<text text-anchor="middle" x="74.56" y="-238.62" font-family="Inter" font-size="10.00" fill="#333333">(lambda x. t) u</text>
|
||||
<path fill="transparent" stroke="#a9b492" d="M112.83,-262.65C112.83,-262.65 47.83,-262.65 47.83,-262.65 41.83,-262.65 35.83,-256.65 35.83,-250.65 35.83,-250.65 35.83,-238.65 35.83,-238.65 35.83,-232.65 41.83,-226.65 47.83,-226.65 47.83,-226.65 112.83,-226.65 112.83,-226.65 118.83,-226.65 124.83,-232.65 124.83,-238.65 124.83,-238.65 124.83,-250.65 124.83,-250.65 124.83,-256.65 118.83,-262.65 112.83,-262.65"/>
|
||||
<text text-anchor="middle" x="80.33" y="-242.15" font-family="Inter" font-size="10.00" fill="#c9d1bb">(lambda x. t) u</text>
|
||||
</g>
|
||||
<!-- start->beta -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->beta</title>
|
||||
<path fill="none" stroke="#333333" d="M129.2,-313.7C116.24,-307.98 100.74,-299.23 90.56,-287.12 86.22,-281.96 83.02,-275.53 80.68,-269.16"/>
|
||||
<polygon fill="#333333" stroke="#333333" points="83.96,-267.92 77.66,-259.4 77.27,-269.99 83.96,-267.92"/>
|
||||
<text text-anchor="middle" x="114.56" y="-279.92" font-family="Inter" font-size="9.00">App(Lam,_)</text>
|
||||
<path fill="none" stroke="#8f9780" d="M137.21,-318.33C122.89,-312.84 105.43,-303.95 94.33,-290.65 90.06,-285.54 87.09,-279.13 85.03,-272.77"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" points="88.39,-271.78 82.47,-263 81.62,-273.56 88.39,-271.78"/>
|
||||
<text text-anchor="middle" x="120.83" y="-283.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">App(Lam,_)</text>
|
||||
</g>
|
||||
<!-- es -->
|
||||
<g id="node3" class="node">
|
||||
<title>es</title>
|
||||
<path fill="#f5f5f5" stroke="#333333" d="M89.56,-177.12C89.56,-177.12 59.56,-177.12 59.56,-177.12 53.56,-177.12 47.56,-171.12 47.56,-165.12 47.56,-165.12 47.56,-153.12 47.56,-153.12 47.56,-147.12 53.56,-141.12 59.56,-141.12 59.56,-141.12 89.56,-141.12 89.56,-141.12 95.56,-141.12 101.56,-147.12 101.56,-153.12 101.56,-153.12 101.56,-165.12 101.56,-165.12 101.56,-171.12 95.56,-177.12 89.56,-177.12"/>
|
||||
<text text-anchor="middle" x="74.56" y="-156.62" font-family="Inter" font-size="10.00" fill="#333333">t[x/u]</text>
|
||||
<path fill="transparent" stroke="#a9b492" d="M95.33,-180.65C95.33,-180.65 65.33,-180.65 65.33,-180.65 59.33,-180.65 53.33,-174.65 53.33,-168.65 53.33,-168.65 53.33,-156.65 53.33,-156.65 53.33,-150.65 59.33,-144.65 65.33,-144.65 65.33,-144.65 95.33,-144.65 95.33,-144.65 101.33,-144.65 107.33,-150.65 107.33,-156.65 107.33,-156.65 107.33,-168.65 107.33,-168.65 107.33,-174.65 101.33,-180.65 95.33,-180.65"/>
|
||||
<text text-anchor="middle" x="80.33" y="-160.15" font-family="Inter" font-size="10.00" fill="#c9d1bb">t[x/u]</text>
|
||||
</g>
|
||||
<!-- start->es -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>start->es</title>
|
||||
<path fill="none" stroke="#333333" d="M150.08,-304.88C146.66,-284.48 139.29,-249.92 125.56,-223.12 118.49,-209.31 108.05,-195.72 98.46,-184.71"/>
|
||||
<polygon fill="#333333" stroke="#333333" points="100.97,-182.27 91.68,-177.18 95.77,-186.96 100.97,-182.27"/>
|
||||
<text text-anchor="middle" x="149.56" y="-238.92" font-family="Inter" font-size="9.00">ESub</text>
|
||||
<path fill="none" stroke="#8f9780" d="M158.79,-308.73C155.23,-288.34 147.55,-253.48 133.33,-226.65 126,-212.83 115.25,-199.32 105.35,-188.37"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" points="107.73,-185.8 98.34,-180.88 102.62,-190.58 107.73,-185.8"/>
|
||||
<text text-anchor="middle" x="159.83" y="-242.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">ESub</text>
|
||||
</g>
|
||||
<!-- pure -->
|
||||
<g id="node4" class="node">
|
||||
<title>pure</title>
|
||||
<ellipse fill="#f3f3f3" stroke="#333333" cx="190.56" cy="-47.56" rx="37.17" ry="18"/>
|
||||
<text text-anchor="middle" x="190.56" y="-45.06" font-family="Inter" font-size="10.00">pure term</text>
|
||||
<ellipse fill="transparent" stroke="#a9b492" cx="199.33" cy="-49.33" rx="38.03" ry="18"/>
|
||||
<text text-anchor="middle" x="199.33" y="-46.83" font-family="Inter" font-size="10.00" fill="#c9d1bb">pure term</text>
|
||||
</g>
|
||||
<!-- start->pure -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>start->pure</title>
|
||||
<path fill="none" stroke="#333333" d="M161.51,-305.79C175.29,-279.58 201.13,-226.11 210.56,-177.12 217.31,-142.07 208.11,-101.31 200.07,-75.24"/>
|
||||
<polygon fill="#333333" stroke="#333333" points="203.39,-74.11 196.98,-65.68 196.73,-76.27 203.39,-74.11"/>
|
||||
<text text-anchor="middle" x="238.06" y="-197.92" font-family="Inter" font-size="9.00">BVar/FVar/Lam</text>
|
||||
<path fill="none" stroke="#8f9780" d="M170.73,-309.39C185.22,-283.27 212.39,-229.91 222.33,-180.65 229.55,-144.87 218.94,-103.29 209.86,-76.9"/>
|
||||
<polygon fill="#8f9780" stroke="#8f9780" points="213.06,-75.46 206.37,-67.25 206.48,-77.84 213.06,-75.46"/>
|
||||
<text text-anchor="middle" x="250.33" y="-201.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">BVar/FVar/Lam</text>
|
||||
</g>
|
||||
<!-- beta->es -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>beta->es</title>
|
||||
<path fill="none" stroke="#990000" d="M74.56,-222.76C74.56,-212.42 74.56,-199.06 74.56,-187.34"/>
|
||||
<polygon fill="#990000" stroke="#990000" points="78.06,-187.17 74.56,-177.17 71.06,-187.17 78.06,-187.17"/>
|
||||
<text text-anchor="middle" x="78.06" y="-197.92" font-family="Inter" font-size="9.00">B</text>
|
||||
<path fill="none" stroke="#dfe7cc" d="M80.33,-226.3C80.33,-215.95 80.33,-202.6 80.33,-190.87"/>
|
||||
<polygon fill="#dfe7cc" stroke="#dfe7cc" points="83.83,-190.7 80.33,-180.7 76.83,-190.7 83.83,-190.7"/>
|
||||
<text text-anchor="middle" x="83.83" y="-201.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">B</text>
|
||||
</g>
|
||||
<!-- es->es -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>es->es</title>
|
||||
<path fill="none" stroke="#674ea7" d="M101.8,-166.61C111.58,-166.78 119.56,-164.28 119.56,-159.12 119.56,-155.98 116.6,-153.83 112.07,-152.66"/>
|
||||
<polygon fill="#674ea7" stroke="#674ea7" points="112.1,-149.14 101.8,-151.63 111.4,-156.11 112.1,-149.14"/>
|
||||
<text text-anchor="middle" x="160.56" y="-156.92" font-family="Inter" font-size="9.00">R (one occurrence)</text>
|
||||
<path fill="none" stroke="#a9b492" d="M107.57,-170.15C117.35,-170.31 125.33,-167.81 125.33,-162.65 125.33,-159.51 122.37,-157.36 117.84,-156.19"/>
|
||||
<polygon fill="#a9b492" stroke="#a9b492" points="117.87,-152.68 107.57,-155.16 117.17,-159.64 117.87,-152.68"/>
|
||||
<text text-anchor="middle" x="169.33" y="-160.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">R (one occurrence)</text>
|
||||
</g>
|
||||
<!-- es->pure -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>es->pure</title>
|
||||
<path fill="none" stroke="#38761d" d="M101.76,-143.62C111.36,-137.88 121.9,-130.81 130.56,-123.12 147.08,-108.46 162.62,-88.93 173.74,-73.53"/>
|
||||
<polygon fill="#38761d" stroke="#38761d" points="176.85,-75.2 179.76,-65.01 171.13,-71.16 176.85,-75.2"/>
|
||||
<text text-anchor="middle" x="170.56" y="-115.92" font-family="Inter" font-size="9.00">Gc (x not in fv)</text>
|
||||
<path fill="none" stroke="#8fb071" d="M107.51,-146.64C116.77,-140.95 126.9,-134.04 135.33,-126.65 152.88,-111.26 169.72,-90.88 181.71,-75.05"/>
|
||||
<polygon fill="#8fb071" stroke="#8fb071" points="184.7,-76.9 187.85,-66.78 179.08,-72.72 184.7,-76.9"/>
|
||||
<text text-anchor="middle" x="178.83" y="-119.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">Gc (x not in fv)</text>
|
||||
</g>
|
||||
<!-- nf -->
|
||||
<g id="node5" class="node">
|
||||
<title>nf</title>
|
||||
<ellipse fill="#d9ead3" stroke="#38761d" cx="47.56" cy="-47.56" rx="43.62" ry="43.62"/>
|
||||
<ellipse fill="none" stroke="#38761d" cx="47.56" cy="-47.56" rx="47.62" ry="47.62"/>
|
||||
<text text-anchor="middle" x="47.56" y="-45.06" font-family="Inter" font-size="10.00">normal form</text>
|
||||
<ellipse fill="#2a3a22" stroke="#8fb071" cx="49.33" cy="-49.33" rx="45.17" ry="45.17"/>
|
||||
<ellipse fill="none" stroke="#8fb071" cx="49.33" cy="-49.33" rx="49.15" ry="49.15"/>
|
||||
<text text-anchor="middle" x="49.33" y="-46.83" font-family="Inter" font-size="10.00" fill="#c9d1bb">normal form</text>
|
||||
</g>
|
||||
<!-- es->nf -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>es->nf</title>
|
||||
<path fill="none" stroke="#674ea7" d="M58.42,-140.84C54.43,-135.54 50.7,-129.43 48.56,-123.12 46.65,-117.47 45.39,-111.43 44.62,-105.33"/>
|
||||
<polygon fill="#674ea7" stroke="#674ea7" points="48.08,-104.73 43.74,-95.06 41.1,-105.32 48.08,-104.73"/>
|
||||
<text text-anchor="middle" x="89.56" y="-115.92" font-family="Inter" font-size="9.00">R/Gc normalisation</text>
|
||||
<path fill="none" stroke="#a9b492" d="M61.42,-144.37C56.94,-139.16 52.76,-133.09 50.33,-126.65 48.2,-121.01 46.8,-114.97 45.93,-108.84"/>
|
||||
<polygon fill="#a9b492" stroke="#a9b492" points="49.37,-108.13 44.93,-98.51 42.41,-108.79 49.37,-108.13"/>
|
||||
<text text-anchor="middle" x="92.83" y="-119.45" font-family="Inter" font-size="9.00" fill="#c9d1bb">R/Gc normalisation</text>
|
||||
</g>
|
||||
<!-- pure->pure -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>pure->pure</title>
|
||||
<path fill="none" stroke="#990000" d="M217.49,-60.1C232.18,-62.34 245.65,-58.16 245.65,-47.56 245.65,-39.53 237.92,-35.19 227.77,-34.53"/>
|
||||
<polygon fill="#990000" stroke="#990000" points="227.31,-31.04 217.49,-35.02 227.64,-38.04 227.31,-31.04"/>
|
||||
<text text-anchor="middle" x="279.65" y="-45.36" font-family="Inter" font-size="9.00">B under context</text>
|
||||
<path fill="none" stroke="#dfe7cc" d="M226.25,-62.13C241.48,-64.64 255.59,-60.37 255.59,-49.33 255.59,-40.79 247.15,-36.3 236.28,-35.86"/>
|
||||
<polygon fill="#dfe7cc" stroke="#dfe7cc" points="236,-32.37 226.25,-36.52 236.45,-39.36 236,-32.37"/>
|
||||
<text text-anchor="middle" x="292.59" y="-47.13" font-family="Inter" font-size="9.00" fill="#c9d1bb">B under context</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.1 KiB |
@@ -12,9 +12,10 @@
|
||||
"M1",
|
||||
"M2",
|
||||
"M3",
|
||||
"M4"
|
||||
"M4",
|
||||
"M5"
|
||||
],
|
||||
"current": "M4",
|
||||
"current": "M5",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "fvs_lift",
|
||||
@@ -288,6 +289,217 @@
|
||||
"steps_complete"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "of_trm_fvs",
|
||||
"label": "of_trm_fvs",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "of_trm_lift",
|
||||
"label": "of_trm_lift",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "of_trm_open",
|
||||
"label": "of_trm_open",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": [
|
||||
"of_trm_lift"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "of_trm_close",
|
||||
"label": "of_trm_close",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "of_trm_injective",
|
||||
"label": "of_trm_injective",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "mfvs_lift_m",
|
||||
"label": "mfvs_lift_m",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "mfvs_close_m",
|
||||
"label": "mfvs_close_m",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "mfvs_open_m",
|
||||
"label": "mfvs_open_m",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": [
|
||||
"mfvs_lift_m"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "of_trm_plug",
|
||||
"label": "of_trm_plug",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "mred_of_red1",
|
||||
"label": "mred_of_red1",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "mred_context",
|
||||
"label": "mred_context",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "mred_term_context",
|
||||
"label": "mred_term_context",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": [
|
||||
"of_trm_plug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "of_trm_moccurs",
|
||||
"label": "of_trm_moccurs",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "of_trm_moccurs0",
|
||||
"label": "of_trm_moccurs0",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": [
|
||||
"of_trm_moccurs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mred_B_intro",
|
||||
"label": "mred_B_intro",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "mred_gc_intro",
|
||||
"label": "mred_gc_intro",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "mred_r_intro",
|
||||
"label": "mred_r_intro",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "Plus_mred_of_Plus_red1",
|
||||
"label": "Plus_mred_of_Plus_red1",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "mred_full_comp_pure",
|
||||
"label": "mred_full_comp_pure",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": [
|
||||
"Plus_mred_of_Plus_red1",
|
||||
"lemma_2_2_full_comp"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mred_plus_one",
|
||||
"label": "mred_plus_one",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/Metaterm.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "Plus_red1_context",
|
||||
"label": "Plus_red1_context",
|
||||
@@ -497,6 +709,558 @@
|
||||
"file": "theory/Metatheory.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "subred_intro",
|
||||
"label": "subred_intro",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "subred_nred",
|
||||
"label": "subred_nred",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": [
|
||||
"subred_intro"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "subred_Es_l",
|
||||
"label": "subred_Es_l",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": [
|
||||
"subred_intro"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "subred_Es_r",
|
||||
"label": "subred_Es_r",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": [
|
||||
"subred_intro"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "subred_Es_lr",
|
||||
"label": "subred_Es_lr",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": [
|
||||
"subred_Es_l",
|
||||
"subred_Es_r"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "subred_context",
|
||||
"label": "subred_context",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": [
|
||||
"subred_intro"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "subred_context_rule",
|
||||
"label": "subred_context_rule",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": [
|
||||
"subred_context",
|
||||
"subred_nred"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "subred_of_Es_nred_Es",
|
||||
"label": "subred_of_Es_nred_Es",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": [
|
||||
"subred_intro"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nred_stable_source",
|
||||
"label": "nred_stable_source",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": [
|
||||
"subred_intro"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nred_stable_target",
|
||||
"label": "nred_stable_target",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": [
|
||||
"subred_intro"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "StarN_trans",
|
||||
"label": "StarN_trans",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "StarN_one_trans",
|
||||
"label": "StarN_one_trans",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "PlusN_to_StarN",
|
||||
"label": "PlusN_to_StarN",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "StarN_subred_context",
|
||||
"label": "StarN_subred_context",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedEs.v",
|
||||
"depends": [
|
||||
"subred_context"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Mx_ge_0",
|
||||
"label": "Mx_ge_0",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "head_has_pos",
|
||||
"label": "head_has_pos",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "le_mul_of_one_le",
|
||||
"label": "le_mul_of_one_le",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "nocc_le_Mx",
|
||||
"label": "nocc_le_Mx",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": [
|
||||
"head_has_pos",
|
||||
"le_mul_of_one_le"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nfv_annot_bound_example",
|
||||
"label": "nfv_annot_bound_example",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "Mx_fresh_fails",
|
||||
"label": "Mx_fresh_fails",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": [
|
||||
"nfv_annot_bound_example"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "A1_C_related",
|
||||
"label": "A1_C_related",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "A1_s_differ",
|
||||
"label": "A1_s_differ",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "A1_Mx_differ",
|
||||
"label": "A1_Mx_differ",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "A1_not_invariant",
|
||||
"label": "A1_not_invariant",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": [
|
||||
"A1_C_related",
|
||||
"A1_s_differ"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Gc_special_nondecrease",
|
||||
"label": "Gc_special_nondecrease",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "nred_Gc_special",
|
||||
"label": "nred_Gc_special",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "s_metavar_empty",
|
||||
"label": "s_metavar_empty",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "nred_R_selfloop",
|
||||
"label": "nred_R_selfloop",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "current_sm_not_terminating",
|
||||
"label": "current_sm_not_terminating",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": [
|
||||
"nred_R_selfloop"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "subred_selfloop",
|
||||
"label": "subred_selfloop",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": [
|
||||
"nred_R_selfloop",
|
||||
"subred_nred"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "current_subred_not_terminating",
|
||||
"label": "current_subred_not_terminating",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeasure.v",
|
||||
"depends": [
|
||||
"subred_selfloop"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "isubst_meta_in",
|
||||
"label": "isubst_meta_in",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "isubst_meta_notin",
|
||||
"label": "isubst_meta_notin",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "eqC_in_Es",
|
||||
"label": "eqC_in_Es",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "Es_ctx_any",
|
||||
"label": "Es_ctx_any",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "nred_R_intro",
|
||||
"label": "nred_R_intro",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "Es_refl_any",
|
||||
"label": "Es_refl_any",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "Es_sym_any",
|
||||
"label": "Es_sym_any",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "Es_trans_any",
|
||||
"label": "Es_trans_any",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "in_filter_neq",
|
||||
"label": "in_filter_neq",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "filter_neq_in",
|
||||
"label": "filter_neq_in",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "nplug_fv_mono",
|
||||
"label": "nplug_fv_mono",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": [
|
||||
"filter_neq_in",
|
||||
"in_filter_neq"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nplug_fv_upper",
|
||||
"label": "nplug_fv_upper",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": [
|
||||
"filter_neq_in",
|
||||
"in_filter_neq"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nred_core_fv",
|
||||
"label": "nred_core_fv",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": [
|
||||
"filter_neq_in",
|
||||
"in_filter_neq",
|
||||
"nplug_fv_mono",
|
||||
"nplug_fv_upper"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nplug_esub_fv",
|
||||
"label": "nplug_esub_fv",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": [
|
||||
"filter_neq_in",
|
||||
"in_filter_neq"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "nred_fv",
|
||||
"label": "nred_fv",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": [
|
||||
"filter_neq_in",
|
||||
"in_filter_neq",
|
||||
"nplug_esub_fv",
|
||||
"nplug_fv_mono",
|
||||
"nplug_fv_upper"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "in_filter_neq_iff",
|
||||
"label": "in_filter_neq_iff",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": []
|
||||
},
|
||||
{
|
||||
"id": "Es_fv_both",
|
||||
"label": "Es_fv_both",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": [
|
||||
"in_filter_neq_iff",
|
||||
"nplug_fv_mono"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Es_fv",
|
||||
"label": "Es_fv",
|
||||
"kind": "infra",
|
||||
"status": "proved",
|
||||
"milestone": "M5",
|
||||
"section": "",
|
||||
"file": "theory/NamedMeta.v",
|
||||
"depends": [
|
||||
"Es_fv_both"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "par_red1_iff",
|
||||
"label": "par_red1_iff",
|
||||
|
||||
@@ -35,7 +35,7 @@ done < <(find theory -name '*.v' -print0 2>/dev/null)
|
||||
echo "== Print Assumptions =="
|
||||
WORK="$(mktemp -d ./.audit-work.XXXXXX)"
|
||||
cp theory/*.v "$WORK"/
|
||||
for f in ExecReducer Binding Reduction Metatheory Closure Subsystem Substitution Parallel Metaterm Tests Random Enumerate; do
|
||||
for f in ExecReducer Binding Reduction Metatheory Closure Subsystem Substitution Parallel Metaterm NamedMeta NamedEs NamedMeasure Tests Random Enumerate; do
|
||||
echo "-- $f"
|
||||
out="$(rocq compile -Q "$WORK" LambdaSub "$WORK/$f.v" 2>&1 || true)"
|
||||
echo "$out"
|
||||
|
||||
@@ -25,6 +25,10 @@ MILESTONE = {
|
||||
"Substitution": "M2",
|
||||
"Subsystem": "M3",
|
||||
"Parallel": "M4",
|
||||
"Metaterm": "M5",
|
||||
"NamedMeta": "M5",
|
||||
"NamedEs": "M5",
|
||||
"NamedMeasure": "M5",
|
||||
"Tests": "M2",
|
||||
"Random": "M2",
|
||||
"Enumerate": "M2",
|
||||
|
||||
@@ -9,28 +9,18 @@ ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
GRAPH_DIR = os.path.join(ROOT, "graphs")
|
||||
META = os.path.join(GRAPH_DIR, "theorems.json")
|
||||
|
||||
STATUS_FILL = {
|
||||
"proved": "#d9ead3",
|
||||
"stated": "#fff2cc",
|
||||
"planned": "#f3f3f3",
|
||||
"blocked": "#f4cccc",
|
||||
}
|
||||
STATUS_PEN = {
|
||||
"proved": "#38761d",
|
||||
"stated": "#b45f06",
|
||||
"planned": "#777777",
|
||||
"blocked": "#cc0000",
|
||||
}
|
||||
STATUS_STYLE = {
|
||||
"proved": "filled",
|
||||
"stated": "filled,dashed",
|
||||
"planned": "dashed",
|
||||
"blocked": "filled,bold",
|
||||
}
|
||||
INK = "#333333"
|
||||
RULE_B = "#990000"
|
||||
RULE_R = "#674ea7"
|
||||
RULE_G = "#38761d"
|
||||
# Dark sage palette, transparent so the diagrams sit on the page background.
|
||||
INK = "#a9b492"
|
||||
MUTED = "#8f9780"
|
||||
FONT = "#c9d1bb"
|
||||
FILL = "transparent"
|
||||
EXT_FILL = "transparent"
|
||||
NF_FILL = "#2a3a22"
|
||||
|
||||
# Distinct sage tones for the rule sketches.
|
||||
RULE_B = "#dfe7cc"
|
||||
RULE_R = "#a9b492"
|
||||
RULE_G = "#8fb071"
|
||||
|
||||
|
||||
def q(s):
|
||||
@@ -46,110 +36,146 @@ def esc_html(s):
|
||||
return str(s).replace("&", "&").replace("<", "<").replace(">", ">")
|
||||
|
||||
|
||||
def dependency_dot(data):
|
||||
nodes = data["nodes"]
|
||||
by_id = {n["id"]: n for n in nodes}
|
||||
title = data["paper"]["title"] + " - theorem dependency (" + data["current"] + ")"
|
||||
legend = (
|
||||
"<B>" + esc_html(title) + "</B>"
|
||||
"<BR/><FONT POINT-SIZE=\"9\">"
|
||||
"<FONT COLOR=\"#38761d\">proved</FONT> "
|
||||
"<FONT COLOR=\"#b45f06\">stated</FONT> "
|
||||
"<FONT COLOR=\"#777777\">planned</FONT> "
|
||||
"<FONT COLOR=\"#cc0000\">blocked</FONT>"
|
||||
"</FONT>"
|
||||
def node_line(n, external=False):
|
||||
if external:
|
||||
label = n["id"] + "\\n(" + n["milestone"] + ")"
|
||||
shape = "box"
|
||||
style = "rounded,dashed,filled"
|
||||
fill = EXT_FILL
|
||||
color = MUTED
|
||||
fontcolor = FONT
|
||||
pen = 0.9
|
||||
else:
|
||||
label = n["id"]
|
||||
shape = "box" if n["kind"] == "paper" else "ellipse"
|
||||
style = "rounded,filled" if n["kind"] == "paper" else "filled"
|
||||
fill = FILL
|
||||
color = INK
|
||||
fontcolor = FONT
|
||||
pen = 1.0
|
||||
tip = n["id"]
|
||||
if n.get("section"):
|
||||
tip += " (section " + n["section"] + ")"
|
||||
if n.get("file"):
|
||||
tip += " " + n["file"]
|
||||
tip += " " + n["status"]
|
||||
return (
|
||||
" %s [label=%s, shape=%s, style=%s, fillcolor=%s, color=%s, "
|
||||
"penwidth=%.1f, fontcolor=%s, tooltip=%s];"
|
||||
% (n["id"], q(label), shape, q(style), q(fill), q(color), pen, q(fontcolor), q(tip))
|
||||
)
|
||||
lines = [
|
||||
"digraph theorem_deps {",
|
||||
|
||||
|
||||
def dep_header(title):
|
||||
return [
|
||||
"digraph deps {",
|
||||
" rankdir=LR;",
|
||||
' bgcolor="white";',
|
||||
" splines=spline;",
|
||||
" nodesep=0.22;",
|
||||
" ranksep=0.6;",
|
||||
' node [fontname=Inter, fontsize=9, fontcolor="#222222"];',
|
||||
' edge [fontname=Inter, fontsize=8, color="#9a9a9a", arrowsize=0.6, penwidth=0.8];',
|
||||
" graph [fontname=Inter, fontsize=12, labelloc=t, label=<%s>];" % legend,
|
||||
' bgcolor="transparent";',
|
||||
" splines=polyline;",
|
||||
" concentrate=true;",
|
||||
" nodesep=0.2;",
|
||||
" ranksep=0.9;",
|
||||
' node [fontname=Inter, fontsize=9];',
|
||||
' edge [fontname=Inter, fontsize=8, color="%s", fontcolor="%s", arrowsize=0.6, penwidth=0.8];' % (MUTED, FONT),
|
||||
' graph [fontname=Inter, fontsize=12, labelloc=t, fontcolor="%s", label=<<B>%s</B>>];' % (FONT, esc_html(title)),
|
||||
]
|
||||
for n in nodes:
|
||||
fill = STATUS_FILL.get(n["status"], "#f3f3f3")
|
||||
pen = STATUS_PEN.get(n["status"], "#777777")
|
||||
style = STATUS_STYLE.get(n["status"], "dashed")
|
||||
tip = n["id"]
|
||||
if n.get("section"):
|
||||
tip += " (section " + n["section"] + ")"
|
||||
if n.get("file"):
|
||||
tip += " " + n["file"]
|
||||
tip += " " + data["paper"]["html"]
|
||||
if n["kind"] == "paper":
|
||||
shape = "box"
|
||||
style = "rounded," + style
|
||||
else:
|
||||
shape = "ellipse"
|
||||
attrs = [
|
||||
"label=%s" % q(n["label"]),
|
||||
"color=%s" % q(pen),
|
||||
"fillcolor=%s" % q(fill),
|
||||
"style=%s" % q(style),
|
||||
"fontcolor=%s" % q("#222222"),
|
||||
"tooltip=%s" % q(tip),
|
||||
"shape=%s" % shape,
|
||||
]
|
||||
lines.append(" %s [%s];" % (n["id"], ", ".join(attrs)))
|
||||
for n in nodes:
|
||||
for d in n.get("depends", []):
|
||||
|
||||
|
||||
def dependency_overview_dot(data):
|
||||
by_id = {n["id"]: n for n in data["nodes"]}
|
||||
counts = {}
|
||||
for n in data["nodes"]:
|
||||
counts[n["milestone"]] = counts.get(n["milestone"], 0) + 1
|
||||
milestones = [m for m in data["milestones"] if counts.get(m)]
|
||||
edges = set()
|
||||
for n in data["nodes"]:
|
||||
for d in n["depends"]:
|
||||
if d in by_id:
|
||||
a = by_id[d]["milestone"]
|
||||
b = n["milestone"]
|
||||
if a != b and a in counts and b in counts:
|
||||
edges.add((a, b))
|
||||
lines = dep_header("Theorem dependency by milestone")
|
||||
for m in milestones:
|
||||
label = "%s\\n%d results" % (m, counts[m])
|
||||
lines.append(
|
||||
' %s [label=%s, shape=box, style="rounded,filled", fillcolor=%s, '
|
||||
"color=%s, fontcolor=%s];" % (m, q(label), q(FILL), q(INK), q(FONT))
|
||||
)
|
||||
for a, b in sorted(edges):
|
||||
lines.append(" %s -> %s;" % (a, b))
|
||||
lines.append("}")
|
||||
return "\n".join(lines) + "\n"
|
||||
|
||||
|
||||
def dependency_subset_dot(data, title, keep_ids):
|
||||
by_id = {n["id"]: n for n in data["nodes"]}
|
||||
inside = [n for n in data["nodes"] if n["id"] in keep_ids]
|
||||
ids = {n["id"] for n in inside}
|
||||
ext_ids = sorted(
|
||||
{d for n in inside for d in n["depends"] if d not in ids and d in by_id}
|
||||
)
|
||||
lines = dep_header(title)
|
||||
for d in ext_ids:
|
||||
lines.append(node_line(by_id[d], external=True))
|
||||
for n in sorted(inside, key=lambda x: (x["file"], x["id"])):
|
||||
lines.append(node_line(n))
|
||||
keep = ids | set(ext_ids)
|
||||
for n in inside:
|
||||
for d in n["depends"]:
|
||||
if d in keep:
|
||||
lines.append(" %s -> %s;" % (d, n["id"]))
|
||||
lines.append("}")
|
||||
return "\n".join(lines) + "\n"
|
||||
|
||||
|
||||
def rules_dot():
|
||||
box = 'shape=box, style="rounded,filled", fillcolor="#f5f5f5", color="%s", fontcolor="%s"' % (INK, INK)
|
||||
box = 'shape=box, style="rounded,filled", fillcolor="%s", color="%s", fontcolor="%s"' % (FILL, INK, FONT)
|
||||
lines = [
|
||||
"digraph lambda_sub_cfg {",
|
||||
" rankdir=TB;",
|
||||
" bgcolor=\"white\";",
|
||||
" node [fontname=Inter, fontsize=10];",
|
||||
" edge [fontname=Inter, fontsize=9, color=\"%s\"];" % INK,
|
||||
" start [label=\"term\", shape=oval, style=filled, fillcolor=\"#f3f3f3\", color=\"%s\"];" % INK,
|
||||
' bgcolor="transparent";',
|
||||
' node [fontname=Inter, fontsize=10, fontcolor="%s"];' % FONT,
|
||||
' edge [fontname=Inter, fontsize=9, color="%s", fontcolor="%s"];' % (MUTED, FONT),
|
||||
' start [label="term", shape=oval, style=filled, fillcolor="%s", color="%s"];' % (FILL, INK),
|
||||
" beta [label=\"(lambda x. t) u\", %s];" % box,
|
||||
" es [label=\"t[x/u]\", %s];" % box,
|
||||
" pure [label=\"pure term\", shape=oval, style=filled, fillcolor=\"#f3f3f3\", color=\"%s\"];" % INK,
|
||||
" nf [label=\"normal form\", shape=doublecircle, style=filled, fillcolor=\"#d9ead3\", color=\"%s\"];" % RULE_G,
|
||||
" start -> beta [label=\"App(Lam,_)\"];",
|
||||
" start -> es [label=\"ESub\"];",
|
||||
" start -> pure [label=\"BVar/FVar/Lam\"];",
|
||||
" beta -> es [label=\"B\", color=\"%s\"];" % RULE_B,
|
||||
" es -> es [label=\"R (one occurrence)\", color=\"%s\"];" % RULE_R,
|
||||
" es -> pure [label=\"Gc (x not in fv)\", color=\"%s\"];" % RULE_G,
|
||||
" pure -> pure [label=\"B under context\", color=\"%s\"];" % RULE_B,
|
||||
" es -> nf [label=\"R/Gc normalisation\", color=\"%s\"];" % RULE_R,
|
||||
' pure [label="pure term", shape=oval, style=filled, fillcolor="%s", color="%s"];' % (FILL, INK),
|
||||
' nf [label="normal form", shape=doublecircle, style=filled, fillcolor="%s", color="%s"];' % (NF_FILL, RULE_G),
|
||||
' start -> beta [label="App(Lam,_)"];',
|
||||
' start -> es [label="ESub"];',
|
||||
' start -> pure [label="BVar/FVar/Lam"];',
|
||||
' beta -> es [label="B", color="%s"];' % RULE_B,
|
||||
' es -> es [label="R (one occurrence)", color="%s"];' % RULE_R,
|
||||
' es -> pure [label="Gc (x not in fv)", color="%s"];' % RULE_G,
|
||||
' pure -> pure [label="B under context", color="%s"];' % RULE_B,
|
||||
' es -> nf [label="R/Gc normalisation", color="%s"];' % RULE_R,
|
||||
"}",
|
||||
]
|
||||
return "\n".join(lines) + "\n"
|
||||
|
||||
|
||||
def reduction_dot():
|
||||
box = 'shape=box, style="filled", fillcolor="#f5f5f5", color="%s", fontcolor="%s"' % (INK, INK)
|
||||
box = 'shape=box, style="filled", fillcolor="%s", color="%s", fontcolor="%s"' % (FILL, INK, FONT)
|
||||
lines = [
|
||||
"digraph reduction_dup {",
|
||||
" rankdir=LR;",
|
||||
" bgcolor=\"white\";",
|
||||
" node [fontname=Inter, fontsize=10];",
|
||||
" edge [fontname=Inter, fontsize=9, color=\"%s\"];" % INK,
|
||||
" graph [labelloc=t, fontcolor=\"%s\", label=\"(lambda x. x x) y reduction graph\"];" % INK,
|
||||
' bgcolor="transparent";',
|
||||
' node [fontname=Inter, fontsize=10, fontcolor="%s"];' % FONT,
|
||||
' edge [fontname=Inter, fontsize=9, color="%s", fontcolor="%s"];' % (MUTED, FONT),
|
||||
' graph [labelloc=t, fontcolor="%s", label="(lambda x. x x) y reduction graph"];' % FONT,
|
||||
" n0 [label=\"(lambda x. x x) y\", %s];" % box,
|
||||
" n1 [label=\"(x x)[x/y]\", %s];" % box,
|
||||
" n2 [label=\"(y x)[x/y]\", %s];" % box,
|
||||
" n2b [label=\"(x y)[x/y]\", %s];" % box,
|
||||
" n3 [label=\"(y y)[x/y]\", %s];" % box,
|
||||
" nf [label=\"y y (normal form)\", shape=doublecircle, style=filled, fillcolor=\"#d9ead3\", color=\"%s\", fontcolor=\"%s\"];" % (RULE_G, INK),
|
||||
" n0 -> n1 [label=\"B\", color=\"%s\"];" % RULE_B,
|
||||
" n1 -> n2 [label=\"R\", color=\"%s\"];" % RULE_R,
|
||||
" n1 -> n2b [label=\"R\", color=\"%s\"];" % RULE_R,
|
||||
" n2 -> n3 [label=\"R\", color=\"%s\"];" % RULE_R,
|
||||
" n2b -> n3 [label=\"R\", color=\"%s\"];" % RULE_R,
|
||||
" n3 -> nf [label=\"Gc\", color=\"%s\"];" % RULE_G,
|
||||
' nf [label="y y (normal form)", shape=doublecircle, style=filled, fillcolor="%s", color="%s", fontcolor="%s"];' % (NF_FILL, RULE_G, FONT),
|
||||
' n0 -> n1 [label="B", color="%s"];' % RULE_B,
|
||||
' n1 -> n2 [label="R", color="%s"];' % RULE_R,
|
||||
' n1 -> n2b [label="R", color="%s"];' % RULE_R,
|
||||
' n2 -> n3 [label="R", color="%s"];' % RULE_R,
|
||||
' n2b -> n3 [label="R", color="%s"];' % RULE_R,
|
||||
' n3 -> nf [label="Gc", color="%s"];' % RULE_G,
|
||||
" {rank=same; n2; n2b;}",
|
||||
"}",
|
||||
]
|
||||
@@ -192,11 +218,22 @@ def main():
|
||||
print("wrote", os.path.relpath(args.meta, ROOT))
|
||||
else:
|
||||
data = load(args.meta)
|
||||
outputs = {
|
||||
"dependency.dot": dependency_dot(data),
|
||||
"rules.dot": rules_dot(),
|
||||
"reduction.dot": reduction_dot(),
|
||||
}
|
||||
|
||||
counts = {}
|
||||
for n in data["nodes"]:
|
||||
counts[n["milestone"]] = counts.get(n["milestone"], 0) + 1
|
||||
|
||||
outputs = {"dependency-overview.dot": dependency_overview_dot(data)}
|
||||
for m in data["milestones"]:
|
||||
if not counts.get(m):
|
||||
continue
|
||||
keep = {n["id"] for n in data["nodes"] if n["milestone"] == m}
|
||||
title = "Theorem dependencies %s, %d results" % (m, counts[m])
|
||||
outputs["dependency-%s.dot" % m] = dependency_subset_dot(data, title, keep)
|
||||
|
||||
outputs["rules.dot"] = rules_dot()
|
||||
outputs["reduction.dot"] = reduction_dot()
|
||||
|
||||
ok = True
|
||||
for name, text in outputs.items():
|
||||
path = os.path.join(args.outdir, name)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
From Stdlib Require Import List Bool Arith Lia PeanoNat.
|
||||
Import ListNotations.
|
||||
From LambdaSub Require Import ExecReducer Binding.
|
||||
From LambdaSub Require Import ExecReducer Binding Reduction Closure Metatheory.
|
||||
|
||||
Inductive mtrm : Type :=
|
||||
| mBVar : nat -> mtrm
|
||||
@@ -110,3 +110,218 @@ Print Assumptions of_trm_lift.
|
||||
Print Assumptions of_trm_open.
|
||||
Print Assumptions of_trm_close.
|
||||
Print Assumptions of_trm_injective.
|
||||
|
||||
Lemma mfvs_lift_m : forall t k, mfvs (lift_m k t) = mfvs t.
|
||||
Proof.
|
||||
induction t; intros k; simpl.
|
||||
- destruct (Nat.ltb n k); reflexivity.
|
||||
- reflexivity.
|
||||
- reflexivity.
|
||||
- rewrite IHt1, IHt2. reflexivity.
|
||||
- rewrite IHt. reflexivity.
|
||||
- rewrite IHt1, IHt2. reflexivity.
|
||||
Qed.
|
||||
|
||||
Lemma mfvs_close_m : forall t x k y, In y (mfvs (close_rec_m x k t)) -> In y (mfvs t).
|
||||
Proof.
|
||||
induction t; intros x k y H; simpl in *.
|
||||
- destruct H.
|
||||
- destruct (Nat.eqb a x) eqn:E.
|
||||
+ destruct H.
|
||||
+ destruct H as [Hy | Hf]. subst y. simpl. left. reflexivity. destruct Hf.
|
||||
- exact H.
|
||||
- apply in_app_iff in H as [H|H]; apply in_app_iff.
|
||||
+ left. apply (IHt1 x k y). exact H.
|
||||
+ right. apply (IHt2 x k y). exact H.
|
||||
- apply (IHt x (S k) y). exact H.
|
||||
- apply in_app_iff in H as [H|H]; apply in_app_iff.
|
||||
+ left. apply (IHt1 x (S k) y). exact H.
|
||||
+ right. apply (IHt2 x k y). exact H.
|
||||
Qed.
|
||||
|
||||
Lemma mfvs_open_m : forall t k u y,
|
||||
In y (mfvs (open_rec_m k u t)) -> In y (mfvs u) \/ In y (mfvs t).
|
||||
Proof.
|
||||
induction t; intros k u y H; simpl in *.
|
||||
- destruct (Nat.eqb n k) eqn:E.
|
||||
+ apply Nat.eqb_eq in E. subst n. simpl in H.
|
||||
left. rewrite <- (mfvs_lift_m u k). exact H.
|
||||
+ simpl in H. destruct H.
|
||||
- right. exact H.
|
||||
- right. exact H.
|
||||
- apply in_app_iff in H as [H|H].
|
||||
+ destruct (IHt1 k u y H) as [Hl|Hr]. left; exact Hl. right; apply in_app_iff; left; exact Hr.
|
||||
+ destruct (IHt2 k u y H) as [Hl|Hr]. left; exact Hl. right; apply in_app_iff; right; exact Hr.
|
||||
- destruct (IHt (S k) u y H) as [Hl|Hr]. left; exact Hl. right; exact Hr.
|
||||
- apply in_app_iff in H as [H|H].
|
||||
+ destruct (IHt1 (S k) u y H) as [Hl|Hr]. left; exact Hl. right; apply in_app_iff; left; exact Hr.
|
||||
+ destruct (IHt2 k u y H) as [Hl|Hr]. left; exact Hl. right; apply in_app_iff; right; exact Hr.
|
||||
Qed.
|
||||
|
||||
Print Assumptions mfvs_lift_m.
|
||||
Print Assumptions mfvs_close_m.
|
||||
Print Assumptions mfvs_open_m.
|
||||
|
||||
Inductive mctx : Type :=
|
||||
| mGHole : mctx
|
||||
| mGAppL : mctx -> mtrm -> mctx
|
||||
| mGAppR : mtrm -> mctx -> mctx
|
||||
| mGLam : mctx -> mctx
|
||||
| mGESubL : mctx -> mtrm -> mctx
|
||||
| mGESubR : mtrm -> mctx -> mctx.
|
||||
|
||||
Fixpoint mplug (C : mctx) (t : mtrm) : mtrm :=
|
||||
match C with
|
||||
| mGHole => t
|
||||
| mGAppL C1 u => mApp (mplug C1 t) u
|
||||
| mGAppR u C1 => mApp u (mplug C1 t)
|
||||
| mGLam C1 => mLam (mplug C1 t)
|
||||
| mGESubL C1 u => mESub (mplug C1 t) u
|
||||
| mGESubR t1 C1 => mESub t1 (mplug C1 t)
|
||||
end.
|
||||
|
||||
Fixpoint mctx_of (C : ctx) : mctx :=
|
||||
match C with
|
||||
| GHole => mGHole
|
||||
| GAppL C1 u => mGAppL (mctx_of C1) (of_trm u)
|
||||
| GAppR u C1 => mGAppR (of_trm u) (mctx_of C1)
|
||||
| GLam C1 => mGLam (mctx_of C1)
|
||||
| GESubL C1 u => mGESubL (mctx_of C1) (of_trm u)
|
||||
| GESubR t1 C1 => mGESubR (of_trm t1) (mctx_of C1)
|
||||
end.
|
||||
|
||||
Lemma of_trm_plug : forall C t, of_trm (plug C t) = mplug (mctx_of C) (of_trm t).
|
||||
Proof.
|
||||
induction C; intros a; simpl; try reflexivity; rewrite IHC; reflexivity.
|
||||
Qed.
|
||||
|
||||
Fixpoint moccurs (n : nat) (t : mtrm) : bool :=
|
||||
match t with
|
||||
| mBVar m => Nat.eqb m n
|
||||
| mFVar _ => false
|
||||
| mMVar _ _ => false
|
||||
| mApp a b => moccurs n a || moccurs n b
|
||||
| mLam a => moccurs (S n) a
|
||||
| mESub a b => moccurs (S n) a || moccurs n b
|
||||
end.
|
||||
|
||||
Definition moccurs0 (t : mtrm) : bool := moccurs 0 t.
|
||||
|
||||
Inductive mzctx : Type :=
|
||||
| mZTop : mzctx
|
||||
| mZAppL : mzctx -> mtrm -> mzctx
|
||||
| mZAppR : mtrm -> mzctx -> mzctx
|
||||
| mZLam : mzctx -> mzctx
|
||||
| mZESubL : mzctx -> mtrm -> mzctx
|
||||
| mZESubR : mtrm -> mzctx -> mzctx.
|
||||
|
||||
Fixpoint mzfill (C : mzctx) (k : nat) : mtrm :=
|
||||
match C with
|
||||
| mZTop => mBVar k
|
||||
| mZAppL C1 u => mApp (mzfill C1 k) u
|
||||
| mZAppR u C1 => mApp u (mzfill C1 k)
|
||||
| mZLam C1 => mLam (mzfill C1 (S k))
|
||||
| mZESubL C1 u => mESub (mzfill C1 (S k)) u
|
||||
| mZESubR t1 C1 => mESub t1 (mzfill C1 k)
|
||||
end.
|
||||
|
||||
Fixpoint mzplug_lift (C : mzctx) (k : nat) (t : mtrm) : mtrm :=
|
||||
match C with
|
||||
| mZTop => lift_m k t
|
||||
| mZAppL C1 u => mApp (mzplug_lift C1 k t) u
|
||||
| mZAppR u C1 => mApp u (mzplug_lift C1 k t)
|
||||
| mZLam C1 => mLam (mzplug_lift C1 (S k) t)
|
||||
| mZESubL C1 u => mESub (mzplug_lift C1 (S k) t) u
|
||||
| mZESubR t1 C1 => mESub t1 (mzplug_lift C1 k t)
|
||||
end.
|
||||
|
||||
Fixpoint mzdecs (t : mtrm) (k : nat) : list mzctx :=
|
||||
match t with
|
||||
| mBVar n => if Nat.eqb n k then [mZTop] else []
|
||||
| mFVar _ => []
|
||||
| mMVar _ _ => []
|
||||
| mApp a b => map (fun C => mZAppL C b) (mzdecs a k) ++ map (fun C => mZAppR a C) (mzdecs b k)
|
||||
| mLam a => map mZLam (mzdecs a (S k))
|
||||
| mESub a b => map (fun C => mZESubL C b) (mzdecs a (S k)) ++ map (fun C => mZESubR a C) (mzdecs b k)
|
||||
end.
|
||||
|
||||
Inductive mred : mtrm -> mtrm -> Prop :=
|
||||
| mred_emb : forall t t', red1 t t' -> mred (of_trm t) (of_trm t')
|
||||
| mred_ctx : forall C t t', mred t t' -> mred (mplug C t) (mplug C t')
|
||||
| mred_B : forall body u, mred (mApp (mLam body) u) (mESub body u)
|
||||
| mred_gc : forall body u, moccurs0 body = false -> mred (mESub body u) body
|
||||
| mred_r : forall C body u, mzfill C 0 = body ->
|
||||
mred (mESub body u) (mESub (mzplug_lift C 0 u) u).
|
||||
|
||||
Lemma mred_of_red1 : forall t t', red1 t t' -> mred (of_trm t) (of_trm t').
|
||||
Proof. intros. apply mred_emb. exact H. Qed.
|
||||
|
||||
Lemma mred_context : forall C t t', mred t t' -> mred (mplug C t) (mplug C t').
|
||||
Proof. intros. apply mred_ctx. exact H. Qed.
|
||||
|
||||
Lemma mred_term_context : forall C t t',
|
||||
red1 t t' -> mred (of_trm (plug C t)) (of_trm (plug C t')).
|
||||
Proof.
|
||||
intros. rewrite of_trm_plug, of_trm_plug.
|
||||
apply mred_ctx. apply mred_emb. exact H.
|
||||
Qed.
|
||||
|
||||
Print Assumptions of_trm_plug.
|
||||
Print Assumptions mred_of_red1.
|
||||
Print Assumptions mred_context.
|
||||
Print Assumptions mred_term_context.
|
||||
|
||||
Lemma of_trm_moccurs : forall t k, moccurs k (of_trm t) = occurs k t.
|
||||
Proof.
|
||||
induction t; intros k; simpl; try reflexivity.
|
||||
- rewrite IHt1, IHt2. reflexivity.
|
||||
- rewrite IHt. reflexivity.
|
||||
- rewrite IHt1, IHt2. reflexivity.
|
||||
Qed.
|
||||
|
||||
Lemma of_trm_moccurs0 : forall t, moccurs0 (of_trm t) = occurs0 t.
|
||||
Proof. intros. apply of_trm_moccurs. Qed.
|
||||
|
||||
Lemma mred_B_intro : forall body u, mred (mApp (mLam body) u) (mESub body u).
|
||||
Proof. intros. apply mred_B. Qed.
|
||||
|
||||
Lemma mred_gc_intro : forall body u, moccurs0 body = false -> mred (mESub body u) body.
|
||||
Proof. intros. apply mred_gc. exact H. Qed.
|
||||
|
||||
Print Assumptions of_trm_moccurs.
|
||||
Print Assumptions of_trm_moccurs0.
|
||||
|
||||
Lemma mred_r_intro : forall C body u, mzfill C 0 = body ->
|
||||
mred (mESub body u) (mESub (mzplug_lift C 0 u) u).
|
||||
Proof. intros. apply mred_r. exact H. Qed.
|
||||
|
||||
Print Assumptions mred_r_intro.
|
||||
|
||||
Inductive Plus_m (R : mtrm -> mtrm -> Prop) : mtrm -> mtrm -> Prop :=
|
||||
| plusm1 : forall t u, R t u -> Plus_m R t u
|
||||
| plusmS : forall t u v, R t u -> Plus_m R u v -> Plus_m R t v.
|
||||
|
||||
Lemma Plus_mred_of_Plus_red1 : forall a b,
|
||||
Plus red1 a b -> Plus_m mred (of_trm a) (of_trm b).
|
||||
Proof.
|
||||
intros a b H. induction H as [a0 b0 HR | a0 b0 u0 HR HP IH].
|
||||
- apply plusm1. apply mred_emb. exact HR.
|
||||
- apply plusmS with (u := of_trm b0).
|
||||
+ apply mred_emb. exact HR.
|
||||
+ exact IH.
|
||||
Qed.
|
||||
|
||||
Lemma mred_full_comp_pure : forall body u,
|
||||
Plus_m mred (mESub (of_trm body) (of_trm u)) (of_trm (open_rec 0 u body)).
|
||||
Proof.
|
||||
intros body u.
|
||||
change (Plus_m mred (of_trm (ESub body u)) (of_trm (open_rec 0 u body))).
|
||||
apply Plus_mred_of_Plus_red1. apply lemma_2_2_full_comp.
|
||||
Qed.
|
||||
|
||||
Lemma mred_plus_one : forall a b, red1 a b -> Plus_m mred (of_trm a) (of_trm b).
|
||||
Proof. intros. apply plusm1. apply mred_emb. exact H. Qed.
|
||||
|
||||
Print Assumptions Plus_mred_of_Plus_red1.
|
||||
Print Assumptions mred_full_comp_pure.
|
||||
Print Assumptions mred_plus_one.
|
||||
@@ -0,0 +1,173 @@
|
||||
From Stdlib Require Import List Bool Arith Lia PeanoNat.
|
||||
From Stdlib Require Import Setoid Morphisms.
|
||||
Import ListNotations.
|
||||
From LambdaSub Require Import NamedMeta.
|
||||
|
||||
(* A setoid rewriting layer for the C equivalence Es on named metaterms.
|
||||
|
||||
Es is the congruence generated by the equation C (together with the
|
||||
implicit alpha convention of the paper, which the named core does not
|
||||
quotient). We register Es as an equivalence and as a congruence for the
|
||||
term constructors and for every context, so that setoid rewriting can
|
||||
move along Es. We then define the reduction relation modulo Es (subred)
|
||||
and prove that it is stable on both sides and under every context. *)
|
||||
|
||||
Instance Es_Equivalence : Equivalence Es.
|
||||
Proof.
|
||||
split.
|
||||
- intro t. apply Es_refl.
|
||||
- intros a b Hab. apply Es_sym. exact Hab.
|
||||
- intros a b c Hab Hbc. apply Es_trans with (u := b); assumption.
|
||||
Qed.
|
||||
|
||||
Instance Es_NVar_Proper : Proper (eq ==> Es) NVar.
|
||||
Proof. intros a b Hab. subst b. apply Es_refl. Qed.
|
||||
|
||||
Instance Es_NMVar_Proper : Proper (eq ==> eq ==> Es) NMVar.
|
||||
Proof. intros a b Hab c d Hcd. subst b d. apply Es_refl. Qed.
|
||||
|
||||
Instance Es_NApp_Proper : Proper (Es ==> Es ==> Es) NApp.
|
||||
Proof.
|
||||
intros a b Hab c d Hcd.
|
||||
apply Es_trans with (u := NApp b c).
|
||||
- apply Es_ctx with (C := nAppL nHole c). exact Hab.
|
||||
- apply Es_ctx with (C := nAppR b nHole). exact Hcd.
|
||||
Qed.
|
||||
|
||||
Instance Es_NLam_Proper (x : atom) : Proper (Es ==> Es) (NLam x).
|
||||
Proof. intros a b Hab. apply Es_ctx with (C := nLam x nHole). exact Hab. Qed.
|
||||
|
||||
Instance Es_NESub_Proper : Proper (Es ==> eq ==> Es ==> Es) NESub.
|
||||
Proof.
|
||||
intros a b Hab x y Hxy c d Hcd. subst y.
|
||||
apply Es_trans with (u := NESub b x c).
|
||||
- apply Es_ctx with (C := nESubL nHole x c). exact Hab.
|
||||
- apply Es_ctx with (C := nESubR b x nHole). exact Hcd.
|
||||
Qed.
|
||||
|
||||
Instance Es_nplug_Proper (C : nctx) : Proper (Es ==> Es) (nplug C).
|
||||
Proof. intros a b Hab. apply Es_ctx. exact Hab. Qed.
|
||||
|
||||
Instance Es_nfv_Proper (z : atom) : Proper (Es ==> iff) (fun t => In z (nfv t)).
|
||||
Proof. intros a b Hab. apply (Es_fv a b Hab z). Qed.
|
||||
|
||||
(* The reduction relation modulo Es, as in the paper:
|
||||
t ->sub t' iff there are s, s' with t =Es s ->sm s' =Es t'. *)
|
||||
Definition subred (t t' : ntrm) : Prop :=
|
||||
exists s, exists s', Es t s /\ nred s s' /\ Es s' t'.
|
||||
|
||||
Lemma subred_intro : forall t s s' t',
|
||||
Es t s -> nred s s' -> Es s' t' -> subred t t'.
|
||||
Proof. intros. unfold subred. exists s, s'. split; [| split]; assumption. Qed.
|
||||
|
||||
Lemma subred_nred : forall t u, nred t u -> subred t u.
|
||||
Proof.
|
||||
intros t u H. apply subred_intro with (s := t) (s' := u).
|
||||
- apply Es_refl.
|
||||
- exact H.
|
||||
- apply Es_refl.
|
||||
Qed.
|
||||
|
||||
Lemma subred_Es_l : forall t s u, Es t s -> subred s u -> subred t u.
|
||||
Proof.
|
||||
intros t s u Ht [a [b [Ha [Hn Hb]]]].
|
||||
apply subred_intro with (s := a) (s' := b).
|
||||
- apply Es_trans with (u := s); assumption.
|
||||
- exact Hn.
|
||||
- exact Hb.
|
||||
Qed.
|
||||
|
||||
Lemma subred_Es_r : forall t u v, subred t u -> Es u v -> subred t v.
|
||||
Proof.
|
||||
intros t u v [a [b [Ha [Hn Hb]]]] Huv.
|
||||
apply subred_intro with (s := a) (s' := b).
|
||||
- exact Ha.
|
||||
- exact Hn.
|
||||
- apply Es_trans with (u := u); assumption.
|
||||
Qed.
|
||||
|
||||
Lemma subred_Es_lr : forall t s s' t',
|
||||
Es t s -> subred s s' -> Es s' t' -> subred t t'.
|
||||
Proof.
|
||||
intros t s s' t' Hts Hss' Hs't'.
|
||||
apply subred_Es_r with (u := s').
|
||||
- apply subred_Es_l with (s := s); assumption.
|
||||
- exact Hs't'.
|
||||
Qed.
|
||||
|
||||
Lemma subred_context : forall C t t', subred t t' -> subred (nplug C t) (nplug C t').
|
||||
Proof.
|
||||
intros C t t' [a [b [Ha [Hn Hb]]]].
|
||||
apply subred_intro with (s := nplug C a) (s' := nplug C b).
|
||||
- apply Es_ctx. exact Ha.
|
||||
- apply nred_ctx. exact Hn.
|
||||
- apply Es_ctx. exact Hb.
|
||||
Qed.
|
||||
|
||||
Lemma subred_context_rule : forall C t t', nred t t' -> subred (nplug C t) (nplug C t').
|
||||
Proof. intros. apply subred_context. apply subred_nred. exact H. Qed.
|
||||
|
||||
Lemma subred_of_Es_nred_Es : forall t s s' t',
|
||||
Es t s -> nred s s' -> Es s' t' -> subred t t'.
|
||||
Proof. intros. apply subred_intro with (s := s) (s' := s'); assumption. Qed.
|
||||
|
||||
(* The rules are stable modulo Es: rewriting the redex or the reduct by Es
|
||||
gives a valid subred step. *)
|
||||
Lemma nred_stable_source : forall t s u, Es t s -> nred s u -> subred t u.
|
||||
Proof. intros. apply subred_intro with (s := s) (s' := u); [exact H | exact H0 | apply Es_refl]. Qed.
|
||||
|
||||
Lemma nred_stable_target : forall t u v, nred t u -> Es u v -> subred t v.
|
||||
Proof. intros. apply subred_intro with (s := t) (s' := u); [apply Es_refl | exact H | exact H0]. Qed.
|
||||
|
||||
Print Assumptions Es_Equivalence.
|
||||
Print Assumptions Es_NApp_Proper.
|
||||
Print Assumptions Es_NLam_Proper.
|
||||
Print Assumptions Es_NESub_Proper.
|
||||
Print Assumptions Es_nplug_Proper.
|
||||
Print Assumptions Es_nfv_Proper.
|
||||
Print Assumptions subred_nred.
|
||||
Print Assumptions subred_Es_l.
|
||||
Print Assumptions subred_Es_r.
|
||||
Print Assumptions subred_context.
|
||||
Print Assumptions nred_stable_source.
|
||||
Print Assumptions nred_stable_target.
|
||||
|
||||
Inductive StarN (R : ntrm -> ntrm -> Prop) : ntrm -> ntrm -> Prop :=
|
||||
| starN_refl : forall t, StarN R t t
|
||||
| starN_step : forall t u v, R t u -> StarN R u v -> StarN R t v.
|
||||
|
||||
Inductive PlusN (R : ntrm -> ntrm -> Prop) : ntrm -> ntrm -> Prop :=
|
||||
| plusN1 : forall t u, R t u -> PlusN R t u
|
||||
| plusNS : forall t u v, R t u -> PlusN R u v -> PlusN R t v.
|
||||
|
||||
Lemma StarN_trans : forall R a b c, StarN R a b -> StarN R b c -> StarN R a c.
|
||||
Proof.
|
||||
intros R a b c H. induction H; intros Hbc.
|
||||
- exact Hbc.
|
||||
- apply starN_step with (u := u). exact H. apply IHStarN. exact Hbc.
|
||||
Qed.
|
||||
|
||||
Lemma StarN_one_trans : forall R a b c, R a b -> StarN R b c -> StarN R a c.
|
||||
Proof. intros. apply starN_step with (u := b); assumption. Qed.
|
||||
|
||||
Lemma PlusN_to_StarN : forall R t u, PlusN R t u -> StarN R t u.
|
||||
Proof.
|
||||
intros R t u H. induction H.
|
||||
- apply starN_step with (u := u); [exact H | apply starN_refl].
|
||||
- apply starN_step with (u := u); [exact H | exact IHPlusN].
|
||||
Qed.
|
||||
|
||||
Lemma StarN_subred_context : forall C t t',
|
||||
StarN subred t t' -> StarN subred (nplug C t) (nplug C t').
|
||||
Proof.
|
||||
intros C t t' H. induction H.
|
||||
- apply starN_refl.
|
||||
- apply starN_step with (u := nplug C u).
|
||||
+ apply subred_context. exact H.
|
||||
+ exact IHStarN.
|
||||
Qed.
|
||||
|
||||
Print Assumptions StarN_trans.
|
||||
Print Assumptions StarN_one_trans.
|
||||
Print Assumptions PlusN_to_StarN.
|
||||
Print Assumptions StarN_subred_context.
|
||||
@@ -0,0 +1,230 @@
|
||||
From Stdlib Require Import List Bool Arith Lia PeanoNat.
|
||||
From Stdlib Require Import Setoid Morphisms.
|
||||
Import ListNotations.
|
||||
From LambdaSub Require Import NamedMeta NamedEs.
|
||||
|
||||
(* The measure of Appendix A of the paper.
|
||||
|
||||
For a metaterm t the paper defines two functions:
|
||||
Mx(t) an upper bound on the number of free occurrences of x that can
|
||||
give rise to redexes in sub-reducts of t,
|
||||
s(t) the size measure used to orient the rules R, RX and Gc.
|
||||
Both discriminate on whether the body of a substitution is a chain
|
||||
X_Delta[x1/u1]...[xn/un] ending in a metavariable and the substituted
|
||||
variable belongs to the annotation Delta. We capture that shape with
|
||||
mhead below. *)
|
||||
|
||||
Fixpoint mhead (t : ntrm) : option (list atom) :=
|
||||
match t with
|
||||
| NMVar _ d => Some d
|
||||
| NESub a _ _ => mhead a
|
||||
| _ => None
|
||||
end.
|
||||
|
||||
Definition head_has (a : ntrm) (y : atom) : bool :=
|
||||
match mhead a with
|
||||
| Some d => existsb (Nat.eqb y) d
|
||||
| None => false
|
||||
end.
|
||||
|
||||
Fixpoint Mx (x : atom) (t : ntrm) : nat :=
|
||||
match t with
|
||||
| NVar y => if Nat.eqb y x then 1 else 0
|
||||
| NApp a b => Mx x a + Mx x b
|
||||
| NLam _ a => Mx x a
|
||||
| NMVar _ d => if existsb (Nat.eqb x) d then 1 else 0
|
||||
| NESub a y u =>
|
||||
if head_has a y
|
||||
then Mx x a + Mx y a * Mx x u
|
||||
else Mx x a + Mx x u + Mx y a * Mx x u
|
||||
end.
|
||||
|
||||
Fixpoint s (t : ntrm) : nat :=
|
||||
match t with
|
||||
| NVar _ => 1
|
||||
| NApp a b => s a + s b
|
||||
| NLam _ a => s a
|
||||
| NMVar _ d => length d
|
||||
| NESub a y u =>
|
||||
if head_has a y
|
||||
then s a - 1 + Mx y a * s u
|
||||
else s a + s u + Mx y a * s u
|
||||
end.
|
||||
|
||||
(* The counting invariant of the paper: Mx is an upper bound on the number
|
||||
of free occurrences of x. We count free occurrences directly with nocc. *)
|
||||
Fixpoint nocc (x : atom) (t : ntrm) : nat :=
|
||||
match t with
|
||||
| NVar y => if Nat.eqb y x then 1 else 0
|
||||
| NApp a b => nocc x a + nocc x b
|
||||
| NLam y a => if Nat.eqb y x then 0 else nocc x a
|
||||
| NESub a y u => (if Nat.eqb y x then 0 else nocc x a) + nocc x u
|
||||
| NMVar _ d => if existsb (Nat.eqb x) d then 1 else 0
|
||||
end.
|
||||
|
||||
Lemma Mx_ge_0 : forall x t, 0 <= Mx x t.
|
||||
Proof. intros x t. induction t; simpl; lia. Qed.
|
||||
|
||||
Lemma head_has_pos : forall a y, head_has a y = true -> 1 <= Mx y a.
|
||||
Proof.
|
||||
intros a. induction a as [z | a1 IHa1 a2 _ | z a IHa | a1 IHa1 z u _ | X d]; intros y H.
|
||||
- simpl in H. discriminate H.
|
||||
- simpl in H. discriminate H.
|
||||
- simpl in H. discriminate H.
|
||||
- simpl in H. simpl. destruct (head_has a1 z) eqn:E; pose proof (IHa1 y H); lia.
|
||||
- simpl in H. simpl.
|
||||
assert (Hex : existsb (Nat.eqb y) d = true).
|
||||
{ unfold head_has, mhead in H. exact H. }
|
||||
rewrite Hex. lia.
|
||||
Qed.
|
||||
|
||||
Lemma le_mul_of_one_le : forall n m, 1 <= n -> m <= n * m.
|
||||
Proof.
|
||||
intros n m H. rewrite <- (Nat.mul_1_l m) at 1.
|
||||
apply Nat.mul_le_mono_r. exact H.
|
||||
Qed.
|
||||
|
||||
Lemma nocc_le_Mx : forall x t, nocc x t <= Mx x t.
|
||||
Proof.
|
||||
intros x t. induction t as [y | a IHa b IHb | y a IHa | a IHa y u IHu | X d].
|
||||
- simpl. destruct (Nat.eqb y x); lia.
|
||||
- simpl. lia.
|
||||
- simpl. destruct (Nat.eqb y x); lia.
|
||||
- simpl. destruct (head_has a y) eqn:E.
|
||||
+ assert (Hpos : 1 <= Mx y a) by (apply head_has_pos; exact E).
|
||||
assert (Hnl : Mx x u <= Mx y a * Mx x u) by (apply le_mul_of_one_le; exact Hpos).
|
||||
destruct (Nat.eqb y x) eqn:Ey; lia.
|
||||
+ destruct (Nat.eqb y x) eqn:Ey; lia.
|
||||
- simpl. destruct (existsb (Nat.eqb x) d); lia.
|
||||
Qed.
|
||||
|
||||
Print Assumptions Mx_ge_0.
|
||||
Print Assumptions head_has_pos.
|
||||
Print Assumptions le_mul_of_one_le.
|
||||
Print Assumptions nocc_le_Mx.
|
||||
|
||||
(* ------------------------------------------------------------------ *)
|
||||
(* The missing invariants.
|
||||
|
||||
The measure proof needs the reduction rules to preserve freeness, in the
|
||||
sense that a variable that is not free in a term contributes nothing
|
||||
to the measure. Concretely the paper uses
|
||||
|
||||
x notin fv(t) implies Mx(x,t) = 0
|
||||
|
||||
for the Gc case and, through Lemma A.2, for the R and RX cases. That
|
||||
property is not true on the raw named syntax: a metavariable may carry
|
||||
an annotation variable that an enclosing substitution binds. The
|
||||
metaterm X_[x][x/y] below is the smallest witness. Its free variables
|
||||
are {y}, it therefore has no free occurrence of x, yet Mx(x, .) = 1. *)
|
||||
|
||||
Lemma nfv_annot_bound_example :
|
||||
nfv (NESub (NMVar 9 [0]) 0 (NVar 1)) = [1].
|
||||
Proof. reflexivity. Qed.
|
||||
|
||||
Lemma Mx_fresh_fails :
|
||||
~ (forall x t, ~ In x (nfv t) -> Mx x t = 0).
|
||||
Proof.
|
||||
intro H.
|
||||
assert (Hn : ~ In 0 (nfv (NESub (NMVar 9 [0]) 0 (NVar 1)))).
|
||||
{ rewrite nfv_annot_bound_example. intros [Hc|Hc]; [discriminate Hc | destruct Hc]. }
|
||||
specialize (H 0 (NESub (NMVar 9 [0]) 0 (NVar 1)) Hn).
|
||||
compute in H. discriminate H.
|
||||
Qed.
|
||||
|
||||
(* Lemma A.1, invariance of Mx and s under the C equation, also needs the
|
||||
invariant. The two terms below are related by C with x = 0, y = 1, y not
|
||||
free in u and x not free in v, yet their sizes and Mx values differ: the
|
||||
occurrences of 1 and 0 that sit inside the metavariable annotation but
|
||||
below the substitutions are counted by the special clauses. *)
|
||||
Definition A1_t : ntrm := NMVar 0 [0; 1].
|
||||
Definition A1_u : ntrm :=
|
||||
NApp (NESub (NMVar 8 [1]) 1 (NVar 3))
|
||||
(NApp (NApp (NVar 5) (NVar 6)) (NVar 7)).
|
||||
Definition A1_v : ntrm := NESub (NMVar 7 [0]) 0 (NVar 4).
|
||||
Definition A1_lhs : ntrm := NESub (NESub A1_t 0 A1_u) 1 A1_v.
|
||||
Definition A1_rhs : ntrm := NESub (NESub A1_t 1 A1_v) 0 A1_u.
|
||||
|
||||
Lemma A1_C_related : Es A1_lhs A1_rhs.
|
||||
Proof.
|
||||
apply Es_C with (x := 0) (y := 1).
|
||||
- intro E. discriminate E.
|
||||
- compute. intros [H|[H|[H|[H|H]]]]; try discriminate H; destruct H.
|
||||
- compute. intros [H|H]; [discriminate H | destruct H].
|
||||
Qed.
|
||||
|
||||
Lemma A1_s_differ : s A1_lhs <> s A1_rhs.
|
||||
Proof. compute. discriminate. Qed.
|
||||
|
||||
Lemma A1_Mx_differ : Mx 0 A1_lhs <> Mx 0 A1_rhs.
|
||||
Proof. compute. discriminate. Qed.
|
||||
|
||||
Lemma A1_not_invariant :
|
||||
~ (forall t u, Es t u -> s t = s u /\ forall z, Mx z t = Mx z u).
|
||||
Proof.
|
||||
intro H. destruct (H A1_lhs A1_rhs A1_C_related) as [Hs _].
|
||||
apply A1_s_differ. exact Hs.
|
||||
Qed.
|
||||
|
||||
(* The corresponding Gc step is legal in the current rule system, but the
|
||||
measure does not decrease: the redex has the same size as its reduct.
|
||||
The body is X_[x][x/y] with x in the annotation, so the special clause
|
||||
of s applies and the (bound) x in the annotation is counted by Mx,
|
||||
cancelling the subtraction of one. *)
|
||||
Lemma Gc_special_nondecrease :
|
||||
s (NESub (NESub (NMVar 9 [0]) 0 (NVar 1)) 0 (NVar 2))
|
||||
= s (NESub (NMVar 9 [0]) 0 (NVar 1)).
|
||||
Proof. reflexivity. Qed.
|
||||
|
||||
Lemma nred_Gc_special :
|
||||
nred (NESub (NESub (NMVar 9 [0]) 0 (NVar 1)) 0 (NVar 2))
|
||||
(NESub (NMVar 9 [0]) 0 (NVar 1)).
|
||||
Proof.
|
||||
apply nred_Gc. simpl. intros [Hc|Hc]; [discriminate Hc | destruct Hc].
|
||||
Qed.
|
||||
|
||||
(* A second, independent, gap: the paper states s(t) >= 1, but a
|
||||
metavariable with empty annotation has size zero. Empty annotations are
|
||||
not excluded by the raw syntax. *)
|
||||
Lemma s_metavar_empty : s (NMVar 9 []) = 0.
|
||||
Proof. reflexivity. Qed.
|
||||
|
||||
(* Rule R as currently stated has no freshness side condition on the
|
||||
substituted term, so it creates a loop, which no terminating measure can
|
||||
orient. The step below is derivable with the empty context. The paper
|
||||
excludes it through the convention that no free and bound variable of a
|
||||
term share a name: x[x/u] with x free in u is not an alpha-canonical
|
||||
metaterm. *)
|
||||
Lemma nred_R_selfloop : forall x,
|
||||
nred (NESub (NVar x) x (NVar x)) (NESub (NVar x) x (NVar x)).
|
||||
Proof.
|
||||
intro x. apply nred_R with (C := nHole) (phi := [x]).
|
||||
- simpl. left. reflexivity.
|
||||
- intros y Hy. simpl in Hy. destruct Hy as [Hy|[]]. subst y. simpl. left. reflexivity.
|
||||
- reflexivity.
|
||||
Qed.
|
||||
|
||||
Theorem current_sm_not_terminating : exists t, nred t t.
|
||||
Proof. exists (NESub (NVar 0) 0 (NVar 0)). apply nred_R_selfloop. Qed.
|
||||
|
||||
(* Consequence for Es: the modulo relation subred inherits the loop, so it
|
||||
is not terminating either without the freshness invariant. *)
|
||||
Lemma subred_selfloop : forall x,
|
||||
subred (NESub (NVar x) x (NVar x)) (NESub (NVar x) x (NVar x)).
|
||||
Proof. intro x. apply subred_nred. apply nred_R_selfloop. Qed.
|
||||
|
||||
Theorem current_subred_not_terminating : exists t, subred t t.
|
||||
Proof. exists (NESub (NVar 0) 0 (NVar 0)). apply subred_selfloop. Qed.
|
||||
|
||||
Print Assumptions Mx_fresh_fails.
|
||||
Print Assumptions A1_C_related.
|
||||
Print Assumptions A1_s_differ.
|
||||
Print Assumptions A1_Mx_differ.
|
||||
Print Assumptions A1_not_invariant.
|
||||
Print Assumptions Gc_special_nondecrease.
|
||||
Print Assumptions nred_Gc_special.
|
||||
Print Assumptions s_metavar_empty.
|
||||
Print Assumptions nred_R_selfloop.
|
||||
Print Assumptions current_sm_not_terminating.
|
||||
Print Assumptions subred_selfloop.
|
||||
Print Assumptions current_subred_not_terminating.
|
||||
@@ -0,0 +1,357 @@
|
||||
From Stdlib Require Import List Bool Arith Lia PeanoNat.
|
||||
Import ListNotations.
|
||||
|
||||
Definition atom := nat.
|
||||
|
||||
Inductive ntrm : Type :=
|
||||
| NVar : atom -> ntrm
|
||||
| NApp : ntrm -> ntrm -> ntrm
|
||||
| NLam : atom -> ntrm -> ntrm
|
||||
| NESub : ntrm -> atom -> ntrm -> ntrm
|
||||
| NMVar : atom -> list atom -> ntrm.
|
||||
|
||||
Fixpoint nfv (t : ntrm) : list atom :=
|
||||
match t with
|
||||
| NVar x => [x]
|
||||
| NApp a b => nfv a ++ nfv b
|
||||
| NLam x a => filter (fun y => negb (Nat.eqb y x)) (nfv a)
|
||||
| NESub a x b => filter (fun y => negb (Nat.eqb y x)) (nfv a) ++ nfv b
|
||||
| NMVar _ d => d
|
||||
end.
|
||||
|
||||
Definition isubst_meta (X : atom) (d : list atom) (x : atom) (v : ntrm) : ntrm :=
|
||||
if existsb (Nat.eqb x) d then NESub (NMVar X d) x v else NMVar X d.
|
||||
|
||||
Lemma isubst_meta_in : forall X d x v, In x d -> isubst_meta X d x v = NESub (NMVar X d) x v.
|
||||
Proof.
|
||||
intros X d x v H. unfold isubst_meta.
|
||||
destruct (existsb (Nat.eqb x) d) eqn:E; [reflexivity |].
|
||||
assert (Hex : existsb (Nat.eqb x) d = true)
|
||||
by (apply existsb_exists; exists x; split; [exact H | apply Nat.eqb_refl]).
|
||||
rewrite Hex in E. discriminate E.
|
||||
Qed.
|
||||
|
||||
Lemma isubst_meta_notin : forall X d x v, ~ In x d -> isubst_meta X d x v = NMVar X d.
|
||||
Proof.
|
||||
intros X d x v H. unfold isubst_meta.
|
||||
destruct (existsb (Nat.eqb x) d) eqn:E; [| reflexivity].
|
||||
exfalso. apply existsb_exists in E. destruct E as [y [Hy HE]].
|
||||
apply Nat.eqb_eq in HE. subst y. apply H. exact Hy.
|
||||
Qed.
|
||||
|
||||
Inductive nctx : Type :=
|
||||
| nHole : nctx
|
||||
| nAppL : nctx -> ntrm -> nctx
|
||||
| nAppR : ntrm -> nctx -> nctx
|
||||
| nLam : atom -> nctx -> nctx
|
||||
| nESubL : nctx -> atom -> ntrm -> nctx
|
||||
| nESubR : ntrm -> atom -> nctx -> nctx.
|
||||
|
||||
Fixpoint nplug (C : nctx) (t : ntrm) : ntrm :=
|
||||
match C with
|
||||
| nHole => t
|
||||
| nAppL C1 u => NApp (nplug C1 t) u
|
||||
| nAppR u C1 => NApp u (nplug C1 t)
|
||||
| nLam x C1 => NLam x (nplug C1 t)
|
||||
| nESubL C1 x u => NESub (nplug C1 t) x u
|
||||
| nESubR t1 x C1 => NESub t1 x (nplug C1 t)
|
||||
end.
|
||||
|
||||
Fixpoint is_subst_chain (C : nctx) : bool :=
|
||||
match C with
|
||||
| nHole => true
|
||||
| nESubL C1 _ _ => is_subst_chain C1
|
||||
| _ => false
|
||||
end.
|
||||
|
||||
Inductive Es : ntrm -> ntrm -> Prop :=
|
||||
| Es_refl : forall t, Es t t
|
||||
| Es_sym : forall t u, Es t u -> Es u t
|
||||
| Es_trans : forall t u v, Es t u -> Es u v -> Es t v
|
||||
| Es_C : forall t x u y v,
|
||||
y <> x -> ~ In y (nfv u) -> ~ In x (nfv v) ->
|
||||
Es (NESub (NESub t x u) y v) (NESub (NESub t y v) x u)
|
||||
| Es_ctx : forall C t t', Es t t' -> Es (nplug C t) (nplug C t').
|
||||
|
||||
Fixpoint cbinders (C : nctx) : list atom :=
|
||||
match C with
|
||||
| nHole => []
|
||||
| nAppL C1 _ => cbinders C1
|
||||
| nAppR _ C1 => cbinders C1
|
||||
| nLam x C1 => x :: cbinders C1
|
||||
| nESubL C1 _ _ => cbinders C1
|
||||
| nESubR _ _ C1 => cbinders C1
|
||||
end.
|
||||
|
||||
Definition cavoid (C : nctx) (phi : list atom) : bool :=
|
||||
forallb (fun y => negb (existsb (Nat.eqb y) phi)) (cbinders C).
|
||||
|
||||
Inductive nred : ntrm -> ntrm -> Prop :=
|
||||
| nred_B : forall t x u, nred (NApp (NLam x t) u) (NESub t x u)
|
||||
| nred_Gc : forall t x u, ~ In x (nfv t) -> nred (NESub t x u) t
|
||||
| nred_RX : forall C X d x u phi,
|
||||
In x d ->
|
||||
In x phi ->
|
||||
(forall y, In y (nfv u) -> In y phi) ->
|
||||
is_subst_chain C = false ->
|
||||
nred (NESub (nplug C (NMVar X d)) x u)
|
||||
(NESub (nplug C (NESub (NMVar X d) x u)) x u)
|
||||
| nred_R : forall C x u phi,
|
||||
In x phi ->
|
||||
(forall y, In y (nfv u) -> In y phi) ->
|
||||
cavoid C phi = true ->
|
||||
nred (NESub (nplug C (NVar x)) x u) (NESub (nplug C u) x u)
|
||||
| nred_ctx : forall C t t', nred t t' -> nred (nplug C t) (nplug C t').
|
||||
|
||||
Lemma eqC_in_Es : forall t x u y v,
|
||||
y <> x -> ~ In y (nfv u) -> ~ In x (nfv v) ->
|
||||
Es (NESub (NESub t x u) y v) (NESub (NESub t y v) x u).
|
||||
Proof. intros. apply Es_C; assumption. Qed.
|
||||
|
||||
Lemma Es_ctx_any : forall C t t', Es t t' -> Es (nplug C t) (nplug C t').
|
||||
Proof. intros. apply Es_ctx. exact H. Qed.
|
||||
|
||||
Lemma nred_R_intro : forall C x u phi,
|
||||
In x phi -> (forall y, In y (nfv u) -> In y phi) -> cavoid C phi = true ->
|
||||
nred (NESub (nplug C (NVar x)) x u) (NESub (nplug C u) x u).
|
||||
Proof.
|
||||
intros C x u phi Hx Hu Hc.
|
||||
apply nred_R with (phi := phi).
|
||||
- exact Hx.
|
||||
- exact Hu.
|
||||
- exact Hc.
|
||||
Qed.
|
||||
|
||||
Lemma Es_refl_any : forall t, Es t t.
|
||||
Proof. intros. apply Es_refl. Qed.
|
||||
|
||||
Lemma Es_sym_any : forall t u, Es t u -> Es u t.
|
||||
Proof. intros. apply Es_sym. exact H. Qed.
|
||||
|
||||
Lemma Es_trans_any : forall t u v, Es t u -> Es u v -> Es t v.
|
||||
Proof. intros. apply Es_trans with (u := u); assumption. Qed.
|
||||
|
||||
Print Assumptions isubst_meta_in.
|
||||
Print Assumptions isubst_meta_notin.
|
||||
Print Assumptions Es_ctx_any.
|
||||
Print Assumptions nred_R_intro.
|
||||
Print Assumptions eqC_in_Es.
|
||||
Print Assumptions Es_refl_any.
|
||||
Print Assumptions Es_sym_any.
|
||||
Print Assumptions Es_trans_any.
|
||||
|
||||
Lemma in_filter_neq : forall y x l,
|
||||
In y (filter (fun z => negb (Nat.eqb z x)) l) -> In y l /\ y <> x.
|
||||
Proof.
|
||||
intros y x l H. apply filter_In in H. destruct H as [Hl Hp]. split; [exact Hl |].
|
||||
apply Nat.eqb_neq. destruct (Nat.eqb y x) eqn:E; [| reflexivity].
|
||||
simpl in Hp. discriminate Hp.
|
||||
Qed.
|
||||
|
||||
Lemma filter_neq_in : forall y x l,
|
||||
In y l -> y <> x -> In y (filter (fun z => negb (Nat.eqb z x)) l).
|
||||
Proof.
|
||||
intros y x l Hl Hne. apply filter_In. split; [exact Hl |].
|
||||
apply Nat.eqb_neq in Hne. rewrite Hne. reflexivity.
|
||||
Qed.
|
||||
|
||||
|
||||
Lemma nplug_fv_mono : forall C t s,
|
||||
incl (nfv t) (nfv s) -> incl (nfv (nplug C t)) (nfv (nplug C s)).
|
||||
Proof.
|
||||
induction C; intros t s Hincl; unfold incl in *; simpl in *.
|
||||
- apply Hincl.
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_app_iff. left. apply (IHC t s Hincl). exact Hy.
|
||||
+ apply in_app_iff. right. exact Hy.
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_app_iff. left. exact Hy.
|
||||
+ apply in_app_iff. right. apply (IHC t s Hincl). exact Hy.
|
||||
- intros y Hy. apply in_filter_neq in Hy as [Hy Hne].
|
||||
apply filter_neq_in.
|
||||
+ apply (IHC t s Hincl). exact Hy.
|
||||
+ exact Hne.
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_app_iff. left. apply in_filter_neq in Hy as [Hy Hne].
|
||||
apply filter_neq_in.
|
||||
* apply (IHC t s Hincl). exact Hy.
|
||||
* exact Hne.
|
||||
+ apply in_app_iff. right. exact Hy.
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_app_iff. left. exact Hy.
|
||||
+ apply in_app_iff. right. apply (IHC t s Hincl). exact Hy.
|
||||
Qed.
|
||||
|
||||
Lemma nplug_fv_upper : forall C t s,
|
||||
incl (nfv (nplug C t)) (nfv (nplug C s) ++ nfv t).
|
||||
Proof.
|
||||
induction C; intros t s; unfold incl in *; simpl in *.
|
||||
- intros y Hy. apply in_app_iff. right. exact Hy.
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply (IHC t s) in Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
* apply in_app_iff. left. apply in_app_iff. left. exact Hy.
|
||||
* apply in_app_iff. right. exact Hy.
|
||||
+ apply in_app_iff. left. apply in_app_iff. right. exact Hy.
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_app_iff. left. apply in_app_iff. left. exact Hy.
|
||||
+ apply (IHC t s) in Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
* apply in_app_iff. left. apply in_app_iff. right. exact Hy.
|
||||
* apply in_app_iff. right. exact Hy.
|
||||
- intros y Hy. apply in_filter_neq in Hy as [Hy Hne].
|
||||
apply (IHC t s) in Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_app_iff. left. apply filter_neq_in; [exact Hy | exact Hne].
|
||||
+ apply in_app_iff. right. exact Hy.
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_filter_neq in Hy as [Hy Hne].
|
||||
apply (IHC t s) in Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
* apply in_app_iff. left. apply in_app_iff. left. apply filter_neq_in; [exact Hy | exact Hne].
|
||||
* apply in_app_iff. right. exact Hy.
|
||||
+ apply in_app_iff. left. apply in_app_iff. right. exact Hy.
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_app_iff. left. apply in_app_iff. left. exact Hy.
|
||||
+ apply (IHC t s) in Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
* apply in_app_iff. left. apply in_app_iff. right. exact Hy.
|
||||
* apply in_app_iff. right. exact Hy.
|
||||
Qed.
|
||||
|
||||
Inductive nred_core : ntrm -> ntrm -> Prop :=
|
||||
| ncore_B : forall t x u, nred_core (NApp (NLam x t) u) (NESub t x u)
|
||||
| ncore_Gc : forall t x u, ~ In x (nfv t) -> nred_core (NESub t x u) t
|
||||
| ncore_R : forall C x u phi,
|
||||
In x phi -> (forall y, In y (nfv u) -> In y phi) -> cavoid C phi = true ->
|
||||
nred_core (NESub (nplug C (NVar x)) x u) (NESub (nplug C u) x u)
|
||||
| ncore_ctx : forall C t t', nred_core t t' -> nred_core (nplug C t) (nplug C t').
|
||||
|
||||
Lemma nred_core_fv : forall t t', nred_core t t' -> incl (nfv t') (nfv t).
|
||||
Proof.
|
||||
intros t t' H. induction H; simpl; unfold incl in *.
|
||||
- intros y Hy. exact Hy.
|
||||
- intros y Hy. apply in_app_iff. left.
|
||||
apply filter_neq_in; [exact Hy | intro E; apply H; subst; exact Hy].
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_filter_neq in Hy as [Hy Hne].
|
||||
apply (nplug_fv_upper C u (NVar x)) in Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
* apply in_app_iff. left. apply filter_neq_in; [exact Hy | exact Hne].
|
||||
* apply in_app_iff. right. exact Hy.
|
||||
+ apply in_app_iff. right. exact Hy.
|
||||
- apply nplug_fv_mono. exact IHnred_core.
|
||||
Qed.
|
||||
|
||||
Print Assumptions nplug_fv_mono.
|
||||
Print Assumptions nplug_fv_upper.
|
||||
Print Assumptions nred_core_fv.
|
||||
|
||||
Lemma nplug_esub_fv : forall C X d x u y,
|
||||
y <> x ->
|
||||
In y (nfv (nplug C (NESub (NMVar X d) x u))) ->
|
||||
In y (nfv (nplug C (NMVar X d))) \/ In y (nfv u).
|
||||
Proof.
|
||||
induction C; intros X d x u y Hne Hy; simpl in *.
|
||||
- apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ left. apply in_filter_neq in Hy as [Hy _]. simpl. exact Hy.
|
||||
+ right. exact Hy.
|
||||
- apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply (IHC X d x u y Hne) in Hy. destruct Hy as [Hy|Hy].
|
||||
* left. apply in_app_iff. left. exact Hy.
|
||||
* right. exact Hy.
|
||||
+ left. apply in_app_iff. right. exact Hy.
|
||||
- apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ left. apply in_app_iff. left. exact Hy.
|
||||
+ apply (IHC X d x u y Hne) in Hy. destruct Hy as [Hy|Hy].
|
||||
* left. apply in_app_iff. right. exact Hy.
|
||||
* right. exact Hy.
|
||||
- apply in_filter_neq in Hy as [Hy Hz].
|
||||
apply (IHC X d x u y Hne) in Hy. destruct Hy as [Hy|Hy].
|
||||
+ left. apply filter_neq_in; [exact Hy | exact Hz].
|
||||
+ right. exact Hy.
|
||||
- apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_filter_neq in Hy as [Hy Hz].
|
||||
apply (IHC X d x u y Hne) in Hy. destruct Hy as [Hy|Hy].
|
||||
* left. apply in_app_iff. left. apply filter_neq_in; [exact Hy | exact Hz].
|
||||
* right. exact Hy.
|
||||
+ left. apply in_app_iff. right. exact Hy.
|
||||
- apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ left. apply in_app_iff. left. exact Hy.
|
||||
+ apply (IHC X d x u y Hne) in Hy. destruct Hy as [Hy|Hy].
|
||||
* left. apply in_app_iff. right. exact Hy.
|
||||
* right. exact Hy.
|
||||
Qed.
|
||||
|
||||
Lemma nred_fv : forall t t', nred t t' -> incl (nfv t') (nfv t).
|
||||
Proof.
|
||||
intros t t' H. induction H; simpl; unfold incl in *.
|
||||
- intros y Hy. exact Hy.
|
||||
- intros y Hy. apply in_app_iff. left.
|
||||
apply filter_neq_in; [exact Hy | intro E; apply H; subst; exact Hy].
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_filter_neq in Hy as [Hy Hne].
|
||||
apply (nplug_esub_fv C X d x u y Hne) in Hy. destruct Hy as [Hy|Hy].
|
||||
* apply in_app_iff. left. apply filter_neq_in; [exact Hy | exact Hne].
|
||||
* apply in_app_iff. right. exact Hy.
|
||||
+ apply in_app_iff. right. exact Hy.
|
||||
- intros y Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
+ apply in_filter_neq in Hy as [Hy Hne].
|
||||
apply (nplug_fv_upper C u (NVar x)) in Hy. apply in_app_iff in Hy as [Hy|Hy].
|
||||
* apply in_app_iff. left. apply filter_neq_in; [exact Hy | exact Hne].
|
||||
* apply in_app_iff. right. exact Hy.
|
||||
+ apply in_app_iff. right. exact Hy.
|
||||
- apply nplug_fv_mono. exact IHnred.
|
||||
Qed.
|
||||
|
||||
Print Assumptions nplug_esub_fv.
|
||||
Print Assumptions nred_fv.
|
||||
|
||||
Lemma in_filter_neq_iff : forall z a l,
|
||||
In z (filter (fun w => negb (Nat.eqb w a)) l) <-> In z l /\ z <> a.
|
||||
Proof.
|
||||
intros z a l. split.
|
||||
- intro H. apply filter_In in H. destruct H as [Hl Hp]. split; [exact Hl |].
|
||||
apply Nat.eqb_neq. destruct (Nat.eqb z a) eqn:E; [| reflexivity].
|
||||
simpl in Hp. discriminate Hp.
|
||||
- intros [Hl Hne]. apply filter_In. split; [exact Hl |].
|
||||
apply Nat.eqb_neq in Hne. rewrite Hne. reflexivity.
|
||||
Qed.
|
||||
|
||||
Lemma Es_fv_both : forall t u, Es t u ->
|
||||
incl (nfv t) (nfv u) /\ incl (nfv u) (nfv t).
|
||||
Proof.
|
||||
apply Es_ind.
|
||||
- intros t0. split; unfold incl; auto.
|
||||
- intros t0 u0 H1 IH1. split.
|
||||
+ apply (proj2 IH1).
|
||||
+ apply (proj1 IH1).
|
||||
- intros t0 u0 v0 H1 H2 IH1 IH2. split.
|
||||
+ intros z Hz. apply (proj1 IH2). apply (proj1 H2). exact Hz.
|
||||
+ intros z Hz. apply (proj2 H2). apply (proj2 IH2). exact Hz.
|
||||
- intros t0 x0 u0 y0 v0 Hyx Hyu Hxv. split; unfold incl; intros z Hz; simpl in *;
|
||||
apply in_app_iff in Hz as [Hz|Hz].
|
||||
+ apply in_filter_neq_iff in Hz as [Hz Hy]. apply in_app_iff in Hz as [Hz|Hz].
|
||||
* apply in_filter_neq_iff in Hz as [Hz Hx].
|
||||
apply in_app_iff. left. apply in_filter_neq_iff. split; [| exact Hx].
|
||||
apply in_app_iff. left. apply in_filter_neq_iff. split; [exact Hz | exact Hy].
|
||||
* apply in_app_iff. right. exact Hz.
|
||||
+ apply in_app_iff. left. apply in_filter_neq_iff. split; [| ].
|
||||
* apply in_app_iff. right. exact Hz.
|
||||
* intro E. apply Hxv. subst z. exact Hz.
|
||||
+ apply in_filter_neq_iff in Hz as [Hz Hx]. apply in_app_iff in Hz as [Hz|Hz].
|
||||
* apply in_filter_neq_iff in Hz as [Hz Hy].
|
||||
apply in_app_iff. left. apply in_filter_neq_iff. split; [| exact Hy].
|
||||
apply in_app_iff. left. apply in_filter_neq_iff. split; [exact Hz | exact Hx].
|
||||
* apply in_app_iff. right. exact Hz.
|
||||
+ apply in_app_iff. left. apply in_filter_neq_iff. split; [| ].
|
||||
* apply in_app_iff. right. exact Hz.
|
||||
* intro E. apply Hyu. subst z. exact Hz.
|
||||
- intros C0 t0 t0' H1 IH1. split; apply nplug_fv_mono.
|
||||
+ apply (proj1 IH1).
|
||||
+ apply (proj2 IH1).
|
||||
Qed.
|
||||
|
||||
Lemma Es_fv : forall t u, Es t u -> forall z, In z (nfv t) <-> In z (nfv u).
|
||||
Proof.
|
||||
intros t u H z. destruct (Es_fv_both t u H) as [Htu Hut]. split.
|
||||
- apply Htu.
|
||||
- apply Hut.
|
||||
Qed.
|
||||
|
||||
Print Assumptions in_filter_neq_iff.
|
||||
Print Assumptions Es_fv.
|
||||