<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../../../xsl/proof.xsl"?>
<COORDINATES><NAME>step-L6-L7</NAME><CONCLUSION>1</CONCLUSION><IMAGE>proof-tree.png</IMAGE><WIDTH>790</WIDTH><HEIGHT>1230</HEIGHT><LIST><NODE><X>145</X><Y>1185</Y><NUM>1</NUM></NODE><NODE><X>145</X><Y>1145</Y><NUM>2</NUM></NODE><NODE><X>145</X><Y>1105</Y><NUM>3</NUM></NODE><NODE><X>265</X><Y>1065</Y><NUM>5</NUM></NODE><NODE><X>265</X><Y>1025</Y><NUM>6</NUM></NODE><NODE><X>525</X><Y>985</Y><NUM>8</NUM></NODE><NODE><X>525</X><Y>945</Y><NUM>9</NUM></NODE><NODE><X>525</X><Y>905</Y><NUM>10</NUM></NODE><NODE><X>525</X><Y>865</Y><NUM>11</NUM></NODE><NODE><X>725</X><Y>825</Y><NUM>132</NUM></NODE><NODE><X>725</X><Y>785</Y><NUM>133</NUM></NODE><NODE><X>745</X><Y>745</Y><NUM>135</NUM></NODE><NODE><X>745</X><Y>705</Y><NUM>136</NUM></NODE><NODE><X>745</X><Y>665</Y><NUM>137</NUM></NODE><NODE><X>745</X><Y>625</Y><NUM>138</NUM></NODE><NODE><X>705</X><Y>745</Y><NUM>134</NUM></NODE><NODE><X>345</X><Y>825</Y><NUM>12</NUM></NODE><NODE><X>345</X><Y>785</Y><NUM>13</NUM></NODE><NODE><X>665</X><Y>745</Y><NUM>115</NUM></NODE><NODE><X>685</X><Y>705</Y><NUM>117</NUM></NODE><NODE><X>685</X><Y>665</Y><NUM>118</NUM></NODE><NODE><X>705</X><Y>625</Y><NUM>120</NUM></NODE><NODE><X>705</X><Y>585</Y><NUM>121</NUM></NODE><NODE><X>705</X><Y>545</Y><NUM>122</NUM></NODE><NODE><X>745</X><Y>505</Y><NUM>127</NUM></NODE><NODE><X>745</X><Y>465</Y><NUM>128</NUM></NODE><NODE><X>765</X><Y>425</Y><NUM>130</NUM></NODE><NODE><X>765</X><Y>385</Y><NUM>131</NUM></NODE><NODE><X>725</X><Y>425</Y><NUM>129</NUM></NODE><NODE><X>685</X><Y>505</Y><NUM>123</NUM></NODE><NODE><X>705</X><Y>465</Y><NUM>126</NUM></NODE><NODE><X>665</X><Y>465</Y><NUM>124</NUM></NODE><NODE><X>665</X><Y>425</Y><NUM>125</NUM></NODE><NODE><X>665</X><Y>625</Y><NUM>119</NUM></NODE><NODE><X>645</X><Y>705</Y><NUM>116</NUM></NODE><NODE><X>225</X><Y>745</Y><NUM>21</NUM></NODE><NODE><X>345</X><Y>705</Y><NUM>50</NUM></NODE><NODE><X>345</X><Y>665</Y><NUM>51</NUM></NODE><NODE><X>405</X><Y>625</Y><NUM>53</NUM></NODE><NODE><X>405</X><Y>585</Y><NUM>54</NUM></NODE><NODE><X>525</X><Y>545</Y><NUM>56</NUM></NODE><NODE><X>525</X><Y>505</Y><NUM>57</NUM></NODE><NODE><X>625</X><Y>465</Y><NUM>88</NUM></NODE><NODE><X>625</X><Y>425</Y><NUM>89</NUM></NODE><NODE><X>685</X><Y>385</Y><NUM>91</NUM></NODE><NODE><X>685</X><Y>345</Y><NUM>92</NUM></NODE><NODE><X>745</X><Y>305</Y><NUM>112</NUM></NODE><NODE><X>745</X><Y>265</Y><NUM>113</NUM></NODE><NODE><X>745</X><Y>225</Y><NUM>114</NUM></NODE><NODE><X>645</X><Y>305</Y><NUM>93</NUM></NODE><NODE><X>645</X><Y>265</Y><NUM>94</NUM></NODE><NODE><X>705</X><Y>225</Y><NUM>105</NUM></NODE><NODE><X>705</X><Y>185</Y><NUM>106</NUM></NODE><NODE><X>725</X><Y>145</Y><NUM>108</NUM></NODE><NODE><X>725</X><Y>105</Y><NUM>109</NUM></NODE><NODE><X>725</X><Y>65</Y><NUM>110</NUM></NODE><NODE><X>725</X><Y>25</Y><NUM>111</NUM></NODE><NODE><X>685</X><Y>145</Y><NUM>107</NUM></NODE><NODE><X>585</X><Y>225</Y><NUM>95</NUM></NODE><NODE><X>625</X><Y>185</Y><NUM>98</NUM></NODE><NODE><X>645</X><Y>145</Y><NUM>100</NUM></NODE><NODE><X>645</X><Y>105</Y><NUM>101</NUM></NODE><NODE><X>665</X><Y>65</Y><NUM>104</NUM></NODE><NODE><X>625</X><Y>65</Y><NUM>102</NUM></NODE><NODE><X>625</X><Y>25</Y><NUM>103</NUM></NODE><NODE><X>605</X><Y>145</Y><NUM>99</NUM></NODE><NODE><X>565</X><Y>185</Y><NUM>96</NUM></NODE><NODE><X>565</X><Y>145</Y><NUM>97</NUM></NODE><NODE><X>565</X><Y>385</Y><NUM>90</NUM></NODE><NODE><X>425</X><Y>465</Y><NUM>58</NUM></NODE><NODE><X>425</X><Y>425</Y><NUM>59</NUM></NODE><NODE><X>505</X><Y>385</Y><NUM>81</NUM></NODE><NODE><X>525</X><Y>345</Y><NUM>83</NUM></NODE><NODE><X>525</X><Y>305</Y><NUM>84</NUM></NODE><NODE><X>525</X><Y>265</Y><NUM>85</NUM></NODE><NODE><X>525</X><Y>225</Y><NUM>86</NUM></NODE><NODE><X>525</X><Y>185</Y><NUM>87</NUM></NODE><NODE><X>485</X><Y>345</Y><NUM>82</NUM></NODE><NODE><X>345</X><Y>385</Y><NUM>60</NUM></NODE><NODE><X>345</X><Y>345</Y><NUM>61</NUM></NODE><NODE><X>405</X><Y>305</Y><NUM>68</NUM></NODE><NODE><X>465</X><Y>265</Y><NUM>75</NUM></NODE><NODE><X>465</X><Y>225</Y><NUM>76</NUM></NODE><NODE><X>485</X><Y>185</Y><NUM>78</NUM></NODE><NODE><X>485</X><Y>145</Y><NUM>79</NUM></NODE><NODE><X>485</X><Y>105</Y><NUM>80</NUM></NODE><NODE><X>445</X><Y>185</Y><NUM>77</NUM></NODE><NODE><X>385</X><Y>265</Y><NUM>70</NUM></NODE><NODE><X>385</X><Y>225</Y><NUM>71</NUM></NODE><NODE><X>405</X><Y>185</Y><NUM>73</NUM></NODE><NODE><X>405</X><Y>145</Y><NUM>74</NUM></NODE><NODE><X>365</X><Y>185</Y><NUM>72</NUM></NODE><NODE><X>345</X><Y>265</Y><NUM>69</NUM></NODE><NODE><X>305</X><Y>305</Y><NUM>62</NUM></NODE><NODE><X>305</X><Y>265</Y><NUM>63</NUM></NODE><NODE><X>325</X><Y>225</Y><NUM>65</NUM></NODE><NODE><X>325</X><Y>185</Y><NUM>66</NUM></NODE><NODE><X>325</X><Y>145</Y><NUM>67</NUM></NODE><NODE><X>285</X><Y>225</Y><NUM>64</NUM></NODE><NODE><X>285</X><Y>545</Y><NUM>55</NUM></NODE><NODE><X>285</X><Y>625</Y><NUM>52</NUM></NODE><NODE><X>125</X><Y>705</Y><NUM>22</NUM></NODE><NODE><X>125</X><Y>665</Y><NUM>23</NUM></NODE><NODE><X>125</X><Y>625</Y><NUM>24</NUM></NODE><NODE><X>165</X><Y>585</Y><NUM>26</NUM></NODE><NODE><X>165</X><Y>545</Y><NUM>27</NUM></NODE><NODE><X>205</X><Y>505</Y><NUM>34</NUM></NODE><NODE><X>205</X><Y>465</Y><NUM>35</NUM></NODE><NODE><X>205</X><Y>425</Y><NUM>36</NUM></NODE><NODE><X>225</X><Y>385</Y><NUM>38</NUM></NODE><NODE><X>225</X><Y>345</Y><NUM>39</NUM></NODE><NODE><X>225</X><Y>305</Y><NUM>40</NUM></NODE><NODE><X>245</X><Y>265</Y><NUM>42</NUM></NODE><NODE><X>245</X><Y>225</Y><NUM>43</NUM></NODE><NODE><X>245</X><Y>185</Y><NUM>44</NUM></NODE><NODE><X>245</X><Y>145</Y><NUM>45</NUM></NODE><NODE><X>265</X><Y>105</Y><NUM>48</NUM></NODE><NODE><X>265</X><Y>65</Y><NUM>49</NUM></NODE><NODE><X>225</X><Y>105</Y><NUM>46</NUM></NODE><NODE><X>225</X><Y>65</Y><NUM>47</NUM></NODE><NODE><X>205</X><Y>265</Y><NUM>41</NUM></NODE><NODE><X>185</X><Y>385</Y><NUM>37</NUM></NODE><NODE><X>125</X><Y>505</Y><NUM>28</NUM></NODE><NODE><X>125</X><Y>465</Y><NUM>29</NUM></NODE><NODE><X>145</X><Y>425</Y><NUM>32</NUM></NODE><NODE><X>145</X><Y>385</Y><NUM>33</NUM></NODE><NODE><X>105</X><Y>425</Y><NUM>30</NUM></NODE><NODE><X>105</X><Y>385</Y><NUM>31</NUM></NODE><NODE><X>105</X><Y>585</Y><NUM>25</NUM></NODE><NODE><X>45</X><Y>745</Y><NUM>14</NUM></NODE><NODE><X>65</X><Y>705</Y><NUM>16</NUM></NODE><NODE><X>65</X><Y>665</Y><NUM>17</NUM></NODE><NODE><X>85</X><Y>625</Y><NUM>20</NUM></NODE><NODE><X>45</X><Y>625</Y><NUM>18</NUM></NODE><NODE><X>45</X><Y>585</Y><NUM>19</NUM></NODE><NODE><X>25</X><Y>705</Y><NUM>15</NUM></NODE><NODE><X>25</X><Y>985</Y><NUM>7</NUM></NODE><NODE><X>25</X><Y>1065</Y><NUM>4</NUM></NODE></LIST><PROOF><LIST><PROOFNODE proofname="step-L6-L7"><NUM>1</NUM><TYPE>step</TYPE><INFO>System applied rule normalize</INFO><SEQ>⊦     (  ls.np ∈ ls.lspmx
       ∧ (  alldisjointp(alltids, gs.ghostlspmxf) ∧ disjointp(U(alltids, gs.ghostlspmxf), gs.gspmx)
          ∧ gs.y + (U(alltids, gs.ghostlspmxf) ∪ gs.gspmx).toMatrix(gs.r, &#35; gs.x) * gs.x = gs.spmx.toMatrix(gs.r, &#35; gs.x) * gs.x
          ∧ U(alltids, gs.ghostlspmxf) ∪ gs.gspmx ⊆ gs.spmx ∧ &#35; gs.y = gs.r ∧ okspmx(gs.spmx, gs.r, &#35; gs.x))
       ∧ gs.ghostlspmxf(ls.tid) = ls.lspmx)
    ∧ pre(gs, ls, L6, a) ∧ pcstepf(gs, ls, L6, a) = L7
  →   (  alldisjointp(alltids, gstepf(gs, ls, L6, a).ghostlspmxf)
       ∧ disjointp(U(alltids, gstepf(gs, ls, L6, a).ghostlspmxf), gstepf(gs, ls, L6, a).gspmx)
       ∧     gstepf(gs, ls, L6, a).y
           +   (U(alltids, gstepf(gs, ls, L6, a).ghostlspmxf) ∪ gstepf(gs, ls, L6, a).gspmx
               ).toMatrix
               (gstepf(gs, ls, L6, a).r, &#35; gstepf(gs, ls, L6, a).x
               )
             * gstepf(gs, ls, L6, a).x
         = gstepf(gs, ls, L6, a).spmx.toMatrix(gstepf(gs, ls, L6, a).r, &#35; gstepf(gs, ls, L6, a).x) * gstepf(gs, ls, L6, a).x
       ∧ U(alltids, gstepf(gs, ls, L6, a).ghostlspmxf) ∪ gstepf(gs, ls, L6, a).gspmx ⊆ gstepf(gs, ls, L6, a).spmx
       ∧ &#35; gstepf(gs, ls, L6, a).y = gstepf(gs, ls, L6, a).r
       ∧ okspmx(gstepf(gs, ls, L6, a).spmx, gstepf(gs, ls, L6, a).r, &#35; gstepf(gs, ls, L6, a).x))
    ∧ lstepf(gs, ls, L6, a).np ∈ lstepf(gs, ls, L6, a).lspmx
    ∧ gstepf(gs, ls, L6, a).ghostlspmxf(lstepf(gs, ls, L6, a).tid) = lstepf(gs, ls, L6, a).lspmx -- lstepf(gs, ls, L6, a).np</SEQ><NEWGOALS><LIST><LE><PAIR><FST>2</FST><SND><SEQ>&#35; gs.y = gs.r, gs.y + (U(alltids, gs.ghostlspmxf) ∪ gs.gspmx).toMatrix(gs.r, &#35; gs.x) * gs.x = gs.spmx.toMatrix(gs.r, &#35; gs.x) * gs.x, 
gs.ghostlspmxf(ls.tid) = ls.lspmx, pcstepf(gs, ls, L6, a) = L7, alldisjointp(alltids, gs.ghostlspmxf), disjointp(U(alltids, gs.ghostlspmxf), gs.gspmx), 
okspmx(gs.spmx, gs.r, &#35; gs.x), pre(gs, ls, L6, a), ls.np ∈ ls.lspmx, U(alltids, gs.ghostlspmxf) ∪ gs.gspmx ⊆ gs.spmx
⊦   (  alldisjointp(alltids, gstepf(gs, ls, L6, a).ghostlspmxf)
     ∧ disjointp(U(alltids, gstepf(gs, ls, L6, a).ghostlspmxf), gstepf(gs, ls, L6, a).gspmx)
     ∧     gstepf(gs, ls, L6, a).y
         +   (U(alltids, gstepf(gs, ls, L6, a).ghostlspmxf) ∪ gstepf(gs, ls, L6, a).gspmx
             ).toMatrix
             (gstepf(gs, ls, L6, a).r, &#35; gstepf(gs, ls, L6, a).x
             )
           * gstepf(gs, ls, L6, a).x
       = gstepf(gs, ls, L6, a).spmx.toMatrix(gstepf(gs, ls, L6, a).r, &#35; gstepf(gs, ls, L6, a).x) * gstepf(gs, ls, L6, a).x
     ∧ U(alltids, gstepf(gs, ls, L6, a).ghostlspmxf) ∪ gstepf(gs, ls, L6, a).gspmx ⊆ gstepf(gs, ls, L6, a).spmx
     ∧ &#35; gstepf(gs, ls, L6, a).y = gstepf(gs, ls, L6, a).r
     ∧ okspmx(gstepf(gs, ls, L6, a).spmx, gstepf(gs, ls, L6, a).r, &#35; gstepf(gs, ls, L6, a).x))
  ∧ lstepf(gs, ls, L6, a).np ∈ lstepf(gs, ls, L6, a).lspmx
  ∧ gstepf(gs, ls, L6, a).ghostlspmxf(lstepf(gs, ls, L6, a).tid) = lstepf(gs, ls, L6, a).lspmx -- lstepf(gs, ls, L6, a).np</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="1"><NUM>2</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>&#35; gs.y = gs.r, gs.y + (U(alltids, gs.ghostlspmxf) ∪ gs.gspmx).toMatrix(gs.r, &#35; gs.x) * gs.x = gs.spmx.toMatrix(gs.r, &#35; gs.x) * gs.x, 
gs.ghostlspmxf(ls.tid) = ls.lspmx, pcstepf(gs, ls, L6, a) = L7, alldisjointp(alltids, gs.ghostlspmxf), disjointp(U(alltids, gs.ghostlspmxf), gs.gspmx), 
okspmx(gs.spmx, gs.r, &#35; gs.x), pre(gs, ls, L6, a), ls.np ∈ ls.lspmx, U(alltids, gs.ghostlspmxf) ∪ gs.gspmx ⊆ gs.spmx
⊦   (  alldisjointp(alltids, gstepf(gs, ls, L6, a).ghostlspmxf)
     ∧ disjointp(U(alltids, gstepf(gs, ls, L6, a).ghostlspmxf), gstepf(gs, ls, L6, a).gspmx)
     ∧     gstepf(gs, ls, L6, a).y
         +   (U(alltids, gstepf(gs, ls, L6, a).ghostlspmxf) ∪ gstepf(gs, ls, L6, a).gspmx
             ).toMatrix
             (gstepf(gs, ls, L6, a).r, &#35; gstepf(gs, ls, L6, a).x
             )
           * gstepf(gs, ls, L6, a).x
       = gstepf(gs, ls, L6, a).spmx.toMatrix(gstepf(gs, ls, L6, a).r, &#35; gstepf(gs, ls, L6, a).x) * gstepf(gs, ls, L6, a).x
     ∧ U(alltids, gstepf(gs, ls, L6, a).ghostlspmxf) ∪ gstepf(gs, ls, L6, a).gspmx ⊆ gstepf(gs, ls, L6, a).spmx
     ∧ &#35; gstepf(gs, ls, L6, a).y = gstepf(gs, ls, L6, a).r
     ∧ okspmx(gstepf(gs, ls, L6, a).spmx, gstepf(gs, ls, L6, a).r, &#35; gstepf(gs, ls, L6, a).x))
  ∧ lstepf(gs, ls, L6, a).np ∈ lstepf(gs, ls, L6, a).lspmx
  ∧ gstepf(gs, ls, L6, a).ghostlspmxf(lstepf(gs, ls, L6, a).tid) = lstepf(gs, ls, L6, a).lspmx -- lstepf(gs, ls, L6, a).np</SEQ><NEWGOALS><LIST><LE><PAIR><FST>3</FST><SND><SEQ>&#35; gs.y = gs.r, gs.y + (U(alltids, gs.ghostlspmxf) ∪ gs.gspmx).toMatrix(gs.r, &#35; gs.x) * gs.x = gs.spmx.toMatrix(gs.r, &#35; gs.x) * gs.x, 
gs.ghostlspmxf(ls.tid) = ls.lspmx, ls.val = gs.y[ls.np.r], alldisjointp(alltids, gs.ghostlspmxf), disjointp(U(alltids, gs.ghostlspmxf), gs.gspmx), 
okspmx(gs.spmx, gs.r, &#35; gs.x), ls.np ∈ ls.lspmx, gs.gspmx ⊆ gs.spmx, U(alltids, gs.ghostlspmxf) ⊆ gs.spmx
⊦   alldisjointp(alltids, gs.ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∧ disjointp(U(alltids, gs.ghostlspmxf(ls.tid; ls.lspmx -- ls.np)), gs.gspmx)
  ∧     gs.y[ls.np.r, ls.val + ls.lspmx[ls.np] * gs.x[ls.np.c]]
      + (U(alltids, gs.ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∪ gs.gspmx).toMatrix(gs.r, &#35; gs.x) * gs.x
    = gs.spmx.toMatrix(gs.r, &#35; gs.x) * gs.x
  ∧ U(alltids, gs.ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ⊆ gs.spmx</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
pcstepf-L6:  ⊦ pcstepf(gs, ls, L6, a) = (ls.val = gs.y[ls.np.r] ⊃ L7;L3);
disj-16:  ⊦ L3 ≠ L7;
pre-L6:  ⊦ pre(gs, ls, L6, a) ↔ a = τ;
updsel-30:  ⊦ (gs.ghostlspmxf:= ghostlspmxf).gspmx = gs.gspmx;
updsel-29:  ⊦ (gs.y:= x0).gspmx = gs.gspmx;
updsel-48:  ⊦ (gs.ghostlspmxf:= ghostlspmxf).y = gs.y;
updsel-47:  ⊦ (gs.y:= x0).y = x0;
updsel-24:  ⊦ (gs.ghostlspmxf:= ghostlspmxf).spmx = gs.spmx;
updsel-23:  ⊦ (gs.y:= x0).spmx = gs.spmx;
updsel-36:  ⊦ (gs.ghostlspmxf:= ghostlspmxf).r = gs.r;
updsel-35:  ⊦ (gs.y:= x0).r = gs.r;
updsel-42:  ⊦ (gs.ghostlspmxf:= ghostlspmxf).x = gs.x;
updsel-41:  ⊦ (gs.y:= x0).x = gs.x;
gstepf-L6: ⊦   gstepf(gs, ls, L6, a)
  = (ls.val = gs.y[ls.np.r]
    ⊃                (gs.y:= gs.y[ls.np.r, ls.val + ls.lspmx[ls.np] * gs.x[ls.np.c]])
      .ghostlspmxf:= gs.ghostlspmxf(ls.tid; gs.ghostlspmxf(ls.tid) -- ls.np)
    ;gs
    );
updsel-54:  ⊦ (gs.ghostlspmxf:= ghostlspmxf).ghostlspmxf = ghostlspmxf;
lstepf-L6:  ⊦ lstepf(gs, ls, L6, a) = ls;
 ⊦ &#35; ar[n, a] = &#35; ar; (s)
 ⊦ disjointp(spmx1, spmx2) → (spmx1 ∪ spmx2 ⊆ spmx ↔ spmx1 ⊆ spmx ∧ spmx2 ⊆ spmx); (ws)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="2"><NUM>3</NUM><TYPE>step</TYPE><INFO>Heuristic elimination applied rule apply elim lemma</INFO><SEQ>&#35; gs.y = gs.r, gs.y + (U(alltids, gs.ghostlspmxf) ∪ gs.gspmx).toMatrix(gs.r, &#35; gs.x) * gs.x = gs.spmx.toMatrix(gs.r, &#35; gs.x) * gs.x, 
gs.ghostlspmxf(ls.tid) = ls.lspmx, ls.val = gs.y[ls.np.r], alldisjointp(alltids, gs.ghostlspmxf), disjointp(U(alltids, gs.ghostlspmxf), gs.gspmx), 
okspmx(gs.spmx, gs.r, &#35; gs.x), ls.np ∈ ls.lspmx, gs.gspmx ⊆ gs.spmx, U(alltids, gs.ghostlspmxf) ⊆ gs.spmx
⊦   alldisjointp(alltids, gs.ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∧ disjointp(U(alltids, gs.ghostlspmxf(ls.tid; ls.lspmx -- ls.np)), gs.gspmx)
  ∧     gs.y[ls.np.r, ls.val + ls.lspmx[ls.np] * gs.x[ls.np.c]]
      + (U(alltids, gs.ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∪ gs.gspmx).toMatrix(gs.r, &#35; gs.x) * gs.x
    = gs.spmx.toMatrix(gs.r, &#35; gs.x) * gs.x
  ∧ U(alltids, gs.ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ⊆ gs.spmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>4</FST><SND><SEQ>⊦   ((((spmx = gs.spmx ∧ gspmx = gs.gspmx) ∧ r = gs.r) ∧ x = gs.x) ∧ y = gs.y) ∧ ghostlspmxf = gs.ghostlspmxf
  ↔ gs = mkgs(spmx, gspmx, r, x, y, ghostlspmxf)</SEQ></SND></PAIR></LE><LE><PAIR><FST>5</FST><SND><SEQ>&#35; y = r, y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(r, &#35; x) * x = spmx.toMatrix(r, &#35; x) * x, ls.val = y[ls.np.r], 
ghostlspmxf(ls.tid) = ls.lspmx, gs = mkgs(spmx, gspmx, r, x, y, ghostlspmxf), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, r, &#35; x), ls.np ∈ ls.lspmx, U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∧ disjointp(U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)), gspmx)
  ∧   y[ls.np.r, ls.val + ls.lspmx[ls.np] * x[ls.np.c]] + (U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∪ gspmx).toMatrix(r, &#35; x) * x
    = spmx.toMatrix(r, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ⊆ spmx</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: &lt;toplevel&gt;, name:elim-03, 
seq:⊦     ((((spmx = gs.spmx ∧ gspmx = gs.gspmx) ∧ r = gs.r) ∧ x = gs.x) ∧ y = gs.y)
        ∧ ghostlspmxf = gs.ghostlspmxf
      ↔ gs = mkgs(spmx, gspmx, r, x, y, ghostlspmxf), 
subst:[y, gs, gspmx, ghostlspmxf, spmx, r, x] → [y, gs, gspmx, ghostlspmxf, spmx, r, x]</RULEARGS><EXTRAS>
Used terms: y, gs, gspmx, ghostlspmxf, spmx, r, x</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="3"><NUM>4</NUM><TYPE>lemma</TYPE><INFO>elim-03</INFO><SEQ>⊦   ((((spmx = gs.spmx ∧ gspmx = gs.gspmx) ∧ r = gs.r) ∧ x = gs.x) ∧ y = gs.y) ∧ ghostlspmxf = gs.ghostlspmxf
  ↔ gs = mkgs(spmx, gspmx, r, x, y, ghostlspmxf)</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="3"><NUM>5</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>&#35; y = r, y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(r, &#35; x) * x = spmx.toMatrix(r, &#35; x) * x, ls.val = y[ls.np.r], 
ghostlspmxf(ls.tid) = ls.lspmx, gs = mkgs(spmx, gspmx, r, x, y, ghostlspmxf), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, r, &#35; x), ls.np ∈ ls.lspmx, U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∧ disjointp(U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)), gspmx)
  ∧   y[ls.np.r, ls.val + ls.lspmx[ls.np] * x[ls.np.c]] + (U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∪ gspmx).toMatrix(r, &#35; x) * x
    = spmx.toMatrix(r, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ⊆ spmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>6</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, ls.val = y[ls.np.r], 
ghostlspmxf(ls.tid) = ls.lspmx, alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
ls.np ∈ ls.lspmx, gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∧ disjointp(U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)), gspmx)
  ∧   y[ls.np.r, ls.val + ls.lspmx[ls.np] * x[ls.np.c]] + (U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ⊆ spmx</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="5"><NUM>6</NUM><TYPE>step</TYPE><INFO>Heuristic elimination applied rule apply elim lemma</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, ls.val = y[ls.np.r], 
ghostlspmxf(ls.tid) = ls.lspmx, alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
ls.np ∈ ls.lspmx, gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∧ disjointp(U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)), gspmx)
  ∧   y[ls.np.r, ls.val + ls.lspmx[ls.np] * x[ls.np.c]] + (U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(ls.tid; ls.lspmx -- ls.np)) ⊆ spmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>7</FST><SND><SEQ> ⊦ ((tid = ls.tid ∧ lspmx = ls.lspmx) ∧ np = ls.np) ∧ val = ls.val ↔ ls = mkls(tid, lspmx, np, val)</SEQ></SND></PAIR></LE><LE><PAIR><FST>8</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, ghostlspmxf(tid) = lspmx, 
ls = mkls(tid, lspmx, np, val), val = y[np.r], alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ lspmx, U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(tid; lspmx -- np)) ∧ disjointp(U(alltids, ghostlspmxf(tid; lspmx -- np)), gspmx)
  ∧   y[np.r, val + lspmx[np] * x[np.c]] + (U(alltids, ghostlspmxf(tid; lspmx -- np)) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; lspmx -- np)) ⊆ spmx</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: &lt;toplevel&gt;, name:elim-02, 
seq:⊦   ((tid = ls.tid ∧ lspmx = ls.lspmx) ∧ np = ls.np) ∧ val = ls.val
      ↔ ls = mkls(tid, lspmx, np, val), 
subst:[val, lspmx, np, tid, ls] → [val, lspmx, np, tid, ls]</RULEARGS><EXTRAS>
Used terms: val, lspmx, np, tid, ls</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="6"><NUM>7</NUM><TYPE>lemma</TYPE><INFO>elim-02</INFO><SEQ> ⊦ ((tid = ls.tid ∧ lspmx = ls.lspmx) ∧ np = ls.np) ∧ val = ls.val ↔ ls = mkls(tid, lspmx, np, val)</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="6"><NUM>8</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, ghostlspmxf(tid) = lspmx, 
ls = mkls(tid, lspmx, np, val), val = y[np.r], alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ lspmx, U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(tid; lspmx -- np)) ∧ disjointp(U(alltids, ghostlspmxf(tid; lspmx -- np)), gspmx)
  ∧   y[np.r, val + lspmx[np] * x[np.c]] + (U(alltids, ghostlspmxf(tid; lspmx -- np)) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; lspmx -- np)) ⊆ spmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>9</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ∧ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)), gspmx)
  ∧     y[np.r, y[np.r] + ghostlspmxf(tid)[np] * x[np.c]]
      + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ⊆ spmx</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="8"><NUM>9</NUM><TYPE>step</TYPE><INFO>Heuristic elimination applied rule apply elim lemma</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ∧ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)), gspmx)
  ∧     y[np.r, y[np.r] + ghostlspmxf(tid)[np] * x[np.c]]
      + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ⊆ spmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>10</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, np = r × r0, 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ∧ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)), gspmx)
  ∧   y[r, y[r] + ghostlspmxf(tid)[np] * x[r0]] + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ⊆ spmx</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: natpair, name:elim, seq: ⊦ r = np.r ∧ c = np.c ↔ np = r × c, 
subst:[np, r, c] → [np, r, r0]</RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ r = np.r ∧ c = np.c ↔ np = r × c; (elim)
Used terms: np, r, c</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="9"><NUM>10</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, np = r × r0, 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ∧ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)), gspmx)
  ∧   y[r, y[r] + ghostlspmxf(tid)[np] * x[r0]] + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- np)) ⊆ spmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>11</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
  ∧ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx)
  ∧     y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]]
      + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ⊆ spmx</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="10"><NUM>11</NUM><TYPE>step</TYPE><INFO>User applied rule cut formula</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
  ∧ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx)
  ∧     y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]]
      + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ⊆ spmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>12</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
  ∧ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx)
  ∧     y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]]
      + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ⊆ spmx</SEQ></SND></PAIR></LE><LE><PAIR><FST>132</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
¬ alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
⊦   alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
  ∧ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx)
  ∧     y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]]
      + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ⊆ spmx</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>fma: alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))</RULEARGS><EXTRAS>
Used formulas: alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="11"><NUM>12</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
  ∧ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx)
  ∧     y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]]
      + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ⊆ spmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>13</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx)
  ∧     y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]]
      + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ⊆ spmx</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="12"><NUM>13</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx)
  ∧     y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]]
      + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ⊆ spmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>14</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
¬ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx)
⊦ </SEQ></SND></PAIR></LE><LE><PAIR><FST>21</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
≠ spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ </SEQ></SND></PAIR></LE><LE><PAIR><FST>115</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ¬ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ⊆ spmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: right 1</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="13"><NUM>14</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
¬ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx)
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>15</FST><SND><SEQ> ⊦ disjointp(spmx1, spmx2) → (disjointp(spmx3, spmx4) ↔ (∀ np. (np ∈ spmx1 → ¬ np ∈ spmx2) → np ∈ spmx3 → ¬ np ∈ spmx4))</SEQ></SND></PAIR></LE><LE><PAIR><FST>16</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
∃ np. ¬((np ∈ U(alltids, ghostlspmxf) → ¬ np ∈ gspmx) → np ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) → ¬ np ∈ gspmx)
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: tidset-npset, name:disjointp-reduce, 
seq:⊦   disjointp(spmx1, spmx2)
      → (  disjointp(spmx3, spmx4)
         ↔ (∀ np. (np ∈ spmx1 → ¬ np ∈ spmx2) → np ∈ spmx3 → ¬ np ∈ spmx4)), 
subst:[spmx1, spmx2, spmx3, spmx4]
      → [U(alltids, ghostlspmxf), gspmx, 
         U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx], 
&lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: U(alltids, ghostlspmxf), gspmx, U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="14"><NUM>15</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ disjointp(spmx1, spmx2) → (disjointp(spmx3, spmx4) ↔ (∀ np. (np ∈ spmx1 → ¬ np ∈ spmx2) → np ∈ spmx3 → ¬ np ∈ spmx4))</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="14"><NUM>16</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
∃ np. ¬((np ∈ U(alltids, ghostlspmxf) → ¬ np ∈ gspmx) → np ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) → ¬ np ∈ gspmx)
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>17</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ gspmx, np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), U(alltids, ghostlspmxf) ⊆ spmx, 
gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="16"><NUM>17</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ gspmx, np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), U(alltids, ghostlspmxf) ⊆ spmx, 
gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>18</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid = tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ gspmx, r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0) -- (r × r0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1)</SEQ></SND></PAIR></LE><LE><PAIR><FST>20</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ gspmx, r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 8</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="17"><NUM>18</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid = tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ gspmx, r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0) -- (r × r0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>19</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, np ≠ r × r0, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), np ∈ gspmx, np ∈ ghostlspmxf(tid0), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="18"><NUM>19</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, np ≠ r × r0, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), np ∈ gspmx, np ∈ ghostlspmxf(tid0), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1)</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid0</RULEARGS><EXTRAS>
Used terms: tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="17"><NUM>20</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ gspmx, r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1)</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid0</RULEARGS><EXTRAS>
Used terms: tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="13"><NUM>21</NUM><TYPE>step</TYPE><INFO>User applied rule cut formula</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
≠ spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>22</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
≠ spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ </SEQ></SND></PAIR></LE><LE><PAIR><FST>50</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
≠ spmx.toMatrix(&#35; y, &#35; x) * x, 
U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx ≠ (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>fma:   U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx
     = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)</RULEARGS><EXTRAS>
Used formulas:   U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx
= (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="21"><NUM>22</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
≠ spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>23</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="22"><NUM>23</NUM><TYPE>step</TYPE><INFO>User applied rule subst equation</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>24</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 1, flags: rotate, discard</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="23"><NUM>24</NUM><TYPE>step</TYPE><INFO>User applied rule apply lemma</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>25</FST><SND><SEQ>⊦   r × c ∈ spmx ∧ c &lt; &#35; x ∧ r &lt; &#35; y
  → y[r, y[r] + spmx[r × c] * x[c]] + (spmx -- (r × c)).toMatrix(&#35; y, &#35; x) * x = y + spmx.toMatrix(&#35; y, &#35; x) * x</SEQ></SND></PAIR></LE><LE><PAIR><FST>26</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y
→   y[r, y[r] + (U(alltids, ghostlspmxf) ∪ gspmx)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: VerifyThis3-sequential, name:main-lemma, 
seq:⊦   r × c ∈ spmx ∧ c &lt; &#35; x ∧ r &lt; &#35; y
      →     y[r, y[r] + spmx[r × c] * x[c]]
          + (spmx -- (r × c)).toMatrix(&#35; y, &#35; x) * x
        = y + spmx.toMatrix(&#35; y, &#35; x) * x, 
subst:[y, spmx, c, r, x] → [y, U(alltids, ghostlspmxf) ∪ gspmx, r0, r, x]</RULEARGS><EXTRAS>
Used terms: y, U(alltids, ghostlspmxf) ∪ gspmx, r0, r, x</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="24"><NUM>25</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ>⊦   r × c ∈ spmx ∧ c &lt; &#35; x ∧ r &lt; &#35; y
  → y[r, y[r] + spmx[r × c] * x[c]] + (spmx -- (r × c)).toMatrix(&#35; y, &#35; x) * x = y + spmx.toMatrix(&#35; y, &#35; x) * x</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="24"><NUM>26</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y
→   y[r, y[r] + (U(alltids, ghostlspmxf) ∪ gspmx)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>27</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y
→     y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
    + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]; (s)
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)
 ⊦ (spmx1 ∪ spmx2)[np] = (np ∈ spmx1 ⊃ spmx1[np];spmx2[np]); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="26"><NUM>27</NUM><TYPE>step</TYPE><INFO>User applied rule cut formula</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y
→     y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
    + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>28</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r0 &lt; &#35; x, r &lt; &#35; y, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ U(alltids, ghostlspmxf), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y
→     y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
    + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ </SEQ></SND></PAIR></LE><LE><PAIR><FST>34</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y
→     y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
    + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ r × r0 ∈ U(alltids, ghostlspmxf) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>fma: r × r0 ∈ U(alltids, ghostlspmxf) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</RULEARGS><EXTRAS>
Used formulas: r × r0 ∈ U(alltids, ghostlspmxf) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="27"><NUM>28</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r0 &lt; &#35; x, r &lt; &#35; y, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ U(alltids, ghostlspmxf), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y
→     y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
    + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>29</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r0 &lt; &#35; x, r &lt; &#35; y, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx
→     y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
    + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ m &lt; n → n ≠ 0; (s)
f:  ⊦ m &lt; n → n ≠ 0; (forward) from specification nat-basic
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="28"><NUM>29</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r0 &lt; &#35; x, r &lt; &#35; y, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx
→     y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
    + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>30</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r &lt; &#35; y, r0 &lt; &#35; x, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, ¬ r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ></SND></PAIR></LE><LE><PAIR><FST>32</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r &lt; &#35; y, r0 &lt; &#35; x, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, 
    y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
  + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
= y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 13</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="29"><NUM>30</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r &lt; &#35; y, r0 &lt; &#35; x, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, ¬ r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>31</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = U(alltids, ghostlspmxf) ∪ gspmx, 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r0 &lt; &#35; x, r &lt; &#35; y, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ¬ r × r0 ∈ gspmx
⊦ ∃ tid1. r × r0 ∈ ghostlspmxf(tid1)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)
 ⊦ np ∈ spmx1 ∪ spmx2 ↔ np ∈ spmx1 ∨ np ∈ spmx2; (ws)
 ⊦ ¬ a ∈ st → st -- a = st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="30"><NUM>31</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = U(alltids, ghostlspmxf) ∪ gspmx, 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r0 &lt; &#35; x, r &lt; &#35; y, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ¬ r × r0 ∈ gspmx
⊦ ∃ tid1. r × r0 ∈ ghostlspmxf(tid1)</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid</RULEARGS><EXTRAS>
Used terms: tid</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="29"><NUM>32</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r &lt; &#35; y, r0 &lt; &#35; x, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, 
    y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
  + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
= y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>33</FST><SND><SEQ>  y[r, y[r] + gspmx[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
= y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r0 &lt; &#35; x, r &lt; &#35; y, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ∀ tid0. ¬ r × r0 ∈ ghostlspmxf(tid0)
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 13</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="32"><NUM>33</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule all left</INFO><SEQ>  y[r, y[r] + gspmx[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
= y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
r0 &lt; &#35; x, r &lt; &#35; y, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ∀ tid0. ¬ r × r0 ∈ ghostlspmxf(tid0)
⊦ </SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: left 14 terms: tid</RULEARGS><EXTRAS>
Used terms: tid</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="27"><NUM>34</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y
→     y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
    + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ r × r0 ∈ U(alltids, ghostlspmxf) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>35</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y
→     y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
    + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="34"><NUM>35</NUM><TYPE>step</TYPE><INFO>User applied rule weakening</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx = (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
≠ y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
  r × r0 ∈ U(alltids, ghostlspmxf) ∪ gspmx ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y
→     y[r, y[r] + (∃ tid0. r × r0 ∈ ghostlspmxf(tid0) ⊃ ghostlspmxf(tid)[r × r0];gspmx[r × r0]) * x[r0]]
    + ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)).toMatrix(&#35; y, &#35; x) * x
  = y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>36</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>poslist: left 1, left 2, left 10</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="35"><NUM>36</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>37</FST><SND><SEQ> ⊦ okspmx(spmx, r, c) ↔ (∀ np. np ∈ spmx → np.r &lt; r ∧ np.c &lt; c)</SEQ></SND></PAIR></LE><LE><PAIR><FST>38</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, ∀ np. np ∈ spmx → np.r &lt; &#35; y ∧ np.c &lt; &#35; x
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: VerifyThis3-sequential, name:okspmx-def, 
seq: ⊦ okspmx(spmx, r, c) ↔ (∀ np. np ∈ spmx → np.r &lt; r ∧ np.c &lt; c), 
subst:[spmx, r, c] → [spmx, &#35; y, &#35; x], &lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: spmx, &#35; y, &#35; x</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="36"><NUM>37</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ okspmx(spmx, r, c) ↔ (∀ np. np ∈ spmx → np.r &lt; r ∧ np.c &lt; c)</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="36"><NUM>38</NUM><TYPE>step</TYPE><INFO>User applied rule all left</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, ∀ np. np ∈ spmx → np.r &lt; &#35; y ∧ np.c &lt; &#35; x
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>39</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, r × r0 ∈ spmx → (r × r0).r &lt; &#35; y ∧ (r × r0).c &lt; &#35; x
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 7 terms: r × r0 abort: F discard: T computed: T</RULEARGS><EXTRAS>
Used terms: r × r0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="38"><NUM>39</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, r × r0 ∈ spmx → (r × r0).r &lt; &#35; y ∧ (r × r0).c &lt; &#35; x
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>40</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ (n × n0).c = n0; (s)
 ⊦ (n × n0).r = n; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="39"><NUM>40</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>41</FST><SND><SEQ> ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a])</SEQ></SND></PAIR></LE><LE><PAIR><FST>42</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x, 
∀ np. np ∈ U(alltids, ghostlspmxf) → np ∈ spmx ∧ U(alltids, ghostlspmxf)[np] = spmx[np]
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: store[sparsearray], name:Subset, 
seq: ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a]), 
subst:[st1, st2] → [U(alltids, ghostlspmxf), spmx], &lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: U(alltids, ghostlspmxf), spmx</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="40"><NUM>41</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a])</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="40"><NUM>42</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x, 
∀ np. np ∈ U(alltids, ghostlspmxf) → np ∈ spmx ∧ U(alltids, ghostlspmxf)[np] = spmx[np]
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>43</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x, 
∀ np. (∃ tid0. np ∈ ghostlspmxf(tid0)) → np ∈ spmx ∧ U(alltids, ghostlspmxf)[np] = spmx[np]
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="42"><NUM>43</NUM><TYPE>step</TYPE><INFO>User applied rule all left</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x, 
∀ np. (∃ tid0. np ∈ ghostlspmxf(tid0)) → np ∈ spmx ∧ U(alltids, ghostlspmxf)[np] = spmx[np]
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>44</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x, 
(∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) → r × r0 ∈ spmx ∧ U(alltids, ghostlspmxf)[r × r0] = spmx[r × r0]
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 7 terms: r × r0 abort: F discard: T computed: T</RULEARGS><EXTRAS>
Used terms: r × r0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="43"><NUM>44</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x, 
(∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) → r × r0 ∈ spmx ∧ U(alltids, ghostlspmxf)[r × r0] = spmx[r × r0]
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>45</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x, 
(∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) → r × r0 ∈ spmx ∧ ghostlspmxf(tid)[r × r0] = spmx[r × r0]
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="44"><NUM>45</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x, 
(∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) → r × r0 ∈ spmx ∧ ghostlspmxf(tid)[r × r0] = spmx[r × r0]
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>46</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x
⊦ ∃ tid0. r × r0 ∈ ghostlspmxf(tid0), (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE><LE><PAIR><FST>48</FST><SND><SEQ>ghostlspmxf(tid)[r × r0] = spmx[r × r0], alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ spmx, gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 7</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="45"><NUM>46</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x
⊦ ∃ tid0. r × r0 ∈ ghostlspmxf(tid0), (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>47</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x
⊦ ∃ tid0. r × r0 ∈ ghostlspmxf(tid0)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="46"><NUM>47</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x
⊦ ∃ tid0. r × r0 ∈ ghostlspmxf(tid0)</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid</RULEARGS><EXTRAS>
Used terms: tid</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="45"><NUM>48</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>ghostlspmxf(tid)[r × r0] = spmx[r × r0], alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ spmx, gspmx ⊆ spmx, r × r0 ∈ spmx → r &lt; &#35; y ∧ r0 &lt; &#35; x
⊦ (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) ∧ r0 &lt; &#35; x ∧ r &lt; &#35; y</SEQ><NEWGOALS><LIST><LE><PAIR><FST>49</FST><SND><SEQ>ghostlspmxf(tid)[r × r0] = spmx[r × r0], r0 &lt; &#35; x, r &lt; &#35; y, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), r × r0 ∈ ghostlspmxf(tid), 
r × r0 ∈ spmx, gspmx ⊆ spmx
⊦ ∃ tid0. r × r0 ∈ ghostlspmxf(tid0)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ m &lt; n → n ≠ 0; (s)
f:  ⊦ m &lt; n → n ≠ 0; (forward) from specification nat-basic</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="48"><NUM>49</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>ghostlspmxf(tid)[r × r0] = spmx[r × r0], r0 &lt; &#35; x, r &lt; &#35; y, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), r × r0 ∈ ghostlspmxf(tid), 
r × r0 ∈ spmx, gspmx ⊆ spmx
⊦ ∃ tid0. r × r0 ∈ ghostlspmxf(tid0)</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid</RULEARGS><EXTRAS>
Used terms: tid</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="21"><NUM>50</NUM><TYPE>step</TYPE><INFO>User applied rule weakening</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
  y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]] + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
≠ spmx.toMatrix(&#35; y, &#35; x) * x, 
U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx ≠ (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>51</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx ≠ (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>poslist: left 1, left 2</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="50"><NUM>51</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx ≠ (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0), alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>52</FST><SND><SEQ> ⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1[a] = st2[a])</SEQ></SND></PAIR></LE><LE><PAIR><FST>53</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
∃ np. 
  ¬
  (  (np ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx ↔ np ∈ (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))
   ∧ (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx)[np] = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np])
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: store[sparsearray], name:Extension, 
seq: ⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1[a] = st2[a]), 
subst:[st1, st2]
      → [U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx, 
         (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)], 
&lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx, (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="51"><NUM>52</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ st1 = st2 ↔ (∀ a. (a ∈ st1 ↔ a ∈ st2) ∧ st1[a] = st2[a])</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="51"><NUM>53</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
∃ np. 
  ¬
  (  (np ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx ↔ np ∈ (U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))
   ∧ (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx)[np] = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np])
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>54</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   (np ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx)
  ∧   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
      ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
      ;gspmx[np]
      )
    = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)
 ⊦ (spmx1 ∪ spmx2)[np] = (np ∈ spmx1 ⊃ spmx1[np];spmx2[np]); (s)
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="53"><NUM>54</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   (np ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx)
  ∧   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
      ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
      ;gspmx[np]
      )
    = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>55</FST><SND><SEQ> ⊦ np ∈ spmx1 ∪ spmx2 ↔ np ∈ spmx1 ∨ np ∈ spmx2</SEQ></SND></PAIR></LE><LE><PAIR><FST>56</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   (np ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx)
  ∧   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
      ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
      ;gspmx[np]
      )
    = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: tidset-npset, name:in-union, seq: ⊦ np ∈ spmx1 ∪ spmx2 ↔ np ∈ spmx1 ∨ np ∈ spmx2, 
subst:[np, spmx1, spmx2]
      → [np, U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx], 
&lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: np, U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="54"><NUM>55</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ np ∈ spmx1 ∪ spmx2 ↔ np ∈ spmx1 ∨ np ∈ spmx2</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="54"><NUM>56</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   (np ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx)
  ∧   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
      ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
      ;gspmx[np]
      )
    = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>57</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   ((∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx)
  ∧   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
      ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
      ;gspmx[np]
      )
    = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="56"><NUM>57</NUM><TYPE>step</TYPE><INFO>User applied rule cut formula</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   ((∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx)
  ∧   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
      ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
      ;gspmx[np]
      )
    = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>58</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦   ((∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx)
  ∧   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
      ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
      ;gspmx[np]
      )
    = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ></SND></PAIR></LE><LE><PAIR><FST>88</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
    ((∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx)
  ∧   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
      ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
      ;gspmx[np]
      )
    = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>fma:     (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)))
       ∨ np ∈ gspmx
     ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx</RULEARGS><EXTRAS>
Used formulas:     (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)))
  ∨ np ∈ gspmx
↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="57"><NUM>58</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦   ((∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx)
  ∧   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
      ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
      ;gspmx[np]
      )
    = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>59</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
    ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
    ;gspmx[np]
    )
  = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: right 1</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="58"><NUM>59</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
    ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
    ;gspmx[np]
    )
  = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>60</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ </SEQ></SND></PAIR></LE><LE><PAIR><FST>81</FST><SND><SEQ>gspmx[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: right 1</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="59"><NUM>60</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>61</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), r × r0 ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="60"><NUM>61</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), r × r0 ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>62</FST><SND><SEQ>tid = tid0, U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0) -- (r × r0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ></SND></PAIR></LE><LE><PAIR><FST>68</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 6</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="61"><NUM>62</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>tid = tid0, U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0) -- (r × r0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>63</FST><SND><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), np ∈ ghostlspmxf(tid0), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid1. np ∈ (tid0 = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ U(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0)))[np] = (∃ tid. np ∈ ghostlspmxf(tid) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]; (s)
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)
 ⊦ (spmx1 ∪ spmx2)[np] = (np ∈ spmx1 ⊃ spmx1[np];spmx2[np]); (s)
a ≠ b ⊦ (st -- b)[a] = st[a]; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="62"><NUM>63</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), np ∈ ghostlspmxf(tid0), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid1. np ∈ (tid0 = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ U(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0)))[np] = (∃ tid. np ∈ ghostlspmxf(tid) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ><NEWGOALS><LIST><LE><PAIR><FST>64</FST><SND><SEQ> ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]</SEQ></SND></PAIR></LE><LE><PAIR><FST>65</FST><SND><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid0), 
np ∈ ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))(tid0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid1. np ∈ (tid0 = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))(tid0)[np] = (∃ tid. np ∈ ghostlspmxf(tid) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: tidset-npset, name:bigunion-get, 
seq: ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np], 
subst:[tid, ts, f, np]
      → [tid0, alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0)), np], 
&lt;all paths&gt;</RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)
Used terms: tid0, alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0)), np</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="63"><NUM>64</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="63"><NUM>65</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid0), 
np ∈ ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))(tid0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid1. np ∈ (tid0 = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))(tid0)[np] = (∃ tid. np ∈ ghostlspmxf(tid) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ><NEWGOALS><LIST><LE><PAIR><FST>66</FST><SND><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), np ∈ ghostlspmxf(tid0), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid1. np ∈ (tid0 = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ ghostlspmxf(tid0)[np] = (∃ tid. np ∈ ghostlspmxf(tid) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ a ≠ b → (st -- b)[a] = st[a]; (s)
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="65"><NUM>66</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), np ∈ ghostlspmxf(tid0), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid1. np ∈ (tid0 = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ ghostlspmxf(tid0)[np] = (∃ tid. np ∈ ghostlspmxf(tid) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ><NEWGOALS><LIST><LE><PAIR><FST>67</FST><SND><SEQ>ghostlspmxf(tid0)[np] ≠ gspmx[np], np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid1. np ∈ (tid0 = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid. ¬ np ∈ ghostlspmxf(tid)
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: right 1</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="66"><NUM>67</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule all left</INFO><SEQ>ghostlspmxf(tid0)[np] ≠ gspmx[np], np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid1. np ∈ (tid0 = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid. ¬ np ∈ ghostlspmxf(tid)
⊦ </SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: left 12 terms: tid0</RULEARGS><EXTRAS>
Used terms: tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="61"><NUM>68</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>69</FST><SND><SEQ> ⊦ a ≠ b → (st -- b)[a] = st[a]</SEQ></SND></PAIR></LE><LE><PAIR><FST>70</FST><SND><SEQ>np = r × r0, U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ></SND></PAIR></LE><LE><PAIR><FST>75</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ (U(alltids, ghostlspmxf) ∪ gspmx)[np], np ≠ r × r0, tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: store[sparsearray], name:Del-at, seq: ⊦ a ≠ b → (st -- b)[a] = st[a], 
subst:[st, b, a] → [U(alltids, ghostlspmxf) ∪ gspmx, r × r0, np], &lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: U(alltids, ghostlspmxf) ∪ gspmx, r × r0, np</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="68"><NUM>69</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ a ≠ b → (st -- b)[a] = st[a]</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="68"><NUM>70</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>np = r × r0, U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>71</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[r × r0] ≠ ∅[r × r0], tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, ¬ r × r0 ∈ gspmx
⊦ ∃ tid0. r × r0 ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ (st -- a)[a] = ∅[a]; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="70"><NUM>71</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[r × r0] ≠ ∅[r × r0], tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, ¬ r × r0 ∈ gspmx
⊦ ∃ tid0. r × r0 ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ><NEWGOALS><LIST><LE><PAIR><FST>72</FST><SND><SEQ> ⊦ ¬ a ∈ st → st[a] = ∅[a]</SEQ></SND></PAIR></LE><LE><PAIR><FST>73</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[r × r0] ≠ ∅[r × r0], tid ≠ tid0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), r × r0 ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ¬ r × r0 ∈ gspmx
⊦ ∃ tid0. r × r0 ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: store[sparsearray], name:notmemlookup, seq: ⊦ ¬ a ∈ st → st[a] = ∅[a], 
subst:[st, a] → [U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), r × r0], 
&lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), r × r0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="71"><NUM>72</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ ¬ a ∈ st → st[a] = ∅[a]</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="71"><NUM>73</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[r × r0] ≠ ∅[r × r0], tid ≠ tid0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), r × r0 ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ¬ r × r0 ∈ gspmx
⊦ ∃ tid0. r × r0 ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ><NEWGOALS><LIST><LE><PAIR><FST>74</FST><SND><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[r × r0] ≠ ∅[r × r0], tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ ghostlspmxf(tid0), 
r × r0 ∈ (tid = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1)), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, ¬ r × r0 ∈ gspmx
⊦ ∃ tid0. r × r0 ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="73"><NUM>74</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[r × r0] ≠ ∅[r × r0], tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ ghostlspmxf(tid0), 
r × r0 ∈ (tid = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1)), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, ¬ r × r0 ∈ gspmx
⊦ ∃ tid0. r × r0 ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid1</RULEARGS><EXTRAS>
Used terms: tid1</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="68"><NUM>75</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ (U(alltids, ghostlspmxf) ∪ gspmx)[np], np ≠ r × r0, tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>76</FST><SND><SEQ>np ≠ r × r0, tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = (∃ tid1. np ∈ ghostlspmxf(tid1) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]; (s)
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)
 ⊦ (spmx1 ∪ spmx2)[np] = (np ∈ spmx1 ⊃ spmx1[np];spmx2[np]); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="75"><NUM>76</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>np ≠ r × r0, tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = (∃ tid1. np ∈ ghostlspmxf(tid1) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ><NEWGOALS><LIST><LE><PAIR><FST>77</FST><SND><SEQ> ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]</SEQ></SND></PAIR></LE><LE><PAIR><FST>78</FST><SND><SEQ>np ≠ r × r0, tid ≠ tid0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), 
np ∈ ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid0), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid0)[np] = (∃ tid1. np ∈ ghostlspmxf(tid1) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: tidset-npset, name:bigunion-get, 
seq: ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np], 
subst:[ts, f, np, tid]
      → [alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)), np, tid0], 
&lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)), np, tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="76"><NUM>77</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="76"><NUM>78</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>np ≠ r × r0, tid ≠ tid0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), 
np ∈ ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid0), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid0)[np] = (∃ tid1. np ∈ ghostlspmxf(tid1) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ><NEWGOALS><LIST><LE><PAIR><FST>79</FST><SND><SEQ>np ≠ r × r0, tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ ghostlspmxf(tid0)[np] = (∃ tid1. np ∈ ghostlspmxf(tid1) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="78"><NUM>79</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>np ≠ r × r0, tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx
⊦ ghostlspmxf(tid0)[np] = (∃ tid1. np ∈ ghostlspmxf(tid1) ⊃ ghostlspmxf(tid0)[np];gspmx[np])</SEQ><NEWGOALS><LIST><LE><PAIR><FST>80</FST><SND><SEQ>ghostlspmxf(tid0)[np] ≠ gspmx[np], np ≠ r × r0, tid ≠ tid0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid1. ¬ np ∈ ghostlspmxf(tid1)
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: right 1</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="79"><NUM>80</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule all left</INFO><SEQ>ghostlspmxf(tid0)[np] ≠ gspmx[np], np ≠ r × r0, tid ≠ tid0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid1. ¬ np ∈ ghostlspmxf(tid1)
⊦ </SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: left 13 terms: tid0</RULEARGS><EXTRAS>
Used terms: tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="59"><NUM>81</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>gspmx[np] ≠ ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np], alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>82</FST><SND><SEQ> ⊦ a ≠ b → (st -- b)[a] = st[a]</SEQ></SND></PAIR></LE><LE><PAIR><FST>83</FST><SND><SEQ>gspmx[np] ≠ (U(alltids, ghostlspmxf) ∪ gspmx)[np], np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: store[sparsearray], name:Del-at, seq: ⊦ a ≠ b → (st -- b)[a] = st[a], 
subst:[st, b, a] → [U(alltids, ghostlspmxf) ∪ gspmx, r × r0, np], &lt;all paths&gt;</RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ (st -- a)[a] = ∅[a]; (s)
 ⊦ ¬ a ∈ st → st[a] = ∅[a]; (s)
Used terms: U(alltids, ghostlspmxf) ∪ gspmx, r × r0, np</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="81"><NUM>82</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ a ≠ b → (st -- b)[a] = st[a]</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="81"><NUM>83</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>gspmx[np] ≠ (U(alltids, ghostlspmxf) ∪ gspmx)[np], np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>84</FST><SND><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ gspmx[np] = (∃ tid0. np ∈ ghostlspmxf(tid0) ⊃ U(alltids, ghostlspmxf)[np];gspmx[np])</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)
 ⊦ (spmx1 ∪ spmx2)[np] = (np ∈ spmx1 ⊃ spmx1[np];spmx2[np]); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="83"><NUM>84</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ gspmx[np] = (∃ tid0. np ∈ ghostlspmxf(tid0) ⊃ U(alltids, ghostlspmxf)[np];gspmx[np])</SEQ><NEWGOALS><LIST><LE><PAIR><FST>85</FST><SND><SEQ>gspmx[np] ≠ U(alltids, ghostlspmxf)[np], np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), ∃ tid0. np ∈ ghostlspmxf(tid0)
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: right 1</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="84"><NUM>85</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>gspmx[np] ≠ U(alltids, ghostlspmxf)[np], np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), ∃ tid0. np ∈ ghostlspmxf(tid0)
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>86</FST><SND><SEQ>gspmx[np] ≠ ghostlspmxf(tid0)[np], np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="85"><NUM>86</NUM><TYPE>step</TYPE><INFO>User applied rule all left</INFO><SEQ>gspmx[np] ≠ ghostlspmxf(tid0)[np], np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), 
r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>87</FST><SND><SEQ>gspmx[np] ≠ ghostlspmxf(tid0)[np], np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 12 terms: tid0 abort: F discard: F computed: F</RULEARGS><EXTRAS>
Used terms: tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="86"><NUM>87</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>gspmx[np] ≠ ghostlspmxf(tid0)[np], np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
∀ tid0. ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
⊦ </SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: left 11</RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="57"><NUM>88</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx, 
    ((∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx)
  ∧   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))
      ⊃ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np]
      ;gspmx[np]
      )
    = ((U(alltids, ghostlspmxf) ∪ gspmx) -- (r × r0))[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>89</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)
 ⊦ (spmx1 ∪ spmx2)[np] = (np ∈ spmx1 ⊃ spmx1[np];spmx2[np]); (s)
a ≠ b ⊦ (st -- b)[a] = st[a]; (s)
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="88"><NUM>89</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx ↔ np ≠ r × r0 ∧ np ∈ U(alltids, ghostlspmxf) ∪ gspmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>90</FST><SND><SEQ> ⊦ np ∈ spmx1 ∪ spmx2 ↔ np ∈ spmx1 ∨ np ∈ spmx2</SEQ></SND></PAIR></LE><LE><PAIR><FST>91</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx
  ↔ np ≠ r × r0 ∧ (np ∈ U(alltids, ghostlspmxf) ∨ np ∈ gspmx)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: tidset-npset, name:in-union, seq: ⊦ np ∈ spmx1 ∪ spmx2 ↔ np ∈ spmx1 ∨ np ∈ spmx2, 
subst:[np, spmx1, spmx2] → [np, U(alltids, ghostlspmxf), gspmx], &lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: np, U(alltids, ghostlspmxf), gspmx</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="89"><NUM>90</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ np ∈ spmx1 ∪ spmx2 ↔ np ∈ spmx1 ∨ np ∈ spmx2</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="89"><NUM>91</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx
  ↔ np ≠ r × r0 ∧ (np ∈ U(alltids, ghostlspmxf) ∨ np ∈ gspmx)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>92</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx
  ↔ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="91"><NUM>92</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦   (∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx
  ↔ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>93</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ></SND></PAIR></LE><LE><PAIR><FST>112</FST><SND><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
¬ np ∈ gspmx, (∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx
⊦ ∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: right 1</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="92"><NUM>93</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
(∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))) ∨ np ∈ gspmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>94</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)) ∨ np ∈ gspmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="93"><NUM>94</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)) ∨ np ∈ gspmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>95</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ></SND></PAIR></LE><LE><PAIR><FST>105</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ gspmx, gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 8</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="94"><NUM>95</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>96</FST><SND><SEQ>tid = tid0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0) -- (r × r0), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ></SND></PAIR></LE><LE><PAIR><FST>98</FST><SND><SEQ>tid ≠ tid0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 6</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="95"><NUM>96</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>tid = tid0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0) -- (r × r0), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>97</FST><SND><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, ¬ np ∈ gspmx
⊦ ∃ tid0. np ∈ ghostlspmxf(tid0)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="96"><NUM>97</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, ¬ np ∈ gspmx
⊦ ∃ tid0. np ∈ ghostlspmxf(tid0)</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid0</RULEARGS><EXTRAS>
Used terms: tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="95"><NUM>98</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>tid ≠ tid0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>99</FST><SND><SEQ> ⊦ alldisjointp(ts, f) ↔ (∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2))</SEQ></SND></PAIR></LE><LE><PAIR><FST>100</FST><SND><SEQ>tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
∀ tid1, tid2, np. tid1 ∈ alltids ∧ tid2 ∈ alltids ∧ np ∈ ghostlspmxf(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ ghostlspmxf(tid2)
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: tidset-npset, name:alldisjointp-def, 
seq:⊦   alldisjointp(ts, f)
      ↔ (∀ tid1, tid2, np. 
           tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2)), 
subst:[ts, f] → [alltids, ghostlspmxf], &lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: alltids, ghostlspmxf</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="98"><NUM>99</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ alldisjointp(ts, f) ↔ (∀ tid1, tid2, np. tid1 ∈ ts ∧ tid2 ∈ ts ∧ np ∈ f(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ f(tid2))</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="98"><NUM>100</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
∀ tid1, tid2, np. tid1 ∈ alltids ∧ tid2 ∈ alltids ∧ np ∈ ghostlspmxf(tid1) ∧ tid1 ≠ tid2 → ¬ np ∈ ghostlspmxf(tid2)
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>101</FST><SND><SEQ>tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
∀ tid1, tid2, np0. np0 ∈ ghostlspmxf(tid1) ∧ tid1 ≠ tid2 → ¬ np0 ∈ ghostlspmxf(tid2)
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="100"><NUM>101</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
∀ tid1, tid2, np0. np0 ∈ ghostlspmxf(tid1) ∧ tid1 ≠ tid2 → ¬ np0 ∈ ghostlspmxf(tid2)
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>102</FST><SND><SEQ>np = r × r0, tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
∀ tid1, tid2, np0. np0 ∈ ghostlspmxf(tid1) ∧ tid1 ≠ tid2 → ¬ np0 ∈ ghostlspmxf(tid2)
⊦ </SEQ></SND></PAIR></LE><LE><PAIR><FST>104</FST><SND><SEQ>tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, ¬ np ∈ gspmx, 
∀ tid1, tid2, np0. np0 ∈ ghostlspmxf(tid1) ∧ tid1 ≠ tid2 → ¬ np0 ∈ ghostlspmxf(tid2)
⊦ ∃ tid0. np ∈ ghostlspmxf(tid0)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: right 1</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="101"><NUM>102</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>np = r × r0, tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
∀ tid1, tid2, np0. np0 ∈ ghostlspmxf(tid1) ∧ tid1 ≠ tid2 → ¬ np0 ∈ ghostlspmxf(tid2)
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>103</FST><SND><SEQ>tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ ghostlspmxf(tid0), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
∀ tid1, tid2, np0. np0 ∈ ghostlspmxf(tid1) ∧ tid1 ≠ tid2 → ¬ np0 ∈ ghostlspmxf(tid2)
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="102"><NUM>103</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule all left</INFO><SEQ>tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ ghostlspmxf(tid0), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
∀ tid1, tid2, np0. np0 ∈ ghostlspmxf(tid1) ∧ tid1 ≠ tid2 → ¬ np0 ∈ ghostlspmxf(tid2)
⊦ </SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: left 9 terms: tid, tid0, r × r0</RULEARGS><EXTRAS>
Used terms: tid, tid0, r × r0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="101"><NUM>104</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>tid ≠ tid0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, ¬ np ∈ gspmx, 
∀ tid1, tid2, np0. np0 ∈ ghostlspmxf(tid1) ∧ tid1 ≠ tid2 → ¬ np0 ∈ ghostlspmxf(tid2)
⊦ ∃ tid0. np ∈ ghostlspmxf(tid0)</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid0</RULEARGS><EXTRAS>
Used terms: tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="94"><NUM>105</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ gspmx, gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ np ≠ r × r0 ∧ ((∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx)</SEQ><NEWGOALS><LIST><LE><PAIR><FST>106</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ gspmx, gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="105"><NUM>106</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ gspmx, gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>107</FST><SND><SEQ> ⊦ disjointp(sa1, sa2) ↔ (∀ np. np ∈ sa1 → ¬ np ∈ sa2)</SEQ></SND></PAIR></LE><LE><PAIR><FST>108</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ gspmx, r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ∀ np. np ∈ U(alltids, ghostlspmxf) → ¬ np ∈ gspmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: tidset-npset, name:disjointp-def, 
seq: ⊦ disjointp(sa1, sa2) ↔ (∀ np. np ∈ sa1 → ¬ np ∈ sa2), 
subst:[sa1, sa2] → [U(alltids, ghostlspmxf), gspmx], &lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: U(alltids, ghostlspmxf), gspmx</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="106"><NUM>107</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ disjointp(sa1, sa2) ↔ (∀ np. np ∈ sa1 → ¬ np ∈ sa2)</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="106"><NUM>108</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ gspmx, r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ∀ np. np ∈ U(alltids, ghostlspmxf) → ¬ np ∈ gspmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>109</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ gspmx, gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, ∀ np. (∃ tid0. np ∈ ghostlspmxf(tid0)) → ¬ np ∈ gspmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="108"><NUM>109</NUM><TYPE>step</TYPE><INFO>User applied rule all left</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ gspmx, gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, ∀ np. (∃ tid0. np ∈ ghostlspmxf(tid0)) → ¬ np ∈ gspmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>110</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ gspmx, r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) → ¬ r × r0 ∈ gspmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 8 terms: r × r0 abort: F discard: T computed: T</RULEARGS><EXTRAS>
Used terms: r × r0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="109"><NUM>110</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ gspmx, r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, (∃ tid0. r × r0 ∈ ghostlspmxf(tid0)) → ¬ r × r0 ∈ gspmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>111</FST><SND><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ gspmx, gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ ∃ tid0. r × r0 ∈ ghostlspmxf(tid0)</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="110"><NUM>111</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), r × r0 ∈ gspmx, gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx
⊦ ∃ tid0. r × r0 ∈ ghostlspmxf(tid0)</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid</RULEARGS><EXTRAS>
Used terms: tid</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="92"><NUM>112</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
¬ np ∈ gspmx, (∃ tid0. np ∈ ghostlspmxf(tid0)) ∨ np ∈ gspmx
⊦ ∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ><NEWGOALS><LIST><LE><PAIR><FST>113</FST><SND><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ¬ np ∈ gspmx
⊦ ∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="112"><NUM>113</NUM><TYPE>step</TYPE><INFO>User applied rule exists right</INFO><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), 
U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ¬ np ∈ gspmx
⊦ ∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ><NEWGOALS><LIST><LE><PAIR><FST>114</FST><SND><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), ¬ np ∈ gspmx
⊦ ∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid0 abort: F discard: F computed: F</RULEARGS><EXTRAS>
Used terms: tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="113"><NUM>114</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>np ≠ r × r0, alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid0), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, ¬ np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), ¬ np ∈ gspmx
⊦ ∃ tid0. np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: left 10</RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="13"><NUM>115</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, ¬ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>116</FST><SND><SEQ> ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a])</SEQ></SND></PAIR></LE><LE><PAIR><FST>117</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
∃ np. 
  ¬
  (  np ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
   → np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np])
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: store[sparsearray], name:Subset, 
seq: ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a]), 
subst:[st1, st2] → [U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), spmx], 
&lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), spmx</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="115"><NUM>116</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a])</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="115"><NUM>117</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
∃ np. 
  ¬
  (  np ∈ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
   → np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np])
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>118</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="117"><NUM>118</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx
⊦ np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>119</FST><SND><SEQ> ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a])</SEQ></SND></PAIR></LE><LE><PAIR><FST>120</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, 
∀ np. np ∈ U(alltids, ghostlspmxf) → np ∈ spmx ∧ U(alltids, ghostlspmxf)[np] = spmx[np]
⊦ np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: store[sparsearray], name:Subset, 
seq: ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a]), 
subst:[st1, st2] → [U(alltids, ghostlspmxf), spmx], &lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: U(alltids, ghostlspmxf), spmx</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="118"><NUM>119</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ st1 ⊆ st2 ↔ (∀ a. a ∈ st1 → a ∈ st2 ∧ st1[a] = st2[a])</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="118"><NUM>120</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, 
∀ np. np ∈ U(alltids, ghostlspmxf) → np ∈ spmx ∧ U(alltids, ghostlspmxf)[np] = spmx[np]
⊦ np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>121</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), gspmx ⊆ spmx, 
∀ np0. (∃ tid1. np0 ∈ ghostlspmxf(tid1)) → np0 ∈ spmx ∧ U(alltids, ghostlspmxf)[np0] = spmx[np0]
⊦ np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;
 ⊦ alldisjointp(ts, f) → (np ∈ U(ts, f) ↔ (∃ tid. tid ∈ ts ∧ np ∈ f(tid))); (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="120"><NUM>121</NUM><TYPE>step</TYPE><INFO>User applied rule all left</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), gspmx ⊆ spmx, 
∀ np0. (∃ tid1. np0 ∈ ghostlspmxf(tid1)) → np0 ∈ spmx ∧ U(alltids, ghostlspmxf)[np0] = spmx[np0]
⊦ np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>122</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, 
(∃ tid1. np ∈ ghostlspmxf(tid1)) → np ∈ spmx ∧ U(alltids, ghostlspmxf)[np] = spmx[np]
⊦ np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 9 terms: np abort: F discard: T computed: T</RULEARGS><EXTRAS>
Used terms: np</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="121"><NUM>122</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, 
(∃ tid1. np ∈ ghostlspmxf(tid1)) → np ∈ spmx ∧ U(alltids, ghostlspmxf)[np] = spmx[np]
⊦ np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>123</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1), np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ></SND></PAIR></LE><LE><PAIR><FST>127</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, U(alltids, ghostlspmxf)[np] = spmx[np], 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), np ∈ spmx, 
gspmx ⊆ spmx
⊦ np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 9</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="122"><NUM>123</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1), np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>124</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid = tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0) -- (r × r0), gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1), np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ></SND></PAIR></LE><LE><PAIR><FST>126</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1), np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 7</RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="123"><NUM>124</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid = tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0) -- (r × r0), gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1), np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>125</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, np ≠ r × r0, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1), np ∈ spmx ∧ U(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0)))[np] = spmx[np]</SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="124"><NUM>125</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, np ≠ r × r0, 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid0), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1), np ∈ spmx ∧ U(alltids, ghostlspmxf(tid0; ghostlspmxf(tid0) -- (r × r0)))[np] = spmx[np]</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid0</RULEARGS><EXTRAS>
Used terms: tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="123"><NUM>126</NUM><TYPE>step</TYPE><INFO>Heuristic quantifier closing applied rule exists right</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid ≠ tid0, 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid0), gspmx ⊆ spmx
⊦ ∃ tid1. np ∈ ghostlspmxf(tid1), np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: right 1 terms: tid0</RULEARGS><EXTRAS>
Used terms: tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="122"><NUM>127</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, U(alltids, ghostlspmxf)[np] = spmx[np], 
alldisjointp(alltids, ghostlspmxf), alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), 
okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), np ∈ spmx, 
gspmx ⊆ spmx
⊦ np ∈ spmx ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] = spmx[np]</SEQ><NEWGOALS><LIST><LE><PAIR><FST>128</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, U(alltids, ghostlspmxf)[np] = spmx[np], 
U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ spmx[np], alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ spmx, 
np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="127"><NUM>128</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, U(alltids, ghostlspmxf)[np] = spmx[np], 
U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))[np] ≠ spmx[np], alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ spmx, 
np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>129</FST><SND><SEQ> ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]</SEQ></SND></PAIR></LE><LE><PAIR><FST>130</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, U(alltids, ghostlspmxf)[np] = spmx[np], 
ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid0)[np] ≠ spmx[np], alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), np ∈ spmx, 
np ∈ ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid0), gspmx ⊆ spmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: tidset-npset, name:bigunion-get, 
seq: ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np], 
subst:[ts, f, np, tid]
      → [alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)), np, tid0], 
&lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)), np, tid0</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="128"><NUM>129</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ> ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="128"><NUM>130</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, U(alltids, ghostlspmxf)[np] = spmx[np], 
ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid0)[np] ≠ spmx[np], alldisjointp(alltids, ghostlspmxf), 
alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), np ∈ spmx, 
np ∈ ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid0), gspmx ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>131</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, U(alltids, ghostlspmxf)[np] = spmx[np], 
(tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))[np] ≠ spmx[np], alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ spmx, r × r0 ∈ ghostlspmxf(tid), 
np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), gspmx ⊆ spmx
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="130"><NUM>131</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, U(alltids, ghostlspmxf)[np] = spmx[np], 
(tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0))[np] ≠ spmx[np], alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ spmx, r × r0 ∈ ghostlspmxf(tid), 
np ∈ (tid = tid0 ⊃ ghostlspmxf(tid0) -- (r × r0);ghostlspmxf(tid0)), gspmx ⊆ spmx
⊦ </SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: left 3</RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ alldisjointp(ts, f) ∧ np ∈ f(tid) → U(ts, f)[np] = f(tid)[np]; (s)
a ≠ b ⊦ (st -- b)[a] = st[a]; (s)
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="11"><NUM>132</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
¬ alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
⊦   alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
  ∧ disjointp(U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))), gspmx)
  ∧     y[r, y[r] + ghostlspmxf(tid)[r × r0] * x[r0]]
      + (U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x
    = spmx.toMatrix(&#35; y, &#35; x) * x
  ∧ U(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))) ⊆ spmx</SEQ><NEWGOALS><LIST><LE><PAIR><FST>133</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
¬ alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="132"><NUM>133</NUM><TYPE>step</TYPE><INFO>User applied rule apply rewrite lemma</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
¬ alldisjointp(alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0)))
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>134</FST><SND><SEQ>⊦   alldisjointp(ts, f)
  → (  alldisjointp(ts, f0)
     ↔ (∀ tid1, tid2, np. 
            (tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1)
          → ¬ np ∈ f0(tid2)))</SEQ></SND></PAIR></LE><LE><PAIR><FST>135</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
∃ tid1, tid2, np. 
  ¬
  (  (tid1 ∈ alltids ∧ tid2 ∈ alltids ∧ tid1 ≠ tid2 ∧ np ∈ ghostlspmxf(tid1) → ¬ np ∈ ghostlspmxf(tid2))
   → tid1 ∈ alltids ∧ tid2 ∈ alltids ∧ tid1 ≠ tid2 ∧ np ∈ ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid1)
   → ¬ np ∈ ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid2))
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>spec: tidset-npset, name:alldisjointp-reduce, 
seq:⊦   alldisjointp(ts, f)
      → (  alldisjointp(ts, f0)
         ↔ (∀ tid1, tid2, np. 
                (tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f(tid1) → ¬ np ∈ f(tid2))
              → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1) → ¬ np ∈ f0(tid2))), 
subst:[f, ts, f0] → [ghostlspmxf, alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))], 
&lt;all paths&gt;</RULEARGS><EXTRAS>
Used terms: ghostlspmxf, alltids, ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="133"><NUM>134</NUM><TYPE>spec-lemma</TYPE><INFO>spec-lemma</INFO><SEQ>⊦   alldisjointp(ts, f)
  → (  alldisjointp(ts, f0)
     ↔ (∀ tid1, tid2, np. 
            (tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f(tid1) → ¬ np ∈ f(tid2)) → tid1 ∈ ts ∧ tid2 ∈ ts ∧ tid1 ≠ tid2 ∧ np ∈ f0(tid1)
          → ¬ np ∈ f0(tid2)))</SEQ></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="133"><NUM>135</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, alldisjointp(alltids, ghostlspmxf), 
disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), U(alltids, ghostlspmxf) ⊆ spmx, gspmx ⊆ spmx, 
∃ tid1, tid2, np. 
  ¬
  (  (tid1 ∈ alltids ∧ tid2 ∈ alltids ∧ tid1 ≠ tid2 ∧ np ∈ ghostlspmxf(tid1) → ¬ np ∈ ghostlspmxf(tid2))
   → tid1 ∈ alltids ∧ tid2 ∈ alltids ∧ tid1 ≠ tid2 ∧ np ∈ ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid1)
   → ¬ np ∈ ghostlspmxf(tid; ghostlspmxf(tid) -- (r × r0))(tid2))
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>136</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid1 ≠ tid2, 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), 
np ∈ (tid = tid2 ⊃ ghostlspmxf(tid2) -- (r × r0);ghostlspmxf(tid2)), np ∈ (tid = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1)), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, np ∈ ghostlspmxf(tid1) → ¬ np ∈ ghostlspmxf(tid2)
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS>Used simplifier rules:
alltids-all:  ⊦ tid ∈ alltids;</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="135"><NUM>136</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid1 ≠ tid2, 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), r × r0 ∈ ghostlspmxf(tid), 
np ∈ (tid = tid2 ⊃ ghostlspmxf(tid2) -- (r × r0);ghostlspmxf(tid2)), np ∈ (tid = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1)), gspmx ⊆ spmx, 
U(alltids, ghostlspmxf) ⊆ spmx, np ∈ ghostlspmxf(tid1) → ¬ np ∈ ghostlspmxf(tid2)
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>137</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid ≠ tid2, tid1 ≠ tid2, 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
np ∈ (tid = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1)), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid2), U(alltids, ghostlspmxf) ⊆ spmx, 
gspmx ⊆ spmx, np ∈ ghostlspmxf(tid1) → ¬ np ∈ ghostlspmxf(tid2)
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS>pos: left 7</RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="136"><NUM>137</NUM><TYPE>step</TYPE><INFO>Heuristic simplifier applied rule simplifier</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid ≠ tid2, tid1 ≠ tid2, 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), 
np ∈ (tid = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1)), r × r0 ∈ ghostlspmxf(tid), np ∈ ghostlspmxf(tid2), U(alltids, ghostlspmxf) ⊆ spmx, 
gspmx ⊆ spmx, np ∈ ghostlspmxf(tid1) → ¬ np ∈ ghostlspmxf(tid2)
⊦ </SEQ><NEWGOALS><LIST><LE><PAIR><FST>138</FST><SND><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid ≠ tid2, tid1 ≠ tid2, 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid2), 
r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1)), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
¬ np ∈ ghostlspmxf(tid1)
⊦ </SEQ></SND></PAIR></LE></LIST></NEWGOALS><RULEARGS></RULEARGS><EXTRAS></EXTRAS></PROOFNODE><PROOFNODE proofname="step-L6-L7" previous="137"><NUM>138</NUM><TYPE>step</TYPE><INFO>User applied rule case distinction</INFO><SEQ>y + (U(alltids, ghostlspmxf) ∪ gspmx).toMatrix(&#35; y, &#35; x) * x = spmx.toMatrix(&#35; y, &#35; x) * x, tid ≠ tid2, tid1 ≠ tid2, 
alldisjointp(alltids, ghostlspmxf), disjointp(U(alltids, ghostlspmxf), gspmx), okspmx(spmx, &#35; y, &#35; x), np ∈ ghostlspmxf(tid2), 
r × r0 ∈ ghostlspmxf(tid), np ∈ (tid = tid1 ⊃ ghostlspmxf(tid1) -- (r × r0);ghostlspmxf(tid1)), gspmx ⊆ spmx, U(alltids, ghostlspmxf) ⊆ spmx, 
¬ np ∈ ghostlspmxf(tid1)
⊦ </SEQ><NEWGOALS><LIST></LIST></NEWGOALS><RULEARGS>pos: left 9</RULEARGS><EXTRAS>Used simplifier rules:
 ⊦ a ∈ st -- b ↔ a ≠ b ∧ a ∈ st; (s)</EXTRAS></PROOFNODE></LIST></PROOF></COORDINATES>