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

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

<proof number="1" length="33" max_count="44">

<comments><![CDATA[
% Proof 1 at 0.04 (+ 0.00) seconds.
% Length of proof is 33.
% Level of proof is 7.
% Maximum clause weight is 16.
% Given clauses 43.

]]></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="4" type="assumption">
    <literal><![CDATA[
      (all x all y all z (C(x,y,z) <-> (x ^ y) v (y ^ z) = y & (x ^ z) v y = y))
    ]]></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="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="goal">
    <literal><![CDATA[
      (all a all x all b (C(a,x,b) -> D(a,x,b)))
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[goal].">
      <j1 rule="goal"/>
    </justification>
  </clause>

  <clause id="10" type="expand_def">
    <literal><![CDATA[
      (all a all x all b ((a ^ x) v (x ^ b) = x & (a ^ b) v x = x -> D(a,x,b)))
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[expand_def(9,4)].">
      <j1 rule="expand_def" parents="9 4"/>
    </justification>
  </clause>

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

  <clause id="12" 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="13" 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="14" 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="15" 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="16" 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="17" 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="18" type="deny">
    <literal><![CDATA[
      (c1 ^ c2) v (c2 ^ c3) = c2
    ]]></literal>
    <justification jstring="[deny(11)].">
      <j1 rule="deny" parents="11"/>
    </justification>
  </clause>

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

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

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

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

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

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

  <clause id="25">
    <literal><![CDATA[
      x v (y v z) = y v (x v z)
    ]]></literal>
    <justification jstring="[para(16(a,1),14(a,1,1)),rewrite([14(2)])].">
      <j1 rule="para" parents="16 14"/>
      <j2 rule="rewrite" parents="14"/>
    </justification>
  </clause>

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

  <clause id="27">
    <literal><![CDATA[
      c1 ^ (c2 ^ c3) != c1 ^ c3
    ]]></literal>
    <literal><![CDATA[
      c2 ^ (c1 v c3) != c2
    ]]></literal>
    <justification jstring="[back_rewrite(22),rewrite([26(5)])].">
      <j1 rule="back_rewrite" parents="22"/>
      <j2 rule="rewrite" parents="26"/>
    </justification>
  </clause>

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

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

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

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

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

  <clause id="61">
    <literal><![CDATA[
      c1 ^ (c2 ^ c3) = c1 ^ c3
    ]]></literal>
    <justification jstring="[para(20(a,1),39(a,1,2)),rewrite([17(5),26(5)])].">
      <j1 rule="para" parents="20 39"/>
      <j2 rule="rewrite" parents="17 26"/>
    </justification>
  </clause>

  <clause id="63">
    <literal><![CDATA[
      c2 ^ (c1 v c3) != c2
    ]]></literal>
    <justification jstring="[back_rewrite(27),rewrite([61(5)]),xx(a)].">
      <j1 rule="back_rewrite" parents="27"/>
      <j2 rule="rewrite" parents="61"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

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

  <clause id="188">
    <literal><![CDATA[
      c1 v (c2 v c3) = c1 v c3
    ]]></literal>
    <justification jstring="[para(102(a,1),57(a,1,2)),rewrite([25(5),16(4)])].">
      <j1 rule="para" parents="102 57"/>
      <j2 rule="rewrite" parents="25 16"/>
    </justification>
  </clause>

  <clause id="204">
    <literal><![CDATA[
      $F
    ]]></literal>
    <justification jstring="[para(188(a,1),47(a,1,2)),unit_del(a,63)].">
      <j1 rule="para" parents="188 47"/>
      <j2 rule="unit_del" parents="63"/>
    </justification>
  </clause>

</proof>

</proofs>
