<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE proofs SYSTEM "proof3.dtd">

<?xml-stylesheet type="text/xsl" href="proof3.xsl"?>

<proofs number_of_proofs="1">

<source>dist-short-long.out</source>

<heading><![CDATA[
Prover9 (32) version 22-May-2007, May 2007.
Process 28424 was started by mccune on cleo,
Tue May 22 15:17:06 2007
The command was "/home/mccune/bin/prover9 -f dist-short-long.in".
]]></heading>

<proof number="1" length="39" max_count="30">

<comments><![CDATA[
% Proof 1 at 1.33 (+ 0.00) seconds: dist_long.
% Length of proof is 39.
% Level of proof is 10.
% Maximum clause weight is 30.
% Given clauses 57.
]]></comments>

  <clause id="1" type="goal">
    <literal><![CDATA[
      f(f(x,y,z),u,v) = f(f(x,u,v),f(y,u,v),f(z,u,v))
    ]]></literal>
    <attribute><![CDATA[
      answer(dist_long)
    ]]></attribute>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <attribute><![CDATA[
      label(goal)
    ]]></attribute>
    <justification jstring="[goal].">
      <j1 rule="goal"/>
    </justification>
  </clause>

  <clause id="2" type="assumption">
    <literal><![CDATA[
      f(x,x,y) = x
    ]]></literal>
    <attribute><![CDATA[
      label(majority)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="3" type="assumption">
    <literal><![CDATA[
      f(x,y,z) = f(z,x,y)
    ]]></literal>
    <attribute><![CDATA[
      label(2a)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="4" type="assumption">
    <literal><![CDATA[
      f(x,y,z) = f(x,z,y)
    ]]></literal>
    <attribute><![CDATA[
      label(2b)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="5" type="assumption">
    <literal><![CDATA[
      f(f(x,y,z),y,u) = f(x,y,f(z,y,u))
    ]]></literal>
    <attribute><![CDATA[
      label(associativity)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="6">
    <literal><![CDATA[
      f(x,y,f(x,z,u)) = f(x,z,f(x,y,u))
    ]]></literal>
    <justification jstring="[copy(5),rewrite([3(2),3(2),3(3,R),4(3)]),rewrite([3(1,R),4(1),4(3),3(4,R),4(4)])].">
      <j1 rule="copy" parents="5"/>
      <j2 rule="rewrite" parents="3 3 3 4"/>
      <j2 rule="rewrite" parents="3 4 4 3 4"/>
    </justification>
  </clause>

  <clause id="7" type="assumption">
    <literal><![CDATA[
      f(f(x,y,z),u,v) = f(x,f(y,u,v),f(z,u,v))
    ]]></literal>
    <attribute><![CDATA[
      label(dist_short)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="8">
    <literal><![CDATA[
      f(x,f(y,z,u),f(z,u,v)) = f(z,u,f(x,y,v))
    ]]></literal>
    <justification jstring="[copy(7),rewrite([3(2),3(2)]),flip(a),rewrite([3(2),3(2)])].">
      <j1 rule="copy" parents="7"/>
      <j2 rule="rewrite" parents="3 3"/>
      <j2 rule="flip"/>
      <j2 rule="rewrite" parents="3 3"/>
    </justification>
  </clause>

  <clause id="9" type="deny">
    <literal><![CDATA[
      f(f(c1,c4,c5),f(c2,c4,c5),f(c3,c4,c5)) != f(f(c1,c2,c3),c4,c5)
    ]]></literal>
    <attribute><![CDATA[
      answer(dist_long)
    ]]></attribute>
    <justification jstring="[deny(1)].">
      <j1 rule="deny" parents="1"/>
    </justification>
  </clause>

  <clause id="10">
    <literal><![CDATA[
      f(f(c1,c4,c5),f(c2,c4,c5),f(c3,c4,c5)) != f(c4,c5,f(c1,c2,c3))
    ]]></literal>
    <attribute><![CDATA[
      answer(dist_long)
    ]]></attribute>
    <justification jstring="[copy(9),rewrite([3(20),3(20)])].">
      <j1 rule="copy" parents="9"/>
      <j2 rule="rewrite" parents="3 3"/>
    </justification>
  </clause>

  <clause id="11">
    <literal><![CDATA[
      f(x,y,y) = y
    ]]></literal>
    <justification jstring="[para(3(a,1),2(a,1))].">
      <j1 rule="para" parents="3 2"/>
    </justification>
  </clause>

  <clause id="12">
    <literal><![CDATA[
      f(x,y,f(z,x,u)) = f(z,x,f(x,y,u))
    ]]></literal>
    <justification jstring="[para(6(a,1),3(a,2)),rewrite([4(2),3(3,R),4(3)]),flip(a)].">
      <j1 rule="para" parents="6 3"/>
      <j2 rule="rewrite" parents="4 3 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="13">
    <literal><![CDATA[
      f(x,y,f(x,z,u)) = f(x,u,f(x,y,z))
    ]]></literal>
    <justification jstring="[para(3(a,1),6(a,1,3)),rewrite([3(1,R),4(1)])].">
      <j1 rule="para" parents="3 6"/>
      <j2 rule="rewrite" parents="3 4"/>
    </justification>
  </clause>

  <clause id="16">
    <literal><![CDATA[
      f(x,f(y,z,u),f(y,z,v)) = f(y,z,f(x,u,v))
    ]]></literal>
    <justification jstring="[para(8(a,1),3(a,1)),rewrite([3(4),3(4),3(5,R)]),flip(a)].">
      <j1 rule="para" parents="8 3"/>
      <j2 rule="rewrite" parents="3 3 3"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="17">
    <literal><![CDATA[
      f(x,f(y,z,u),f(y,u,v)) = f(y,u,f(x,z,v))
    ]]></literal>
    <justification jstring="[para(3(a,1),8(a,1,2)),rewrite([3(2,R),4(2),3(5,R),4(5)])].">
      <j1 rule="para" parents="3 8"/>
      <j2 rule="rewrite" parents="3 4 3 4"/>
    </justification>
  </clause>

  <clause id="25">
    <literal><![CDATA[
      f(x,f(y,z,f(u,v,w)),f(v,w,f(z,u,v6))) = f(z,f(u,v,w),f(x,y,f(v,w,v6)))
    ]]></literal>
    <justification jstring="[para(8(a,1),8(a,1,3))].">
      <j1 rule="para" parents="8 8"/>
    </justification>
  </clause>

  <clause id="27">
    <literal><![CDATA[
      f(x,y,f(x,z,y)) = f(x,z,y)
    ]]></literal>
    <justification jstring="[para(11(a,1),6(a,1,3)),flip(a)].">
      <j1 rule="para" parents="11 6"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="29">
    <literal><![CDATA[
      f(x,y,f(z,u,y)) = f(u,y,f(x,z,y))
    ]]></literal>
    <justification jstring="[para(11(a,1),8(a,1,3)),rewrite([4(2)])].">
      <j1 rule="para" parents="11 8"/>
      <j2 rule="rewrite" parents="4"/>
    </justification>
  </clause>

  <clause id="32">
    <literal><![CDATA[
      f(x,y,f(z,u,f(x,y,v))) = f(x,y,f(z,u,v))
    ]]></literal>
    <justification jstring="[para(27(a,1),8(a,1,3)),rewrite([4(2),8(3),4(3)]),flip(a)].">
      <j1 rule="para" parents="27 8"/>
      <j2 rule="rewrite" parents="4 8 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="34">
    <literal><![CDATA[
      f(x,y,f(z,y,u)) = f(z,y,f(x,y,u))
    ]]></literal>
    <justification jstring="[para(12(a,1),3(a,2)),rewrite([4(2),3(3,R),4(3)])].">
      <j1 rule="para" parents="12 3"/>
      <j2 rule="rewrite" parents="4 3 4"/>
    </justification>
  </clause>

  <clause id="37">
    <literal><![CDATA[
      f(x,f(y,z,f(y,u,v)),f(y,w,f(y,z,v))) = f(y,f(y,z,v),f(x,u,w))
    ]]></literal>
    <justification jstring="[para(12(a,2),8(a,1,2)),rewrite([3(1,R),4(1),4(4)])].">
      <j1 rule="para" parents="12 8"/>
      <j2 rule="rewrite" parents="3 4 4"/>
    </justification>
  </clause>

  <clause id="43">
    <literal><![CDATA[
      f(x,y,f(x,z,u)) = f(x,u,f(x,z,y))
    ]]></literal>
    <justification jstring="[para(13(a,1),4(a,2)),rewrite([4(2),4(3)])].">
      <j1 rule="para" parents="13 4"/>
      <j2 rule="rewrite" parents="4 4"/>
    </justification>
  </clause>

  <clause id="84">
    <literal><![CDATA[
      f(x,y,f(z,x,y)) = f(z,x,y)
    ]]></literal>
    <justification jstring="[para(2(a,1),29(a,1,3)),rewrite([4(2),3(3,R),4(3)]),flip(a)].">
      <j1 rule="para" parents="2 29"/>
      <j2 rule="rewrite" parents="4 3 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="122">
    <literal><![CDATA[
      f(x,f(y,x,z),f(u,v,f(y,x,z))) = f(y,x,f(u,z,f(x,z,v)))
    ]]></literal>
    <justification jstring="[para(34(a,1),29(a,1,3)),rewrite([3(2),3(2),16(4)]),flip(a)].">
      <j1 rule="para" parents="34 29"/>
      <j2 rule="rewrite" parents="3 3 16"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="137">
    <literal><![CDATA[
      f(x,f(y,z,u),f(y,v,f(y,z,w))) = f(y,z,f(x,u,f(y,v,w)))
    ]]></literal>
    <justification jstring="[para(6(a,1),16(a,1,3))].">
      <j1 rule="para" parents="6 16"/>
    </justification>
  </clause>

  <clause id="149">
    <literal><![CDATA[
      f(x,y,f(x,z,f(y,u,z))) = f(x,y,z)
    ]]></literal>
    <justification jstring="[para(16(a,1),29(a,1)),rewrite([32(3),11(1),3(4,R),4(4),122(5),4(2)]),flip(a)].">
      <j1 rule="para" parents="16 29"/>
      <j2 rule="rewrite" parents="32 11 3 4 122 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="150">
    <literal><![CDATA[
      f(x,y,f(z,u,x)) = f(z,x,f(u,x,y))
    ]]></literal>
    <justification jstring="[para(29(a,1),16(a,2)),rewrite([11(2),4(2),3(3,R),4(3),3(4,R),4(4)]),flip(a)].">
      <j1 rule="para" parents="29 16"/>
      <j2 rule="rewrite" parents="11 4 3 4 3 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="151">
    <literal><![CDATA[
      f(x,f(y,z,f(z,u,v)),f(z,v,w)) = f(z,v,f(x,w,f(y,z,u)))
    ]]></literal>
    <justification jstring="[para(29(a,2),16(a,1,2)),rewrite([3(1),3(3,R),4(3),4(5),4(6),3(7,R),4(7)])].">
      <j1 rule="para" parents="29 16"/>
      <j2 rule="rewrite" parents="3 3 4 4 4 3 4"/>
    </justification>
  </clause>

  <clause id="152">
    <literal><![CDATA[
      f(x,y,f(z,u,f(v,x,y))) = f(x,y,f(z,v,u))
    ]]></literal>
    <justification jstring="[para(84(a,1),16(a,1,2)),rewrite([8(3),4(4)]),flip(a)].">
      <j1 rule="para" parents="84 16"/>
      <j2 rule="rewrite" parents="8 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="155">
    <literal><![CDATA[
      f(x,f(x,y,z),f(u,v,w)) = f(x,y,f(x,z,f(u,v,w)))
    ]]></literal>
    <justification jstring="[back_rewrite(37),rewrite([137(5),4(2),17(3)]),flip(a)].">
      <j1 rule="back_rewrite" parents="37"/>
      <j2 rule="rewrite" parents="137 4 17"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="172">
    <literal><![CDATA[
      f(x,y,f(y,z,f(x,z,u))) = f(x,y,z)
    ]]></literal>
    <justification jstring="[para(149(a,1),3(a,2)),rewrite([4(1),4(3),3(4,R),4(4)])].">
      <j1 rule="para" parents="149 3"/>
      <j2 rule="rewrite" parents="4 4 3 4"/>
    </justification>
  </clause>

  <clause id="191">
    <literal><![CDATA[
      f(x,f(y,z,u),f(x,y,u)) = f(x,y,u)
    ]]></literal>
    <justification jstring="[para(149(a,1),43(a,2)),rewrite([4(2)])].">
      <j1 rule="para" parents="149 43"/>
      <j2 rule="rewrite" parents="4"/>
    </justification>
  </clause>

  <clause id="213">
    <literal><![CDATA[
      f(x,f(y,z,u),f(v,f(y,u,w),f(y,z,u))) = f(y,u,f(z,v,f(z,x,w)))
    ]]></literal>
    <justification jstring="[para(17(a,1),12(a,1,3)),rewrite([3(2,R),4(2),3(4,R),4(4),17(4),3(2,R),4(2),3(7,R)]),flip(a)].">
      <j1 rule="para" parents="17 12"/>
      <j2 rule="rewrite" parents="3 4 3 4 17 3 4 3"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="221">
    <literal><![CDATA[
      f(x,y,f(z,y,f(x,z,u))) = f(x,z,y)
    ]]></literal>
    <justification jstring="[para(17(a,1),150(a,1)),rewrite([3(1),2(1),4(2)]),flip(a)].">
      <j1 rule="para" parents="17 150"/>
      <j2 rule="rewrite" parents="3 2 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="338">
    <literal><![CDATA[
      f(x,f(y,z,u),f(y,v,z)) = f(y,z,f(v,x,u))
    ]]></literal>
    <justification jstring="[para(191(a,1),12(a,1,3)),rewrite([3(2),3(2),3(3,R),3(6),3(6),3(7,R),213(8),11(4)])].">
      <j1 rule="para" parents="191 12"/>
      <j2 rule="rewrite" parents="3 3 3 3 3 3 213 11"/>
    </justification>
  </clause>

  <clause id="367">
    <literal><![CDATA[
      f(x,y,f(z,x,f(z,y,u))) = f(z,x,y)
    ]]></literal>
    <justification jstring="[para(172(a,1),221(a,2)),rewrite([155(6),16(7),221(5)])].">
      <j1 rule="para" parents="172 221"/>
      <j2 rule="rewrite" parents="155 16 221"/>
    </justification>
  </clause>

  <clause id="1384">
    <literal><![CDATA[
      f(x,f(y,z,u),f(v,z,f(z,u,w))) = f(z,u,f(y,x,f(v,z,w)))
    ]]></literal>
    <justification jstring="[para(12(a,1),25(a,1,2)),rewrite([3(3,R),4(3),151(5),338(3),3(1,R),4(1)]),flip(a)].">
      <j1 rule="para" parents="12 25"/>
      <j2 rule="rewrite" parents="3 4 151 338 3 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1464">
    <literal><![CDATA[
      f(x,f(y,z,u),f(v,z,u)) = f(z,u,f(v,x,y))
    ]]></literal>
    <justification jstring="[para(25(a,1),367(a,1,3)),rewrite([3(5,R),4(5),1384(6),3(4,R),4(4),3(6,R),4(6),25(6),3(4,R),4(4),221(4),4(6),152(6),4(4)])].">
      <j1 rule="para" parents="25 367"/>
      <j2 rule="rewrite" parents="3 4 1384 3 4 3 4 25 3 4 221 4 152 4"/>
    </justification>
  </clause>

  <clause id="1549">
    <literal><![CDATA[
      $F
    ]]></literal>
    <attribute><![CDATA[
      answer(dist_long)
    ]]></attribute>
    <justification jstring="[back_rewrite(10),rewrite([1464(13),3(9),152(10),3(6,R),4(6)]),xx(a)].">
      <j1 rule="back_rewrite" parents="10"/>
      <j2 rule="rewrite" parents="1464 3 152 3 4"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

</proof>

</proofs>
