<?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 March-2007, March 2007.
Process 22023 was started by mccune on cleo,
Mon Mar 19 17:40:19 2007
The command was "/home/mccune/bin/prover9 -f dist-short-long.in".
]]></heading>

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

<comments><![CDATA[
% Proof 1 at 1.38 (+ 0.00) seconds: dist_long.
% Length of proof is 36.
% 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(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="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="85">
    <literal><![CDATA[
      f(x,y,f(z,u,x)) = f(u,x,f(z,x,y))
    ]]></literal>
    <justification jstring="[para(3(a,1),29(a,1)),rewrite(3(2),4(2),3(3),3(3))].">
      <j1 rule="para" parents="3 29"/>
      <j2 rule="rewrite" parents="3 4 3 3"/>
    </justification>
  </clause>

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

  <clause id="124">
    <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="151">
    <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),124(5),4(2)),flip(a)].">
      <j1 rule="para" parents="16 29"/>
      <j2 rule="rewrite" parents="32 11 3 4 124 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="152">
    <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="153">
    <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="154">
    <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="180">
    <literal><![CDATA[
      f(x,y,f(z,x,f(z,y,u))) = f(z,x,y)
    ]]></literal>
    <justification jstring="[para(84(a,1),85(a,1,3)),rewrite(3(3,R),11(3),4(4),108(5),3(3,R),4(3)),flip(a)].">
      <j1 rule="para" parents="84 85"/>
      <j2 rule="rewrite" parents="3 11 4 108 3 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="200">
    <literal><![CDATA[
      f(x,f(y,z,u),f(x,y,u)) = f(x,y,u)
    ]]></literal>
    <justification jstring="[para(13(a,1),151(a,1))].">
      <j1 rule="para" parents="13 151"/>
    </justification>
  </clause>

  <clause id="217">
    <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="226">
    <literal><![CDATA[
      f(x,y,f(z,y,f(x,z,u))) = f(x,z,y)
    ]]></literal>
    <justification jstring="[para(8(a,1),153(a,1)),rewrite(3(1),2(1),3(2),3(2)),flip(a)].">
      <j1 rule="para" parents="8 153"/>
      <j2 rule="rewrite" parents="3 2 3 3"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

  <clause id="1418">
    <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),152(5),424(3),3(1,R),4(1)),flip(a)].">
      <j1 rule="para" parents="12 25"/>
      <j2 rule="rewrite" parents="3 4 152 424 3 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1488">
    <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),180(a,1,3)),rewrite(3(5,R),4(5),1418(6),3(4,R),4(4),3(6,R),4(6),25(6),3(4,R),4(4),226(4),4(6),154(6),4(4))].">
      <j1 rule="para" parents="25 180"/>
      <j2 rule="rewrite" parents="3 4 1418 3 4 3 4 25 3 4 226 4 154 4"/>
    </justification>
  </clause>

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

</proof>

</proofs>
