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

<heading><![CDATA[
Prover9 (32) version April-2007, April 2007.
Process 27250 was started by mccune on cleo,
Fri Apr 13 09:26:00 2007
The command was "/home/mccune/bin/prover9 -f lt.in uc.in H49.in".
]]></heading>

<proof number="1" length="47" max_count="23">

<comments><![CDATA[
% Proof 1 at 5.56 (+ 0.06) seconds.
% Length of proof is 47.
% Level of proof is 10.
% Maximum clause weight is 23.
% Given clauses 455.
]]></comments>

  <clause id="1" type="goal">
    <literal><![CDATA[
      (all x all y (x ^ y = x -> x' v y' = x'))
    ]]></literal>
    <attribute><![CDATA[
      label(goal)
    ]]></attribute>
    <justification jstring="[goal].">
      <j1 rule="goal"/>
    </justification>
  </clause>

  <clause id="2" type="assumption">
    <literal><![CDATA[
      x v y = y v x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

  <clause id="4" type="assumption">
    <literal><![CDATA[
      x ^ y = y ^ x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="5" type="assumption">
    <literal><![CDATA[
      (x ^ y) ^ z = x ^ (y ^ z)
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="6" type="assumption">
    <literal><![CDATA[
      x ^ (x v y) = x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="7" type="assumption">
    <literal><![CDATA[
      x v (x ^ y) = x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="8" type="assumption">
    <literal><![CDATA[
      x v x' = 1
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="9" type="assumption">
    <literal><![CDATA[
      x ^ x' = 0
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="10" type="assumption">
    <literal><![CDATA[
      x v y != 1
    ]]></literal>
    <literal><![CDATA[
      x ^ y != 0
    ]]></literal>
    <literal><![CDATA[
      x' = y
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

  <clause id="12">
    <literal><![CDATA[
      x ^ (y v ((x ^ z) v (z ^ (y v u)))) = x ^ (y v (z ^ (x v u)))
    ]]></literal>
    <justification jstring="[copy(11),flip(a)].">
      <j1 rule="copy" parents="11"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="13" type="deny">
    <literal><![CDATA[
      c1 ^ c2 = c1
    ]]></literal>
    <justification jstring="[deny(1)].">
      <j1 rule="deny" parents="1"/>
    </justification>
  </clause>

  <clause id="14" type="deny">
    <literal><![CDATA[
      c1' != c1' v c2'
    ]]></literal>
    <justification jstring="[deny(1)].">
      <j1 rule="deny" parents="1"/>
    </justification>
  </clause>

  <clause id="15">
    <literal><![CDATA[
      c1' v c2' != c1'
    ]]></literal>
    <justification jstring="[copy(14),flip(a)].">
      <j1 rule="copy" parents="14"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="19">
    <literal><![CDATA[
      x ^ (y ^ z) = y ^ (x ^ z)
    ]]></literal>
    <justification jstring="[para(4(a,1),5(a,1,1)),rewrite(5(2))].">
      <j1 rule="para" parents="4 5"/>
      <j2 rule="rewrite" parents="5"/>
    </justification>
  </clause>

  <clause id="20">
    <literal><![CDATA[
      x ^ (y v x) = x
    ]]></literal>
    <justification jstring="[para(2(a,1),6(a,1,2))].">
      <j1 rule="para" parents="2 6"/>
    </justification>
  </clause>

  <clause id="22">
    <literal><![CDATA[
      x ^ ((x v y) ^ z) = x ^ z
    ]]></literal>
    <justification jstring="[para(6(a,1),5(a,1,1)),flip(a)].">
      <j1 rule="para" parents="6 5"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="24">
    <literal><![CDATA[
      x v ((x ^ y) v z) = x v z
    ]]></literal>
    <justification jstring="[para(7(a,1),3(a,1,1)),flip(a)].">
      <j1 rule="para" parents="7 3"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="26">
    <literal><![CDATA[
      x v (y ^ x) = x
    ]]></literal>
    <justification jstring="[para(4(a,1),7(a,1,2))].">
      <j1 rule="para" parents="4 7"/>
    </justification>
  </clause>

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

  <clause id="32">
    <literal><![CDATA[
      x ^ 1 = x
    ]]></literal>
    <justification jstring="[para(8(a,1),6(a,1,2))].">
      <j1 rule="para" parents="8 6"/>
    </justification>
  </clause>

  <clause id="33">
    <literal><![CDATA[
      x ^ (x' ^ y) = 0 ^ y
    ]]></literal>
    <justification jstring="[para(9(a,1),5(a,1,1)),flip(a)].">
      <j1 rule="para" parents="9 5"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="35">
    <literal><![CDATA[
      x v 0 = x
    ]]></literal>
    <justification jstring="[para(9(a,1),7(a,1,2))].">
      <j1 rule="para" parents="9 7"/>
    </justification>
  </clause>

  <clause id="57">
    <literal><![CDATA[
      c1 ^ (c2 ^ x) = c1 ^ x
    ]]></literal>
    <justification jstring="[para(13(a,1),5(a,1,1)),flip(a)].">
      <j1 rule="para" parents="13 5"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="82">
    <literal><![CDATA[
      1 ^ x = x
    ]]></literal>
    <justification jstring="[para(32(a,1),4(a,1)),flip(a)].">
      <j1 rule="para" parents="32 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="84">
    <literal><![CDATA[
      0 v x = x
    ]]></literal>
    <justification jstring="[para(35(a,1),2(a,1)),flip(a)].">
      <j1 rule="para" parents="35 2"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="98">
    <literal><![CDATA[
      1 v x = 1
    ]]></literal>
    <justification jstring="[para(82(a,1),6(a,1))].">
      <j1 rule="para" parents="82 6"/>
    </justification>
  </clause>

  <clause id="99">
    <literal><![CDATA[
      x v (x' v y) = 1
    ]]></literal>
    <justification jstring="[back_rewrite(30),rewrite(98(5))].">
      <j1 rule="back_rewrite" parents="30"/>
      <j2 rule="rewrite" parents="98"/>
    </justification>
  </clause>

  <clause id="101">
    <literal><![CDATA[
      0 ^ x = 0
    ]]></literal>
    <justification jstring="[para(84(a,1),6(a,1,2))].">
      <j1 rule="para" parents="84 6"/>
    </justification>
  </clause>

  <clause id="103">
    <literal><![CDATA[
      x ^ (x' ^ y) = 0
    ]]></literal>
    <justification jstring="[back_rewrite(33),rewrite(101(5))].">
      <j1 rule="back_rewrite" parents="33"/>
      <j2 rule="rewrite" parents="101"/>
    </justification>
  </clause>

  <clause id="111">
    <literal><![CDATA[
      x v 1 = 1
    ]]></literal>
    <justification jstring="[para(20(a,1),82(a,1)),flip(a)].">
      <j1 rule="para" parents="20 82"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="114">
    <literal><![CDATA[
      x ^ 0 = 0
    ]]></literal>
    <justification jstring="[para(101(a,1),4(a,1)),flip(a)].">
      <j1 rule="para" parents="101 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="133">
    <literal><![CDATA[
      c1 v c2 = c2
    ]]></literal>
    <justification jstring="[para(13(a,1),26(a,1,2)),rewrite(2(3))].">
      <j1 rule="para" parents="13 26"/>
      <j2 rule="rewrite" parents="2"/>
    </justification>
  </clause>

  <clause id="145">
    <literal><![CDATA[
      x ^ (x v y)' = 0
    ]]></literal>
    <justification jstring="[para(9(a,1),22(a,1,2)),rewrite(114(2)),flip(a)].">
      <j1 rule="para" parents="9 22"/>
      <j2 rule="rewrite" parents="114"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="152">
    <literal><![CDATA[
      c1 ^ (c1' v c2') != 0
    ]]></literal>
    <justification jstring="[ur(10,a,99,a,c,15,a(flip))].">
      <j1 rule="ur" parents="10 99 15"/>
    </justification>
  </clause>

  <clause id="186">
    <literal><![CDATA[
      c1 ^ c2' = 0
    ]]></literal>
    <justification jstring="[para(133(a,1),145(a,1,2,1))].">
      <j1 rule="para" parents="133 145"/>
    </justification>
  </clause>

  <clause id="189">
    <literal><![CDATA[
      c1 ^ (x v (c2' ^ (c1 v y))) = c1 ^ (x v (c2' ^ (x v y)))
    ]]></literal>
    <justification jstring="[para(186(a,1),12(a,1,2,2,1)),rewrite(84(7)),flip(a)].">
      <j1 rule="para" parents="186 12"/>
      <j2 rule="rewrite" parents="84"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="203">
    <literal><![CDATA[
      x v (x ^ y)' = 1
    ]]></literal>
    <justification jstring="[para(8(a,1),24(a,1,2)),rewrite(111(2)),flip(a)].">
      <j1 rule="para" parents="8 24"/>
      <j2 rule="rewrite" parents="111"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="217">
    <literal><![CDATA[
      x v (y ^ x)' = 1
    ]]></literal>
    <justification jstring="[para(4(a,1),203(a,1,2,1))].">
      <j1 rule="para" parents="4 203"/>
    </justification>
  </clause>

  <clause id="260">
    <literal><![CDATA[
      (c1 ^ x) v (c2 ^ x) = c2 ^ x
    ]]></literal>
    <justification jstring="[para(57(a,1),26(a,1,2)),rewrite(2(5))].">
      <j1 rule="para" parents="57 26"/>
      <j2 rule="rewrite" parents="2"/>
    </justification>
  </clause>

  <clause id="265">
    <literal><![CDATA[
      (c2 ^ x) v (c1 ^ x)' = 1
    ]]></literal>
    <justification jstring="[para(57(a,1),217(a,1,2,1))].">
      <j1 rule="para" parents="57 217"/>
    </justification>
  </clause>

  <clause id="1552">
    <literal><![CDATA[
      (c2 ^ (c1 v x)) v c1' = 1
    ]]></literal>
    <justification jstring="[para(6(a,1),265(a,1,2,1))].">
      <j1 rule="para" parents="6 265"/>
    </justification>
  </clause>

  <clause id="2720">
    <literal><![CDATA[
      c1' v (c2 ^ (c1 v x)) = 1
    ]]></literal>
    <justification jstring="[para(1552(a,1),2(a,1)),flip(a)].">
      <j1 rule="para" parents="1552 2"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="4616">
    <literal><![CDATA[
      c1 v (c2 ^ (c1 v x)) = c2 ^ (c1 v x)
    ]]></literal>
    <justification jstring="[para(6(a,1),260(a,1,1))].">
      <j1 rule="para" parents="6 260"/>
    </justification>
  </clause>

  <clause id="15889">
    <literal><![CDATA[
      c1 ^ (c1' v c2') = 0
    ]]></literal>
    <justification jstring="[para(2720(a,1),189(a,2,2,2,2)),rewrite(4616(11),19(10),103(10),2(5),84(5),9(4),4(8),82(8)),flip(a)].">
      <j1 rule="para" parents="2720 189"/>
      <j2 rule="rewrite" parents="4616 19 103 2 84 9 4 82"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="15890">
    <literal><![CDATA[
      $F
    ]]></literal>
    <justification jstring="[resolve(15889,a,152,a)].">
      <j1 rule="resolve" parents="15889 152"/>
    </justification>
  </clause>

</proof>

</proofs>
