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

<heading><![CDATA[
Prover9 (32) version August-2006A, August 2006.
Process 11447 was started by mccune on cleo.thornwood,
Sat Aug 12 21:01:20 2006
The command was "/home/mccune/bin/prover9 -f head.in bc.in".
]]></heading>

<proof number="1" length="39" max_count="39">

<comments><![CDATA[
% Proof 1 at 0.16 (+ 0.00) seconds.
% Length of proof is 39.
% Level of proof is 14.
% Maximum clause weight is 20.
% Given clauses 153.
]]></comments>

  <clause id="2">
    <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="3">
    <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="7">
    <literal><![CDATA[
      (all a all x all b (B(a,x,b) -> C(a,x,b)))
    ]]></literal>
    <justification jstring="[goal].">
      <j1 rule="goal"/>
    </justification>
  </clause>

  <clause id="15">
    <literal><![CDATA[
      -B(x,y,z)
    ]]></literal>
    <literal><![CDATA[
      (x ^ y) v (y ^ z) = y
    ]]></literal>
    <justification jstring="[clausify(2)].">
      <j1 rule="clausify" parents="2"/>
    </justification>
  </clause>

  <clause id="16">
    <literal><![CDATA[
      -B(x,y,z)
    ]]></literal>
    <literal><![CDATA[
      (x v y) ^ (y v z) = y
    ]]></literal>
    <justification jstring="[clausify(2)].">
      <j1 rule="clausify" parents="2"/>
    </justification>
  </clause>

  <clause id="17">
    <literal><![CDATA[
      B(c1,c2,c3)
    ]]></literal>
    <justification jstring="[deny(7)].">
      <j1 rule="deny" parents="7"/>
    </justification>
  </clause>

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

  <clause id="27">
    <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="28">
    <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="30">
    <literal><![CDATA[
      (x v y) ^ x = x
    ]]></literal>
    <attribute><![CDATA[
      label("absorption_1")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="31">
    <literal><![CDATA[
      x ^ (x v y) = x
    ]]></literal>
    <justification jstring="[copy(30),rewrite(26(2))].">
      <j1 rule="copy" parents="30"/>
      <j2 rule="rewrite" parents="26"/>
    </justification>
  </clause>

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

  <clause id="33">
    <literal><![CDATA[
      x v (x ^ y) = x
    ]]></literal>
    <justification jstring="[copy(32),rewrite(27(2))].">
      <j1 rule="copy" parents="32"/>
      <j2 rule="rewrite" parents="27"/>
    </justification>
  </clause>

  <clause id="35">
    <literal><![CDATA[
      -C(x,y,z)
    ]]></literal>
    <literal><![CDATA[
      (x ^ z) v y = y
    ]]></literal>
    <justification jstring="[clausify(3)].">
      <j1 rule="clausify" parents="3"/>
    </justification>
  </clause>

  <clause id="36">
    <literal><![CDATA[
      C(x,y,z)
    ]]></literal>
    <literal><![CDATA[
      (x ^ y) v (y ^ z) != y
    ]]></literal>
    <literal><![CDATA[
      (x ^ z) v y != y
    ]]></literal>
    <justification jstring="[clausify(3)].">
      <j1 rule="clausify" parents="3"/>
    </justification>
  </clause>

  <clause id="37">
    <literal><![CDATA[
      -C(c1,c2,c3)
    ]]></literal>
    <justification jstring="[deny(7)].">
      <j1 rule="deny" parents="7"/>
    </justification>
  </clause>

  <clause id="38">
    <literal><![CDATA[
      (c1 ^ c2) v (c2 ^ c3) = c2
    ]]></literal>
    <justification jstring="[resolve(17,a,15,a)].">
      <j1 rule="resolve" parents="17 15"/>
    </justification>
  </clause>

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

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

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

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

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

  <clause id="58">
    <literal><![CDATA[
      C(x,y,z)
    ]]></literal>
    <literal><![CDATA[
      (x ^ y) v (y ^ z) != y
    ]]></literal>
    <literal><![CDATA[
      y v (x ^ z) != y
    ]]></literal>
    <justification jstring="[para(27(a,1),36(c,1))].">
      <j1 rule="para" parents="27 36"/>
    </justification>
  </clause>

  <clause id="67">
    <literal><![CDATA[
      C(c1,c2,c3)
    ]]></literal>
    <literal><![CDATA[
      c2 v (c1 ^ c3) != c2
    ]]></literal>
    <justification jstring="[para(38(a,1),36(b,1)),rewrite(27(12)),xx(b)].">
      <j1 rule="para" parents="38 36"/>
      <j2 rule="rewrite" parents="27"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

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

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

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

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

  <clause id="120">
    <literal><![CDATA[
      x ^ (y ^ (x ^ z)) = y ^ (x ^ z)
    ]]></literal>
    <justification jstring="[para(73(a,1),28(a,2,2)),rewrite(41(3),28(2))].">
      <j1 rule="para" parents="73 28"/>
      <j2 rule="rewrite" parents="41 28"/>
    </justification>
  </clause>

  <clause id="696">
    <literal><![CDATA[
      C(x,x ^ y,y ^ z)
    ]]></literal>
    <justification jstring="[para(49(a,1),58(c,1)),rewrite(73(5),41(7),28(6),120(7),49(7)),xx(b),xx(c)].">
      <j1 rule="para" parents="49 58"/>
      <j2 rule="rewrite" parents="73 41 28 120 49"/>
      <j2 rule="xx"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

  <clause id="699">
    <literal><![CDATA[
      C(x,x ^ y,z ^ y)
    ]]></literal>
    <justification jstring="[para(26(a,1),696(a,3))].">
      <j1 rule="para" parents="26 696"/>
    </justification>
  </clause>

  <clause id="728">
    <literal><![CDATA[
      C(x,x ^ (y v z),z)
    ]]></literal>
    <justification jstring="[para(44(a,1),699(a,3))].">
      <j1 rule="para" parents="44 699"/>
    </justification>
  </clause>

  <clause id="835">
    <literal><![CDATA[
      C(c1 v c2,c2,c3)
    ]]></literal>
    <justification jstring="[para(39(a,1),728(a,2))].">
      <j1 rule="para" parents="39 728"/>
    </justification>
  </clause>

  <clause id="879">
    <literal><![CDATA[
      c2 v (c3 ^ (c1 v c2)) = c2
    ]]></literal>
    <justification jstring="[hyper(35,a,835,a),rewrite(26(5),27(7))].">
      <j1 rule="hyper" parents="35 835"/>
      <j2 rule="rewrite" parents="26 27"/>
    </justification>
  </clause>

  <clause id="955">
    <literal><![CDATA[
      c3 ^ (c1 v c2) = c2 ^ c3
    ]]></literal>
    <justification jstring="[para(879(a,1),44(a,1,2)),rewrite(26(7),106(7),26(3)),flip(a)].">
      <j1 rule="para" parents="879 44"/>
      <j2 rule="rewrite" parents="26 106 26"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1574">
    <literal><![CDATA[
      c1 ^ (c2 ^ c3) = c1 ^ c3
    ]]></literal>
    <justification jstring="[para(955(a,1),81(a,1,2)),rewrite(26(8))].">
      <j1 rule="para" parents="955 81"/>
      <j2 rule="rewrite" parents="26"/>
    </justification>
  </clause>

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

  <clause id="1659">
    <literal><![CDATA[
      C(c1,c2,c3)
    ]]></literal>
    <justification jstring="[back_rewrite(67),rewrite(1604(9)),xx(b)].">
      <j1 rule="back_rewrite" parents="67"/>
      <j2 rule="rewrite" parents="1604"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

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

</proof>

</proofs>
