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

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

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

<comments><![CDATA[
% Proof 1 at 0.06 (+ 0.01) seconds.
% Length of proof is 33.
% Level of proof is 10.
% Maximum clause weight is 21.
% Given clauses 64.

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

  <clause id="11" type="expand_def">
    <literal><![CDATA[
      (all a all x all b (a ^ x = a & x ^ b = x | b ^ x = b & x ^ a = x -> (a ^ x) v (x ^ b) = x & (a v x) ^ (x v b) = x))
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <attribute><![CDATA[
      label(goal)
    ]]></attribute>
    <justification jstring="[expand_def(10,3)].">
      <j1 rule="expand_def" parents="10 3"/>
    </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="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 = c1
    ]]></literal>
    <literal><![CDATA[
      c3 ^ c2 = c3
    ]]></literal>
    <justification jstring="[deny(11)].">
      <j1 rule="deny" parents="11"/>
    </justification>
  </clause>

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

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

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

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

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

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

  <clause id="27">
    <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="28">
    <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="40">
    <literal><![CDATA[
      c1 ^ c2 = c1
    ]]></literal>
    <literal><![CDATA[
      (c1 v c2) ^ (c2 v c3) != c2
    ]]></literal>
    <justification jstring="[para(21(b,1),26(a,1,1)),rewrite([27(10)]),xx(b)].">
      <j1 rule="para" parents="21 26"/>
      <j2 rule="rewrite" parents="27"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

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

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

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

  <clause id="51">
    <literal><![CDATA[
      c1 ^ c2 = c2
    ]]></literal>
    <literal><![CDATA[
      (c1 v c2) ^ (c2 v c3) != c2
    ]]></literal>
    <justification jstring="[back_rewrite(42),rewrite([46(10)]),xx(b)].">
      <j1 rule="back_rewrite" parents="42"/>
      <j2 rule="rewrite" parents="46"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

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

  <clause id="473">
    <literal><![CDATA[
      c1 ^ c2 = c1
    ]]></literal>
    <justification jstring="[para(47(b,1),40(b,1,2)),rewrite([17(15),55(15)]),xx(c),merge(b)].">
      <j1 rule="para" parents="47 40"/>
      <j2 rule="rewrite" parents="17 55"/>
      <j2 rule="xx"/>
      <j2 rule="merge"/>
    </justification>
  </clause>

  <clause id="525">
    <literal><![CDATA[
      c2 = c1
    ]]></literal>
    <literal><![CDATA[
      (c1 v c2) ^ (c2 v c3) != c2
    ]]></literal>
    <justification jstring="[back_rewrite(51),rewrite([473(3)]),flip(a)].">
      <j1 rule="back_rewrite" parents="51"/>
      <j2 rule="rewrite" parents="473"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

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

  <clause id="543">
    <literal><![CDATA[
      c1 v (c2 ^ c3) != c2
    ]]></literal>
    <justification jstring="[back_rewrite(529),rewrite([534(10),28(12)]),xx(b)].">
      <j1 rule="back_rewrite" parents="529"/>
      <j2 rule="rewrite" parents="534 28"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

  <clause id="545">
    <literal><![CDATA[
      c2 = c1
    ]]></literal>
    <justification jstring="[back_rewrite(525),rewrite([534(6),28(8)]),xx(b)].">
      <j1 rule="back_rewrite" parents="525"/>
      <j2 rule="rewrite" parents="534 28"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

  <clause id="547">
    <literal><![CDATA[
      $F
    ]]></literal>
    <justification jstring="[back_rewrite(543),rewrite([545(2),27(5),545(2)]),xx(a)].">
      <j1 rule="back_rewrite" parents="543"/>
      <j2 rule="rewrite" parents="545 27 545"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

</proof>

</proofs>
