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

<heading><![CDATA[
Prover9 (32) version April-2007, April 2007.
Process 6837 was started by hoefnepe on europa,
Mon Oct  1 07:46:04 2007
The command was "../../../kleene/Prover9/bin/prover9 -f cs2.in".
]]></heading>

<proof number="1" length="24" max_count="16">

<comments><![CDATA[
% Proof 1 at 0.92 (+ 0.04) seconds.
% Length of proof is 24.
% Level of proof is 5.
% Maximum clause weight is 16.
% Given clauses 357.
]]></comments>

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

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

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

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

  <clause id="5" type="goal">
    <literal><![CDATA[
      F ; l1 <= (l1 + l2 + i) * ; (l1 + l2 + i)
    ]]></literal>
    <attribute><![CDATA[
      label(goal)
    ]]></attribute>
    <justification jstring="[goal].">
      <j1 rule="goal"/>
    </justification>
  </clause>

  <clause id="6" type="assumption">
    <literal><![CDATA[
      x + y = y + x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="7" type="assumption">
    <literal><![CDATA[
      x + (y + z) = x + y + z
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="8">
    <literal><![CDATA[
      x + y + z = x + (y + z)
    ]]></literal>
    <justification jstring="[copy(7),flip(a)].">
      <j1 rule="copy" parents="7"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

  <clause id="10" type="assumption">
    <literal><![CDATA[
      x <= x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="11" type="clausify">
    <literal><![CDATA[
      -(x <= y)
    ]]></literal>
    <literal><![CDATA[
      -(y <= z)
    ]]></literal>
    <literal><![CDATA[
      x <= z
    ]]></literal>
    <justification jstring="[clausify(2)].">
      <j1 rule="clausify" parents="2"/>
    </justification>
  </clause>

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

  <clause id="13" type="clausify">
    <literal><![CDATA[
      -(x + y <= z)
    ]]></literal>
    <literal><![CDATA[
      x <= z
    ]]></literal>
    <justification jstring="[clausify(4)].">
      <j1 rule="clausify" parents="4"/>
    </justification>
  </clause>

  <clause id="14" type="clausify">
    <literal><![CDATA[
      -(x + y <= z)
    ]]></literal>
    <literal><![CDATA[
      y <= z
    ]]></literal>
    <justification jstring="[clausify(4)].">
      <j1 rule="clausify" parents="4"/>
    </justification>
  </clause>

  <clause id="15" type="assumption">
    <literal><![CDATA[
      F <= (l1 + l2 + i) *
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="16">
    <literal><![CDATA[
      F <= (i + (l1 + l2)) *
    ]]></literal>
    <justification jstring="[copy(15),rewrite(6(6))].">
      <j1 rule="copy" parents="15"/>
      <j2 rule="rewrite" parents="6"/>
    </justification>
  </clause>

  <clause id="17" type="deny">
    <literal><![CDATA[
      -(F ; l1 <= (l1 + l2 + i) * ; (l1 + l2 + i))
    ]]></literal>
    <justification jstring="[deny(5)].">
      <j1 rule="deny" parents="5"/>
    </justification>
  </clause>

  <clause id="18">
    <literal><![CDATA[
      -(F ; l1 <= (i + (l1 + l2)) * ; (i + (l1 + l2)))
    ]]></literal>
    <justification jstring="[copy(17),rewrite(6(8),6(14))].">
      <j1 rule="copy" parents="17"/>
      <j2 rule="rewrite" parents="6 6"/>
    </justification>
  </clause>

  <clause id="19">
    <literal><![CDATA[
      x <= x + y
    ]]></literal>
    <justification jstring="[hyper(13,a,10,a)].">
      <j1 rule="hyper" parents="13 10"/>
    </justification>
  </clause>

  <clause id="20">
    <literal><![CDATA[
      F ; x <= (i + (l1 + l2)) * ; x
    ]]></literal>
    <justification jstring="[hyper(12,a,16,a)].">
      <j1 rule="hyper" parents="12 16"/>
    </justification>
  </clause>

  <clause id="21">
    <literal><![CDATA[
      x <= y + (x + z)
    ]]></literal>
    <justification jstring="[hyper(14,a,19,a),rewrite(8(2))].">
      <j1 rule="hyper" parents="14 19"/>
      <j2 rule="rewrite" parents="8"/>
    </justification>
  </clause>

  <clause id="22">
    <literal><![CDATA[
      x ; y <= x ; (z + (y + u))
    ]]></literal>
    <justification jstring="[hyper(9,a,21,a)].">
      <j1 rule="hyper" parents="9 21"/>
    </justification>
  </clause>

  <clause id="23">
    <literal><![CDATA[
      -(F ; l1 <= F ; (i + (l1 + l2)))
    ]]></literal>
    <justification jstring="[ur(11,b,20,a,c,18,a)].">
      <j1 rule="ur" parents="11 20 18"/>
    </justification>
  </clause>

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

</proof>

</proofs>
