<?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 September-2006, September 2006.
Process 26825 was started by mccune on cleo.thornwood,
Wed Sep 13 14:37:17 2006
The command was "/home/mccune/LADR/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 84.
]]></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="64">
    <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="68">
    <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="252">
    <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="259">
    <literal><![CDATA[
      p(k,b)
    ]]></literal>
    <literal><![CDATA[
      p(k,m)
    ]]></literal>
    <justification jstring="[resolve(252,b,16,c),flip(c),merge(d),unit_del(c,29)].">
      <j1 rule="resolve" parents="252 16"/>
      <j2 rule="flip"/>
      <j2 rule="merge"/>
      <j2 rule="unit_del" parents="29"/>
    </justification>
  </clause>

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

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

  <clause id="271">
    <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(265,b,6,d),flip(b),flip(c),flip(d)].">
      <j1 rule="resolve" parents="265 6"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="323">
    <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(271,b,10,c),flip(d),unit_del(d,30)].">
      <j1 rule="resolve" parents="271 10"/>
      <j2 rule="flip"/>
      <j2 rule="unit_del" parents="30"/>
    </justification>
  </clause>

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

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

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

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

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

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

</proof>

</proofs>
