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

<heading><![CDATA[
Prover9 (32) version 2009-02A, February 2009.
Process 11676 was started by mccune on cleo,
Wed Feb 25 09:36:20 2009
The command was "/home/mccune/bin/prover9 -f head.in t2_12.in".
]]></heading>

<proof number="1" length="53" max_count="41">

<comments><![CDATA[
% Proof 1 at 0.09 (+ 0.00) seconds.
% Length of proof is 53.
% Level of proof is 17.
% Maximum clause weight is 12.
% Given clauses 66.

]]></comments>

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

  <clause id="2" type="assumption">
    <literal><![CDATA[
      (all x all y all z (A(x,y,z) <-> x <= y & y <= z | z <= y & y <= x))
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="6" type="assumption">
    <literal><![CDATA[
      (all x all y all z (D(x,y,z) <-> x ^ z <= y & y <= x v z))
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="7" type="expand_def">
    <literal><![CDATA[
      (all x all y all z (A(x,y,z) <-> x ^ y = x & y ^ z = y | z ^ y = z & y ^ x = y))
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[expand_def(2,1)].">
      <j1 rule="expand_def" parents="2 1"/>
    </justification>
  </clause>

  <clause id="8" type="expand_def">
    <literal><![CDATA[
      (all x all y all z (D(x,y,z) <-> (x ^ z) ^ y = x ^ z & y ^ (x v z) = y))
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[expand_def(6,1)].">
      <j1 rule="expand_def" parents="6 1"/>
    </justification>
  </clause>

  <clause id="9" type="assumption">
    <literal><![CDATA[
      x <= y
    ]]></literal>
    <literal><![CDATA[
      y <= x
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="10" type="goal">
    <literal><![CDATA[
      D(x,y,z) -> A(x,y,z)
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[goal].">
      <j1 rule="goal"/>
    </justification>
  </clause>

  <clause id="11" type="expand_def">
    <literal><![CDATA[
      D(x,y,z) -> x ^ y = x & y ^ z = y | z ^ y = z & y ^ x = y
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[expand_def(10,7)].">
      <j1 rule="expand_def" parents="10 7"/>
    </justification>
  </clause>

  <clause id="12" type="expand_def">
    <literal><![CDATA[
      (x ^ y) ^ z = x ^ y & z ^ (x v y) = z -> x ^ z = x & z ^ y = z | y ^ z = y & z ^ x = z
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <attribute><![CDATA[
      label(goal)
    ]]></attribute>
    <justification jstring="[expand_def(11,8)].">
      <j1 rule="expand_def" parents="11 8"/>
    </justification>
  </clause>

  <clause id="13" type="expand_def">
    <literal><![CDATA[
      x ^ y = x
    ]]></literal>
    <literal><![CDATA[
      y ^ x = y
    ]]></literal>
    <justification jstring="[expand_def(9,1)].">
      <j1 rule="expand_def" parents="9 1"/>
    </justification>
  </clause>

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

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

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

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

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

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

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

  <clause id="21">
    <literal><![CDATA[
      c3 ^ (c1 ^ c2) = c1 ^ c2
    ]]></literal>
    <justification jstring="[copy(20),rewrite([19(5)])].">
      <j1 rule="copy" parents="20"/>
      <j2 rule="rewrite" parents="19"/>
    </justification>
  </clause>

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

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

  <clause id="24">
    <literal><![CDATA[
      c1 ^ c3 != c1
    ]]></literal>
    <literal><![CDATA[
      c2 ^ c3 != c3
    ]]></literal>
    <justification jstring="[copy(23),rewrite([19(8)])].">
      <j1 rule="copy" parents="23"/>
      <j2 rule="rewrite" parents="19"/>
    </justification>
  </clause>

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

  <clause id="26">
    <literal><![CDATA[
      c2 ^ c3 != c2
    ]]></literal>
    <literal><![CDATA[
      c1 ^ c3 != c3
    ]]></literal>
    <justification jstring="[copy(25),rewrite([19(8)])].">
      <j1 rule="copy" parents="25"/>
      <j2 rule="rewrite" parents="19"/>
    </justification>
  </clause>

  <clause id="27">
    <literal><![CDATA[
      x ^ x = x
    ]]></literal>
    <justification jstring="[factor(13,a,b)].">
      <j1 rule="factor" parents="13"/>
    </justification>
  </clause>

  <clause id="28">
    <literal><![CDATA[
      x v (x ^ y) = x
    ]]></literal>
    <justification jstring="[back_rewrite(14),rewrite([18(2)])].">
      <j1 rule="back_rewrite" parents="14"/>
      <j2 rule="rewrite" parents="18"/>
    </justification>
  </clause>

  <clause id="29">
    <literal><![CDATA[
      x ^ (x v y) = x
    ]]></literal>
    <justification jstring="[back_rewrite(15),rewrite([19(2)])].">
      <j1 rule="back_rewrite" parents="15"/>
      <j2 rule="rewrite" parents="19"/>
    </justification>
  </clause>

  <clause id="34">
    <literal><![CDATA[
      x ^ y = y
    ]]></literal>
    <literal><![CDATA[
      x ^ y = x
    ]]></literal>
    <justification jstring="[para(19(a,1),13(a,1))].">
      <j1 rule="para" parents="19 13"/>
    </justification>
  </clause>

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

  <clause id="36">
    <literal><![CDATA[
      c1 ^ (c2 ^ c3) = c1 ^ c2
    ]]></literal>
    <justification jstring="[back_rewrite(21),rewrite([35(5),19(4)])].">
      <j1 rule="back_rewrite" parents="21"/>
      <j2 rule="rewrite" parents="35 19"/>
    </justification>
  </clause>

  <clause id="37">
    <literal><![CDATA[
      c3 ^ ((c1 v c2) ^ x) = c3 ^ x
    ]]></literal>
    <justification jstring="[para(22(a,1),17(a,1,1)),flip(a)].">
      <j1 rule="para" parents="22 17"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="39">
    <literal><![CDATA[
      c1 ^ c3 != c3
    ]]></literal>
    <literal><![CDATA[
      c2 ^ c3 = c3
    ]]></literal>
    <justification jstring="[resolve(26,a,13,b),rewrite([19(8)])].">
      <j1 rule="resolve" parents="26 13"/>
      <j2 rule="rewrite" parents="19"/>
    </justification>
  </clause>

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

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

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

  <clause id="183">
    <literal><![CDATA[
      c3 v (c1 ^ c2) = c3
    ]]></literal>
    <justification jstring="[para(36(a,1),79(a,1,2))].">
      <j1 rule="para" parents="36 79"/>
    </justification>
  </clause>

  <clause id="248">
    <literal><![CDATA[
      c1 ^ c2 = c1
    ]]></literal>
    <literal><![CDATA[
      c2 v c3 = c3
    ]]></literal>
    <justification jstring="[para(34(a,1),183(a,1,2)),rewrite([18(8)])].">
      <j1 rule="para" parents="34 183"/>
      <j2 rule="rewrite" parents="18"/>
    </justification>
  </clause>

  <clause id="285">
    <literal><![CDATA[
      c1 ^ c2 = c1
    ]]></literal>
    <literal><![CDATA[
      c1 ^ c3 = c3
    ]]></literal>
    <justification jstring="[para(76(b,1),22(a,1,2)),rewrite([19(8)])].">
      <j1 rule="para" parents="76 22"/>
      <j2 rule="rewrite" parents="19"/>
    </justification>
  </clause>

  <clause id="311">
    <literal><![CDATA[
      c3 ^ (c1 v (c2 v x)) = c3
    ]]></literal>
    <justification jstring="[para(29(a,1),37(a,1,2)),rewrite([22(5),16(6)]),flip(a)].">
      <j1 rule="para" parents="29 37"/>
      <j2 rule="rewrite" parents="22 16"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="340">
    <literal><![CDATA[
      c1 ^ (c2 v x) = c1
    ]]></literal>
    <literal><![CDATA[
      c1 ^ c3 = c3
    ]]></literal>
    <justification jstring="[para(76(b,1),311(a,1,2)),rewrite([19(9)])].">
      <j1 rule="para" parents="76 311"/>
      <j2 rule="rewrite" parents="19"/>
    </justification>
  </clause>

  <clause id="373">
    <literal><![CDATA[
      c1 ^ c2 = c1
    ]]></literal>
    <literal><![CDATA[
      c2 ^ c3 = c2
    ]]></literal>
    <justification jstring="[para(248(b,1),29(a,1,2))].">
      <j1 rule="para" parents="248 29"/>
    </justification>
  </clause>

  <clause id="402">
    <literal><![CDATA[
      c1 ^ c2 = c1
    ]]></literal>
    <literal><![CDATA[
      c2 ^ c3 = c3
    ]]></literal>
    <justification jstring="[resolve(285,b,39,a)].">
      <j1 rule="resolve" parents="285 39"/>
    </justification>
  </clause>

  <clause id="509">
    <literal><![CDATA[
      c1 ^ c2 = c1
    ]]></literal>
    <literal><![CDATA[
      c3 = c2
    ]]></literal>
    <justification jstring="[para(402(b,1),373(b,1)),merge(b)].">
      <j1 rule="para" parents="402 373"/>
      <j2 rule="merge"/>
    </justification>
  </clause>

  <clause id="533">
    <literal><![CDATA[
      c3 = c2
    ]]></literal>
    <literal><![CDATA[
      c1 v c2 = c2
    ]]></literal>
    <justification jstring="[para(509(a,1),47(a,1,2)),rewrite([18(6)])].">
      <j1 rule="para" parents="509 47"/>
      <j2 rule="rewrite" parents="18"/>
    </justification>
  </clause>

  <clause id="538">
    <literal><![CDATA[
      c3 = c2
    ]]></literal>
    <literal><![CDATA[
      c1 v c3 = c3
    ]]></literal>
    <justification jstring="[para(509(a,1),183(a,1,2)),rewrite([18(6)])].">
      <j1 rule="para" parents="509 183"/>
      <j2 rule="rewrite" parents="18"/>
    </justification>
  </clause>

  <clause id="542">
    <literal><![CDATA[
      c3 = c2
    ]]></literal>
    <literal><![CDATA[
      c2 ^ c3 = c3
    ]]></literal>
    <justification jstring="[para(533(b,1),22(a,1,2)),rewrite([19(6)])].">
      <j1 rule="para" parents="533 22"/>
      <j2 rule="rewrite" parents="19"/>
    </justification>
  </clause>

  <clause id="549">
    <literal><![CDATA[
      c3 = c2
    ]]></literal>
    <literal><![CDATA[
      c1 ^ c3 = c1
    ]]></literal>
    <justification jstring="[para(538(b,1),29(a,1,2))].">
      <j1 rule="para" parents="538 29"/>
    </justification>
  </clause>

  <clause id="552">
    <literal><![CDATA[
      c3 = c2
    ]]></literal>
    <literal><![CDATA[
      c1 ^ c3 != c1
    ]]></literal>
    <justification jstring="[resolve(542,b,24,b)].">
      <j1 rule="resolve" parents="542 24"/>
    </justification>
  </clause>

  <clause id="597">
    <literal><![CDATA[
      c3 = c2
    ]]></literal>
    <justification jstring="[resolve(552,b,549,b),merge(b)].">
      <j1 rule="resolve" parents="552 549"/>
      <j2 rule="merge"/>
    </justification>
  </clause>

  <clause id="601">
    <literal><![CDATA[
      c1 ^ (c2 v x) = c1
    ]]></literal>
    <literal><![CDATA[
      c1 ^ c2 = c2
    ]]></literal>
    <justification jstring="[back_rewrite(340),rewrite([597(8),597(10)])].">
      <j1 rule="back_rewrite" parents="340"/>
      <j2 rule="rewrite" parents="597 597"/>
    </justification>
  </clause>

  <clause id="619">
    <literal><![CDATA[
      c1 ^ c2 != c2
    ]]></literal>
    <justification jstring="[back_rewrite(26),rewrite([597(2),27(3),597(5),597(7)]),xx(a)].">
      <j1 rule="back_rewrite" parents="26"/>
      <j2 rule="rewrite" parents="597 27 597 597"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

  <clause id="620">
    <literal><![CDATA[
      c1 ^ c2 != c1
    ]]></literal>
    <justification jstring="[back_rewrite(24),rewrite([597(2),597(7),27(8),597(7)]),xx(b)].">
      <j1 rule="back_rewrite" parents="24"/>
      <j2 rule="rewrite" parents="597 597 27 597"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

  <clause id="621">
    <literal><![CDATA[
      c1 ^ (c2 v x) = c1
    ]]></literal>
    <justification jstring="[back_unit_del(601),unit_del(b,619)].">
      <j1 rule="back_unit_del" parents="601"/>
      <j2 rule="unit_del" parents="619"/>
    </justification>
  </clause>

  <clause id="625">
    <literal><![CDATA[
      $F
    ]]></literal>
    <justification jstring="[para(28(a,1),621(a,1,2)),unit_del(a,620)].">
      <j1 rule="para" parents="28 621"/>
      <j2 rule="unit_del" parents="620"/>
    </justification>
  </clause>

</proof>

</proofs>
