<?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 August-2006A, August 2006.
Process 11446 was started by mccune on cleo.thornwood,
Sat Aug 12 21:01:19 2006
The command was "/home/mccune/bin/prover9 -f head.in ab.in".
]]></heading>

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

<comments><![CDATA[
% Proof 1 at 0.22 (+ 0.00) seconds.
% Length of proof is 45.
% Level of proof is 12.
% Maximum clause weight is 22.
% Given clauses 167.
]]></comments>

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

  <clause id="9">
    <literal><![CDATA[
      -A(x,y,z)
    ]]></literal>
    <literal><![CDATA[
      x <= y
    ]]></literal>
    <literal><![CDATA[
      z <= y
    ]]></literal>
    <justification jstring="[clausify(1)].">
      <j1 rule="clausify" parents="1"/>
    </justification>
  </clause>

  <clause id="10">
    <literal><![CDATA[
      -A(x,y,z)
    ]]></literal>
    <literal><![CDATA[
      x <= y
    ]]></literal>
    <literal><![CDATA[
      y <= x
    ]]></literal>
    <justification jstring="[clausify(1)].">
      <j1 rule="clausify" parents="1"/>
    </justification>
  </clause>

  <clause id="12">
    <literal><![CDATA[
      -A(x,y,z)
    ]]></literal>
    <literal><![CDATA[
      y <= z
    ]]></literal>
    <literal><![CDATA[
      y <= x
    ]]></literal>
    <justification jstring="[clausify(1)].">
      <j1 rule="clausify" parents="1"/>
    </justification>
  </clause>

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

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

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

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

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

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

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

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

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

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

  <clause id="39">
    <literal><![CDATA[
      c1 <= c2
    ]]></literal>
    <literal><![CDATA[
      c2 <= c1
    ]]></literal>
    <justification jstring="[resolve(14,a,10,a)].">
      <j1 rule="resolve" parents="14 10"/>
    </justification>
  </clause>

  <clause id="41">
    <literal><![CDATA[
      c2 <= c3
    ]]></literal>
    <literal><![CDATA[
      c2 <= c1
    ]]></literal>
    <justification jstring="[resolve(14,a,12,a)].">
      <j1 rule="resolve" parents="14 12"/>
    </justification>
  </clause>

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

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

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

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

  <clause id="67">
    <literal><![CDATA[
      B(x,y,y v z)
    ]]></literal>
    <literal><![CDATA[
      (x v y) ^ (y v (y v z)) != y
    ]]></literal>
    <justification jstring="[para(29(a,1),34(b,1,2)),rewrite(25(4),50(4)),xx(b)].">
      <j1 rule="para" parents="29 34"/>
      <j2 rule="rewrite" parents="25 50"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

  <clause id="69">
    <literal><![CDATA[
      B(x,y,y ^ z)
    ]]></literal>
    <literal><![CDATA[
      (x ^ y) v (y ^ (y ^ z)) != y
    ]]></literal>
    <justification jstring="[para(31(a,1),34(c,1,2)),rewrite(24(9),46(9)),xx(c)].">
      <j1 rule="para" parents="31 34"/>
      <j2 rule="rewrite" parents="24 46"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

  <clause id="73">
    <literal><![CDATA[
      c2 ^ c3 = c3
    ]]></literal>
    <literal><![CDATA[
      c1 <= c2
    ]]></literal>
    <justification jstring="[hyper(35,a,38,b),rewrite(24(3))].">
      <j1 rule="hyper" parents="35 38"/>
      <j2 rule="rewrite" parents="24"/>
    </justification>
  </clause>

  <clause id="74">
    <literal><![CDATA[
      c1 ^ c2 = c2
    ]]></literal>
    <literal><![CDATA[
      c1 <= c2
    ]]></literal>
    <justification jstring="[hyper(35,a,39,b),rewrite(24(3))].">
      <j1 rule="hyper" parents="35 39"/>
      <j2 rule="rewrite" parents="24"/>
    </justification>
  </clause>

  <clause id="76">
    <literal><![CDATA[
      c2 ^ c3 = c2
    ]]></literal>
    <literal><![CDATA[
      c2 <= c1
    ]]></literal>
    <justification jstring="[hyper(35,a,41,a)].">
      <j1 rule="hyper" parents="35 41"/>
    </justification>
  </clause>

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

  <clause id="81">
    <literal><![CDATA[
      B(x,x,y)
    ]]></literal>
    <justification jstring="[para(54(a,1),34(b,1,1)),rewrite(31(3),55(3),29(4)),xx(b),xx(c)].">
      <j1 rule="para" parents="54 34"/>
      <j2 rule="rewrite" parents="31 55 29"/>
      <j2 rule="xx"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

  <clause id="83">
    <literal><![CDATA[
      B(x,y,y ^ z)
    ]]></literal>
    <literal><![CDATA[
      (x ^ y) v (y ^ z) != y
    ]]></literal>
    <justification jstring="[back_rewrite(69),rewrite(78(5))].">
      <j1 rule="back_rewrite" parents="69"/>
      <j2 rule="rewrite" parents="78"/>
    </justification>
  </clause>

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

  <clause id="93">
    <literal><![CDATA[
      B(x,y,y v z)
    ]]></literal>
    <literal><![CDATA[
      (x v y) ^ (y v z) != y
    ]]></literal>
    <justification jstring="[back_rewrite(67),rewrite(90(5))].">
      <j1 rule="back_rewrite" parents="67"/>
      <j2 rule="rewrite" parents="90"/>
    </justification>
  </clause>

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

  <clause id="978">
    <literal><![CDATA[
      c1 <= c2
    ]]></literal>
    <literal><![CDATA[
      B(c1,c2,c2 ^ x)
    ]]></literal>
    <justification jstring="[para(74(a,1),83(b,1,1)),rewrite(31(12)),xx(c)].">
      <j1 rule="para" parents="74 83"/>
      <j2 rule="rewrite" parents="31"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

  <clause id="1479">
    <literal><![CDATA[
      c1 <= c2
    ]]></literal>
    <justification jstring="[para(73(a,1),978(b,3)),merge(b),unit_del(b,37)].">
      <j1 rule="para" parents="73 978"/>
      <j2 rule="merge"/>
      <j2 rule="unit_del" parents="37"/>
    </justification>
  </clause>

  <clause id="1480">
    <literal><![CDATA[
      c1 ^ c2 = c1
    ]]></literal>
    <justification jstring="[hyper(35,a,1479,a)].">
      <j1 rule="hyper" parents="35 1479"/>
    </justification>
  </clause>

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

  <clause id="1574">
    <literal><![CDATA[
      B(c1,c2,c2 v x)
    ]]></literal>
    <justification jstring="[para(1486(a,1),93(b,1,1)),rewrite(29(9)),xx(b)].">
      <j1 rule="para" parents="1486 93"/>
      <j2 rule="rewrite" parents="29"/>
      <j2 rule="xx"/>
    </justification>
  </clause>

  <clause id="1629">
    <literal><![CDATA[
      c2 <= c1
    ]]></literal>
    <justification jstring="[para(247(b,1),1574(a,3)),unit_del(b,37)].">
      <j1 rule="para" parents="247 1574"/>
      <j2 rule="unit_del" parents="37"/>
    </justification>
  </clause>

  <clause id="1659">
    <literal><![CDATA[
      c2 = c1
    ]]></literal>
    <justification jstring="[hyper(35,a,1629,a),rewrite(24(3),1480(3)),flip(a)].">
      <j1 rule="hyper" parents="35 1629"/>
      <j2 rule="rewrite" parents="24 1480"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1767">
    <literal><![CDATA[
      $F
    ]]></literal>
    <justification jstring="[back_rewrite(37),rewrite(1659(2)),unit_del(a,81)].">
      <j1 rule="back_rewrite" parents="37"/>
      <j2 rule="rewrite" parents="1659"/>
      <j2 rule="unit_del" parents="81"/>
    </justification>
  </clause>

</proof>

</proofs>
