<?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>dep-2b.out</source>

<heading><![CDATA[
Prover9 (32) version April-2007, April 2007.
Process 27708 was started by mccune on cleo,
Fri Apr 13 09:43:03 2007
The command was "/home/mccune/bin/prover9 -f dep-2b.in".
]]></heading>

<proof number="1" length="26" max_count="21">

<comments><![CDATA[
% Proof 1 at 0.14 (+ 0.00) seconds: 2b.
% Length of proof is 26.
% Level of proof is 10.
% Maximum clause weight is 21.
% Given clauses 25.
]]></comments>

  <clause id="1" type="goal">
    <literal><![CDATA[
      f(x,y,z) = f(x,z,y)
    ]]></literal>
    <attribute><![CDATA[
      answer(2b)
    ]]></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(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="5">
    <literal><![CDATA[
      f(x,y,f(z,y,u)) = f(y,u,f(x,y,z))
    ]]></literal>
    <justification jstring="[copy(4),rewrite(3(2,R)),flip(a)].">
      <j1 rule="copy" parents="4"/>
      <j2 rule="rewrite" parents="3"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

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

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

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

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

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

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

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

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

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

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

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

  <clause id="229">
    <literal><![CDATA[
      f(x,y,f(z,y,f(x,z,f(x,y,z)))) = f(x,y,z)
    ]]></literal>
    <justification jstring="[para(18(a,1),21(a,2)),rewrite(3(5),9(5),7(5),3(4),3(4),40(4),3(3),40(3))].">
      <j1 rule="para" parents="18 21"/>
      <j2 rule="rewrite" parents="3 9 7 3 3 40 3 40"/>
    </justification>
  </clause>

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

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

  <clause id="503">
    <literal><![CDATA[
      f(x,y,f(x,z,y)) = f(x,y,z)
    ]]></literal>
    <justification jstring="[back_rewrite(229),rewrite(462(3))].">
      <j1 rule="back_rewrite" parents="229"/>
      <j2 rule="rewrite" parents="462"/>
    </justification>
  </clause>

  <clause id="505">
    <literal><![CDATA[
      f(x,y,f(z,y,x)) = f(z,x,y)
    ]]></literal>
    <justification jstring="[back_rewrite(144),rewrite(503(2))].">
      <j1 rule="back_rewrite" parents="144"/>
      <j2 rule="rewrite" parents="503"/>
    </justification>
  </clause>

  <clause id="506">
    <literal><![CDATA[
      f(x,y,f(y,x,z)) = f(z,x,y)
    ]]></literal>
    <justification jstring="[back_rewrite(467),rewrite(505(2))].">
      <j1 rule="back_rewrite" parents="467"/>
      <j2 rule="rewrite" parents="505"/>
    </justification>
  </clause>

  <clause id="592">
    <literal><![CDATA[
      f(x,y,z) = f(x,z,y)
    ]]></literal>
    <justification jstring="[para(16(a,2),23(a,1)),rewrite(3(3),9(3),506(3),40(3),3(2),40(2),8(1),505(2),9(3),506(3))].">
      <j1 rule="para" parents="16 23"/>
      <j2 rule="rewrite" parents="3 9 506 40 3 40 8 505 9 506"/>
    </justification>
  </clause>

  <clause id="593">
    <literal><![CDATA[
      $F
    ]]></literal>
    <attribute><![CDATA[
      answer(2b)
    ]]></attribute>
    <justification jstring="[resolve(592,a,6,a)].">
      <j1 rule="resolve" parents="592 6"/>
    </justification>
  </clause>

</proof>

</proofs>
