<?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>wang1-eq.out</source>

<heading><![CDATA[
Prover9 (32) version April-2007, April 2007.
Process 27094 was started by mccune on cleo,
Fri Apr 13 09:20:31 2007
The command was "/home/mccune/bin/prover9 -f wang-eq.in wang1-eq.in".
]]></heading>

<proof number="1" length="50" max_count="18">

<comments><![CDATA[
% Proof 1 at 0.03 (+ 0.00) seconds.
% Length of proof is 50.
% Level of proof is 15.
% Maximum clause weight is 18.
% Given clauses 85.
]]></comments>

  <clause id="1" type="assumption">
    <literal><![CDATA[
      x = m
    ]]></literal>
    <literal><![CDATA[
      p(x,m)
    ]]></literal>
    <literal><![CDATA[
      y = m
    ]]></literal>
    <literal><![CDATA[
      y = x
    ]]></literal>
    <literal><![CDATA[
      -p(x,y)
    ]]></literal>
    <literal><![CDATA[
      -p(y,x)
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="2">
    <literal><![CDATA[
      m = x
    ]]></literal>
    <literal><![CDATA[
      p(x,m)
    ]]></literal>
    <literal><![CDATA[
      m = y
    ]]></literal>
    <literal><![CDATA[
      y = x
    ]]></literal>
    <literal><![CDATA[
      -p(x,y)
    ]]></literal>
    <literal><![CDATA[
      -p(y,x)
    ]]></literal>
    <justification jstring="[copy(1),flip(a),flip(c)].">
      <j1 rule="copy" parents="1"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="3" type="assumption">
    <literal><![CDATA[
      x = b
    ]]></literal>
    <literal><![CDATA[
      -p(x,b)
    ]]></literal>
    <literal><![CDATA[
      y = b
    ]]></literal>
    <literal><![CDATA[
      y = x
    ]]></literal>
    <literal><![CDATA[
      -p(x,y)
    ]]></literal>
    <literal><![CDATA[
      -p(y,x)
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="4">
    <literal><![CDATA[
      b = x
    ]]></literal>
    <literal><![CDATA[
      -p(x,b)
    ]]></literal>
    <literal><![CDATA[
      b = y
    ]]></literal>
    <literal><![CDATA[
      y = x
    ]]></literal>
    <literal><![CDATA[
      -p(x,y)
    ]]></literal>
    <literal><![CDATA[
      -p(y,x)
    ]]></literal>
    <justification jstring="[copy(3),flip(a),flip(c)].">
      <j1 rule="copy" parents="3"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="5" type="assumption">
    <literal><![CDATA[
      x = k
    ]]></literal>
    <literal><![CDATA[
      x = m
    ]]></literal>
    <literal><![CDATA[
      x = b
    ]]></literal>
    <literal><![CDATA[
      -p(x,k)
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="6">
    <literal><![CDATA[
      k = x
    ]]></literal>
    <literal><![CDATA[
      m = x
    ]]></literal>
    <literal><![CDATA[
      b = x
    ]]></literal>
    <literal><![CDATA[
      -p(x,k)
    ]]></literal>
    <justification jstring="[copy(5),flip(a),flip(b),flip(c)].">
      <j1 rule="copy" parents="5"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="7" type="assumption">
    <literal><![CDATA[
      x = m
    ]]></literal>
    <literal><![CDATA[
      -p(x,m)
    ]]></literal>
    <literal><![CDATA[
      f(x) != m
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="8">
    <literal><![CDATA[
      m = x
    ]]></literal>
    <literal><![CDATA[
      -p(x,m)
    ]]></literal>
    <literal><![CDATA[
      f(x) != m
    ]]></literal>
    <justification jstring="[copy(7),flip(a)].">
      <j1 rule="copy" parents="7"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="9" type="assumption">
    <literal><![CDATA[
      x = m
    ]]></literal>
    <literal><![CDATA[
      -p(x,m)
    ]]></literal>
    <literal><![CDATA[
      f(x) != x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="10">
    <literal><![CDATA[
      m = x
    ]]></literal>
    <literal><![CDATA[
      -p(x,m)
    ]]></literal>
    <literal><![CDATA[
      f(x) != x
    ]]></literal>
    <justification jstring="[copy(9),flip(a)].">
      <j1 rule="copy" parents="9"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="11" type="assumption">
    <literal><![CDATA[
      x = m
    ]]></literal>
    <literal><![CDATA[
      -p(x,m)
    ]]></literal>
    <literal><![CDATA[
      p(x,f(x))
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="12">
    <literal><![CDATA[
      m = x
    ]]></literal>
    <literal><![CDATA[
      -p(x,m)
    ]]></literal>
    <literal><![CDATA[
      p(x,f(x))
    ]]></literal>
    <justification jstring="[copy(11),flip(a)].">
      <j1 rule="copy" parents="11"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="13" type="assumption">
    <literal><![CDATA[
      x = m
    ]]></literal>
    <literal><![CDATA[
      -p(x,m)
    ]]></literal>
    <literal><![CDATA[
      p(f(x),x)
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="14">
    <literal><![CDATA[
      m = x
    ]]></literal>
    <literal><![CDATA[
      -p(x,m)
    ]]></literal>
    <literal><![CDATA[
      p(f(x),x)
    ]]></literal>
    <justification jstring="[copy(13),flip(a)].">
      <j1 rule="copy" parents="13"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="15" type="assumption">
    <literal><![CDATA[
      x = b
    ]]></literal>
    <literal><![CDATA[
      p(x,b)
    ]]></literal>
    <literal><![CDATA[
      g(x) != b
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="16">
    <literal><![CDATA[
      b = x
    ]]></literal>
    <literal><![CDATA[
      p(x,b)
    ]]></literal>
    <literal><![CDATA[
      g(x) != b
    ]]></literal>
    <justification jstring="[copy(15),flip(a)].">
      <j1 rule="copy" parents="15"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="17" type="assumption">
    <literal><![CDATA[
      x = b
    ]]></literal>
    <literal><![CDATA[
      p(x,b)
    ]]></literal>
    <literal><![CDATA[
      g(x) != x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="18">
    <literal><![CDATA[
      b = x
    ]]></literal>
    <literal><![CDATA[
      p(x,b)
    ]]></literal>
    <literal><![CDATA[
      g(x) != x
    ]]></literal>
    <justification jstring="[copy(17),flip(a)].">
      <j1 rule="copy" parents="17"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="19" type="assumption">
    <literal><![CDATA[
      x = b
    ]]></literal>
    <literal><![CDATA[
      p(x,b)
    ]]></literal>
    <literal><![CDATA[
      p(x,g(x))
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="20">
    <literal><![CDATA[
      b = x
    ]]></literal>
    <literal><![CDATA[
      p(x,b)
    ]]></literal>
    <literal><![CDATA[
      p(x,g(x))
    ]]></literal>
    <justification jstring="[copy(19),flip(a)].">
      <j1 rule="copy" parents="19"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="21" type="assumption">
    <literal><![CDATA[
      x = b
    ]]></literal>
    <literal><![CDATA[
      p(x,b)
    ]]></literal>
    <literal><![CDATA[
      p(g(x),x)
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="22">
    <literal><![CDATA[
      b = x
    ]]></literal>
    <literal><![CDATA[
      p(x,b)
    ]]></literal>
    <literal><![CDATA[
      p(g(x),x)
    ]]></literal>
    <justification jstring="[copy(21),flip(a)].">
      <j1 rule="copy" parents="21"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="23" type="assumption">
    <literal><![CDATA[
      x = k
    ]]></literal>
    <literal><![CDATA[
      x != m
    ]]></literal>
    <literal><![CDATA[
      p(x,k)
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="24">
    <literal><![CDATA[
      k = x
    ]]></literal>
    <literal><![CDATA[
      m != x
    ]]></literal>
    <literal><![CDATA[
      p(x,k)
    ]]></literal>
    <justification jstring="[copy(23),flip(a),flip(b)].">
      <j1 rule="copy" parents="23"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="25" type="assumption">
    <literal><![CDATA[
      x = k
    ]]></literal>
    <literal><![CDATA[
      x != b
    ]]></literal>
    <literal><![CDATA[
      p(x,k)
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="26">
    <literal><![CDATA[
      k = x
    ]]></literal>
    <literal><![CDATA[
      b != x
    ]]></literal>
    <literal><![CDATA[
      p(x,k)
    ]]></literal>
    <justification jstring="[copy(25),flip(a),flip(b)].">
      <j1 rule="copy" parents="25"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="27" type="assumption">
    <literal><![CDATA[
      m != b
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="28" type="assumption">
    <literal><![CDATA[
      b != k
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="29">
    <literal><![CDATA[
      k != b
    ]]></literal>
    <justification jstring="[copy(28),flip(a)].">
      <j1 rule="copy" parents="28"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="30" type="assumption">
    <literal><![CDATA[
      k != m
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="48">
    <literal><![CDATA[
      p(m,k)
    ]]></literal>
    <justification jstring="[xx_res(24,b),unit_del(a,30)].">
      <j1 rule="xx_res" parents="24"/>
      <j2 rule="unit_del" parents="30"/>
    </justification>
  </clause>

  <clause id="53">
    <literal><![CDATA[
      p(b,k)
    ]]></literal>
    <justification jstring="[xx_res(26,b),unit_del(a,29)].">
      <j1 rule="xx_res" parents="26"/>
      <j2 rule="unit_del" parents="29"/>
    </justification>
  </clause>

  <clause id="60">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      p(g(k),k)
    ]]></literal>
    <justification jstring="[resolve(29,a,22,a(flip))].">
      <j1 rule="resolve" parents="29 22"/>
    </justification>
  </clause>

  <clause id="61">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      p(k,g(k))
    ]]></literal>
    <justification jstring="[resolve(29,a,20,a(flip))].">
      <j1 rule="resolve" parents="29 20"/>
    </justification>
  </clause>

  <clause id="82">
    <literal><![CDATA[
      -p(k,b)
    ]]></literal>
    <literal><![CDATA[
      -p(k,m)
    ]]></literal>
    <justification jstring="[resolve(48,a,4,f),flip(a),flip(c),flip(d),unit_del(a,29),unit_del(c,27),unit_del(d,30)].">
      <j1 rule="resolve" parents="48 4"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
      <j2 rule="unit_del" parents="29"/>
      <j2 rule="unit_del" parents="27"/>
      <j2 rule="unit_del" parents="30"/>
    </justification>
  </clause>

  <clause id="84">
    <literal><![CDATA[
      p(k,m)
    ]]></literal>
    <literal><![CDATA[
      -p(k,b)
    ]]></literal>
    <justification jstring="[resolve(53,a,2,f),flip(a),flip(d),unit_del(a,30),unit_del(c,27),unit_del(d,29)].">
      <j1 rule="resolve" parents="53 2"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
      <j2 rule="unit_del" parents="30"/>
      <j2 rule="unit_del" parents="27"/>
      <j2 rule="unit_del" parents="29"/>
    </justification>
  </clause>

  <clause id="109">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      g(k) = k
    ]]></literal>
    <literal><![CDATA[
      g(k) = m
    ]]></literal>
    <literal><![CDATA[
      g(k) = b
    ]]></literal>
    <justification jstring="[resolve(60,b,6,d),flip(b),flip(c),flip(d)].">
      <j1 rule="resolve" parents="60 6"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="249">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      g(k) = m
    ]]></literal>
    <literal><![CDATA[
      g(k) = b
    ]]></literal>
    <justification jstring="[resolve(109,b,18,c),flip(d),merge(e),unit_del(d,29)].">
      <j1 rule="resolve" parents="109 18"/>
      <j2 rule="flip"/>
      <j2 rule="merge"/>
      <j2 rule="unit_del" parents="29"/>
    </justification>
  </clause>

  <clause id="250">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      g(k) = b
    ]]></literal>
    <literal><![CDATA[
      p(k,m)
    ]]></literal>
    <justification jstring="[para(249(b,1),61(b,2)),merge(c)].">
      <j1 rule="para" parents="249 61"/>
      <j2 rule="merge"/>
    </justification>
  </clause>

  <clause id="257">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      p(k,m)
    ]]></literal>
    <justification jstring="[resolve(250,b,16,c),flip(c),merge(d),unit_del(c,29)].">
      <j1 rule="resolve" parents="250 16"/>
      <j2 rule="flip"/>
      <j2 rule="merge"/>
      <j2 rule="unit_del" parents="29"/>
    </justification>
  </clause>

  <clause id="263">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      p(f(k),k)
    ]]></literal>
    <justification jstring="[resolve(257,b,14,b),flip(b),unit_del(b,30)].">
      <j1 rule="resolve" parents="257 14"/>
      <j2 rule="flip"/>
      <j2 rule="unit_del" parents="30"/>
    </justification>
  </clause>

  <clause id="264">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      p(k,f(k))
    ]]></literal>
    <justification jstring="[resolve(257,b,12,b),flip(b),unit_del(b,30)].">
      <j1 rule="resolve" parents="257 12"/>
      <j2 rule="flip"/>
      <j2 rule="unit_del" parents="30"/>
    </justification>
  </clause>

  <clause id="269">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      f(k) = k
    ]]></literal>
    <literal><![CDATA[
      f(k) = m
    ]]></literal>
    <literal><![CDATA[
      f(k) = b
    ]]></literal>
    <justification jstring="[resolve(263,b,6,d),flip(b),flip(c),flip(d)].">
      <j1 rule="resolve" parents="263 6"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="321">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      f(k) = m
    ]]></literal>
    <literal><![CDATA[
      f(k) = b
    ]]></literal>
    <literal><![CDATA[
      -p(k,m)
    ]]></literal>
    <justification jstring="[resolve(269,b,10,c),flip(d),unit_del(d,30)].">
      <j1 rule="resolve" parents="269 10"/>
      <j2 rule="flip"/>
      <j2 rule="unit_del" parents="30"/>
    </justification>
  </clause>

  <clause id="327">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      f(k) = m
    ]]></literal>
    <literal><![CDATA[
      f(k) = b
    ]]></literal>
    <justification jstring="[resolve(321,d,257,b),merge(d)].">
      <j1 rule="resolve" parents="321 257"/>
      <j2 rule="merge"/>
    </justification>
  </clause>

  <clause id="328">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      f(k) = b
    ]]></literal>
    <literal><![CDATA[
      -p(k,m)
    ]]></literal>
    <justification jstring="[resolve(327,b,8,c),flip(c),unit_del(c,30)].">
      <j1 rule="resolve" parents="327 8"/>
      <j2 rule="flip"/>
      <j2 rule="unit_del" parents="30"/>
    </justification>
  </clause>

  <clause id="333">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      f(k) = b
    ]]></literal>
    <justification jstring="[resolve(328,c,257,b),merge(c)].">
      <j1 rule="resolve" parents="328 257"/>
      <j2 rule="merge"/>
    </justification>
  </clause>

  <clause id="338">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <justification jstring="[para(333(b,1),264(b,2)),merge(b),merge(c)].">
      <j1 rule="para" parents="333 264"/>
      <j2 rule="merge"/>
      <j2 rule="merge"/>
    </justification>
  </clause>

  <clause id="340">
    <literal><![CDATA[
      p(k,m)
    ]]></literal>
    <justification jstring="[back_unit_del(84),unit_del(b,338)].">
      <j1 rule="back_unit_del" parents="84"/>
      <j2 rule="unit_del" parents="338"/>
    </justification>
  </clause>

  <clause id="341">
    <literal><![CDATA[
      $F
    ]]></literal>
    <justification jstring="[back_unit_del(82),unit_del(a,338),unit_del(b,340)].">
      <j1 rule="back_unit_del" parents="82"/>
      <j2 rule="unit_del" parents="338"/>
      <j2 rule="unit_del" parents="340"/>
    </justification>
  </clause>

</proof>

</proofs>
