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

<heading><![CDATA[
Prover9 (32) version April-2007, April 2007.
Process 6990 was started by hoefnepe on europa,
Mon Oct  1 08:29:23 2007
The command was "../../../kleene/Prover9/bin/prover9 -f lmA1.in".
]]></heading>

<proof number="1" length="50" max_count="155">

<comments><![CDATA[
% Proof 1 at 6.81 (+ 0.07) seconds.
% Length of proof is 50.
% Level of proof is 9.
% Maximum clause weight is 76.
% Given clauses 2011.
]]></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[
      (all p (p <= 1 & p ; p = p -> p ; (p ; x) ^ = (p ; x) ^))
    ]]></literal>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="4" type="goal">
    <literal><![CDATA[
      (all p all q all r (p <= 1 & p ; p = p & q <= 1 & q ; q = q & r <= 1 & r ; r = r -> (p ; x ; q ; y ; r ; z) ^ <= p ; (p ; x ; q + q ; y ; r + r ; z) ^)) & (all p all q all r (p <= 1 & p ; p = p & q <= 1 & q ; q = q & r <= 1 & r ; r = r -> (p ; x ; q + q ; y ; r + r ; z) ^ <= (p ; x ; q + q ; x ; p + q ; y ; r + r ; y ; q + r ; z) ^))
    ]]></literal>
    <attribute><![CDATA[
      label(goal)
    ]]></attribute>
    <justification jstring="[goal].">
      <j1 rule="goal"/>
    </justification>
  </clause>

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

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

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

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

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

  <clause id="10" 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="11" type="assumption">
    <literal><![CDATA[
      x <= x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="12" 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="13" type="assumption">
    <literal><![CDATA[
      (x ; y ; z) ^ <= (x + y + z) ^
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="14">
    <literal><![CDATA[
      (x ; (y ; z)) ^ <= (x + (y + z)) ^
    ]]></literal>
    <justification jstring="[copy(13),rewrite(9(2),7(5))].">
      <j1 rule="copy" parents="13"/>
      <j2 rule="rewrite" parents="9 7"/>
    </justification>
  </clause>

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

  <clause id="16">
    <literal><![CDATA[
      -(x <= 1)
    ]]></literal>
    <literal><![CDATA[
      x ; x != x
    ]]></literal>
    <literal><![CDATA[
      x ; (x ; y) ^ = (x ; y) ^
    ]]></literal>
    <justification jstring="[copy(15),flip(c)].">
      <j1 rule="copy" parents="15"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

  <clause id="18" type="deny">
    <literal><![CDATA[
      c4 <= 1
    ]]></literal>
    <literal><![CDATA[
      -((c7 ; c1 ; c8 + c8 ; c2 ; c9 + c9 ; c3) ^ <= (c7 ; c1 ; c8 + c8 ; c1 ; c7 + c8 ; c2 ; c9 + c9 ; c2 ; c8 + c9 ; c3) ^)
    ]]></literal>
    <justification jstring="[deny(4)].">
      <j1 rule="deny" parents="4"/>
    </justification>
  </clause>

  <clause id="19">
    <literal><![CDATA[
      c4 <= 1
    ]]></literal>
    <literal><![CDATA[
      -((c9 ; c3 + (c7 ; (c1 ; c8) + c8 ; (c2 ; c9))) ^ <= (c9 ; c3 + (c9 ; (c2 ; c8) + (c8 ; (c2 ; c9) + (c7 ; (c1 ; c8) + c8 ; (c1 ; c7))))) ^)
    ]]></literal>
    <justification jstring="[copy(18),rewrite(9(8),9(13),5(18),9(24),9(29),9(35),5(36),9(41),5(42),5(46))].">
      <j1 rule="copy" parents="18"/>
      <j2 rule="rewrite" parents="9 9 5 9 9 9 5 9 5 5"/>
    </justification>
  </clause>

  <clause id="20" type="deny">
    <literal><![CDATA[
      c4 ; c4 = c4
    ]]></literal>
    <literal><![CDATA[
      -((c7 ; c1 ; c8 + c8 ; c2 ; c9 + c9 ; c3) ^ <= (c7 ; c1 ; c8 + c8 ; c1 ; c7 + c8 ; c2 ; c9 + c9 ; c2 ; c8 + c9 ; c3) ^)
    ]]></literal>
    <justification jstring="[deny(4)].">
      <j1 rule="deny" parents="4"/>
    </justification>
  </clause>

  <clause id="21">
    <literal><![CDATA[
      c4 ; c4 = c4
    ]]></literal>
    <literal><![CDATA[
      -((c9 ; c3 + (c7 ; (c1 ; c8) + c8 ; (c2 ; c9))) ^ <= (c9 ; c3 + (c9 ; (c2 ; c8) + (c8 ; (c2 ; c9) + (c7 ; (c1 ; c8) + c8 ; (c1 ; c7))))) ^)
    ]]></literal>
    <justification jstring="[copy(20),rewrite(9(10),9(15),5(20),9(26),9(31),9(37),5(38),9(43),5(44),5(48))].">
      <j1 rule="copy" parents="20"/>
      <j2 rule="rewrite" parents="9 9 5 9 9 9 5 9 5 5"/>
    </justification>
  </clause>

  <clause id="22" type="deny">
    <literal><![CDATA[
      c5 ; c5 = c5
    ]]></literal>
    <literal><![CDATA[
      -((c7 ; c1 ; c8 + c8 ; c2 ; c9 + c9 ; c3) ^ <= (c7 ; c1 ; c8 + c8 ; c1 ; c7 + c8 ; c2 ; c9 + c9 ; c2 ; c8 + c9 ; c3) ^)
    ]]></literal>
    <justification jstring="[deny(4)].">
      <j1 rule="deny" parents="4"/>
    </justification>
  </clause>

  <clause id="23">
    <literal><![CDATA[
      c5 ; c5 = c5
    ]]></literal>
    <literal><![CDATA[
      -((c9 ; c3 + (c7 ; (c1 ; c8) + c8 ; (c2 ; c9))) ^ <= (c9 ; c3 + (c9 ; (c2 ; c8) + (c8 ; (c2 ; c9) + (c7 ; (c1 ; c8) + c8 ; (c1 ; c7))))) ^)
    ]]></literal>
    <justification jstring="[copy(22),rewrite(9(10),9(15),5(20),9(26),9(31),9(37),5(38),9(43),5(44),5(48))].">
      <j1 rule="copy" parents="22"/>
      <j2 rule="rewrite" parents="9 9 5 9 9 9 5 9 5 5"/>
    </justification>
  </clause>

  <clause id="24" type="deny">
    <literal><![CDATA[
      c6 ; c6 = c6
    ]]></literal>
    <literal><![CDATA[
      -((c7 ; c1 ; c8 + c8 ; c2 ; c9 + c9 ; c3) ^ <= (c7 ; c1 ; c8 + c8 ; c1 ; c7 + c8 ; c2 ; c9 + c9 ; c2 ; c8 + c9 ; c3) ^)
    ]]></literal>
    <justification jstring="[deny(4)].">
      <j1 rule="deny" parents="4"/>
    </justification>
  </clause>

  <clause id="25">
    <literal><![CDATA[
      c6 ; c6 = c6
    ]]></literal>
    <literal><![CDATA[
      -((c9 ; c3 + (c7 ; (c1 ; c8) + c8 ; (c2 ; c9))) ^ <= (c9 ; c3 + (c9 ; (c2 ; c8) + (c8 ; (c2 ; c9) + (c7 ; (c1 ; c8) + c8 ; (c1 ; c7))))) ^)
    ]]></literal>
    <justification jstring="[copy(24),rewrite(9(10),9(15),5(20),9(26),9(31),9(37),5(38),9(43),5(44),5(48))].">
      <j1 rule="copy" parents="24"/>
      <j2 rule="rewrite" parents="9 9 5 9 9 9 5 9 5 5"/>
    </justification>
  </clause>

  <clause id="26" type="deny">
    <literal><![CDATA[
      -((c4 ; c1 ; c5 ; c2 ; c6 ; c3) ^ <= c4 ; (c4 ; c1 ; c5 + c5 ; c2 ; c6 + c6 ; c3) ^)
    ]]></literal>
    <literal><![CDATA[
      -((c7 ; c1 ; c8 + c8 ; c2 ; c9 + c9 ; c3) ^ <= (c7 ; c1 ; c8 + c8 ; c1 ; c7 + c8 ; c2 ; c9 + c9 ; c2 ; c8 + c9 ; c3) ^)
    ]]></literal>
    <justification jstring="[deny(4)].">
      <j1 rule="deny" parents="4"/>
    </justification>
  </clause>

  <clause id="27">
    <literal><![CDATA[
      -((c4 ; (c1 ; (c5 ; (c2 ; (c6 ; c3))))) ^ <= c4 ; (c6 ; c3 + (c4 ; (c1 ; c5) + c5 ; (c2 ; c6))) ^)
    ]]></literal>
    <literal><![CDATA[
      -((c9 ; c3 + (c7 ; (c1 ; c8) + c8 ; (c2 ; c9))) ^ <= (c9 ; c3 + (c9 ; (c2 ; c8) + (c8 ; (c2 ; c9) + (c7 ; (c1 ; c8) + c8 ; (c1 ; c7))))) ^)
    ]]></literal>
    <justification jstring="[copy(26),rewrite(9(5),9(7),9(6),9(9),9(8),9(7),9(11),9(10),9(9),9(8),9(18),9(23),5(28),9(36),9(41),5(46),9(52),9(57),9(63),5(64),9(69),5(70),5(74))].">
      <j1 rule="copy" parents="26"/>
      <j2 rule="rewrite" parents="9 9 9 9 9 9 9 9 9 9 9 9 5 9 9 5 9 9 9 5 9 5 5"/>
    </justification>
  </clause>

  <clause id="28">
    <literal><![CDATA[
      x + (y + z) = z + (x + y)
    ]]></literal>
    <justification jstring="[para(7(a,1),5(a,1))].">
      <j1 rule="para" parents="7 5"/>
    </justification>
  </clause>

  <clause id="29">
    <literal><![CDATA[
      x + (y + z) = y + (x + z)
    ]]></literal>
    <justification jstring="[para(5(a,1),7(a,1,1)),rewrite(7(2))].">
      <j1 rule="para" parents="5 7"/>
      <j2 rule="rewrite" parents="7"/>
    </justification>
  </clause>

  <clause id="30">
    <literal><![CDATA[
      -((c4 ; (c1 ; (c5 ; (c2 ; (c6 ; c3))))) ^ <= c4 ; (c4 ; (c1 ; c5) + (c5 ; (c2 ; c6) + c6 ; c3)) ^)
    ]]></literal>
    <literal><![CDATA[
      -((c7 ; (c1 ; c8) + (c8 ; (c2 ; c9) + c9 ; c3)) ^ <= (c7 ; (c1 ; c8) + (c8 ; (c1 ; c7) + (c8 ; (c2 ; c9) + (c9 ; c3 + c9 ; (c2 ; c8))))) ^)
    ]]></literal>
    <justification jstring="[back_rewrite(27),rewrite(28(28),5(27),29(28),28(46),5(45),29(46),28(72),5(71),29(72),29(73),28(72),5(71),29(72),29(74),29(73),29(72))].">
      <j1 rule="back_rewrite" parents="27"/>
      <j2 rule="rewrite" parents="28 5 29 28 5 29 28 5 29 29 28 5 29 29 29 29"/>
    </justification>
  </clause>

  <clause id="31">
    <literal><![CDATA[
      c6 ; c6 = c6
    ]]></literal>
    <literal><![CDATA[
      -((c7 ; (c1 ; c8) + (c8 ; (c2 ; c9) + c9 ; c3)) ^ <= (c7 ; (c1 ; c8) + (c8 ; (c1 ; c7) + (c8 ; (c2 ; c9) + (c9 ; c3 + c9 ; (c2 ; c8))))) ^)
    ]]></literal>
    <justification jstring="[back_rewrite(25),rewrite(28(20),5(19),29(20),28(46),5(45),29(46),29(47),28(46),5(45),29(46),29(48),29(47),29(46))].">
      <j1 rule="back_rewrite" parents="25"/>
      <j2 rule="rewrite" parents="28 5 29 28 5 29 29 28 5 29 29 29 29"/>
    </justification>
  </clause>

  <clause id="32">
    <literal><![CDATA[
      c5 ; c5 = c5
    ]]></literal>
    <literal><![CDATA[
      -((c7 ; (c1 ; c8) + (c8 ; (c2 ; c9) + c9 ; c3)) ^ <= (c7 ; (c1 ; c8) + (c8 ; (c1 ; c7) + (c8 ; (c2 ; c9) + (c9 ; c3 + c9 ; (c2 ; c8))))) ^)
    ]]></literal>
    <justification jstring="[back_rewrite(23),rewrite(28(20),5(19),29(20),28(46),5(45),29(46),29(47),28(46),5(45),29(46),29(48),29(47),29(46))].">
      <j1 rule="back_rewrite" parents="23"/>
      <j2 rule="rewrite" parents="28 5 29 28 5 29 29 28 5 29 29 29 29"/>
    </justification>
  </clause>

  <clause id="33">
    <literal><![CDATA[
      c4 ; c4 = c4
    ]]></literal>
    <literal><![CDATA[
      -((c7 ; (c1 ; c8) + (c8 ; (c2 ; c9) + c9 ; c3)) ^ <= (c7 ; (c1 ; c8) + (c8 ; (c1 ; c7) + (c8 ; (c2 ; c9) + (c9 ; c3 + c9 ; (c2 ; c8))))) ^)
    ]]></literal>
    <justification jstring="[back_rewrite(21),rewrite(28(20),5(19),29(20),28(46),5(45),29(46),29(47),28(46),5(45),29(46),29(48),29(47),29(46))].">
      <j1 rule="back_rewrite" parents="21"/>
      <j2 rule="rewrite" parents="28 5 29 28 5 29 29 28 5 29 29 29 29"/>
    </justification>
  </clause>

  <clause id="34">
    <literal><![CDATA[
      c4 <= 1
    ]]></literal>
    <literal><![CDATA[
      -((c7 ; (c1 ; c8) + (c8 ; (c2 ; c9) + c9 ; c3)) ^ <= (c7 ; (c1 ; c8) + (c8 ; (c1 ; c7) + (c8 ; (c2 ; c9) + (c9 ; c3 + c9 ; (c2 ; c8))))) ^)
    ]]></literal>
    <justification jstring="[back_rewrite(19),rewrite(28(18),5(17),29(18),28(44),5(43),29(44),29(45),28(44),5(43),29(44),29(46),29(45),29(44))].">
      <j1 rule="back_rewrite" parents="19"/>
      <j2 rule="rewrite" parents="28 5 29 28 5 29 29 28 5 29 29 29 29"/>
    </justification>
  </clause>

  <clause id="35">
    <literal><![CDATA[
      x ; (y ; (z ; u)) ^ <= x ; (y + (z + u)) ^
    ]]></literal>
    <justification jstring="[resolve(14,a,10,a)].">
      <j1 rule="resolve" parents="14 10"/>
    </justification>
  </clause>

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

  <clause id="37">
    <literal><![CDATA[
      (x + y) ^ <= (x + (z + (y + u))) ^
    ]]></literal>
    <justification jstring="[para(29(a,1),36(a,2,1,2))].">
      <j1 rule="para" parents="29 36"/>
    </justification>
  </clause>

  <clause id="38">
    <literal><![CDATA[
      (x + (y + z)) ^ <= (x + (u + (y + (z + v)))) ^
    ]]></literal>
    <justification jstring="[para(7(a,1),37(a,2,1,2,2))].">
      <j1 rule="para" parents="7 37"/>
    </justification>
  </clause>

  <clause id="39">
    <literal><![CDATA[
      c4 <= 1
    ]]></literal>
    <justification jstring="[back_unit_del(34),unit_del(b,38)].">
      <j1 rule="back_unit_del" parents="34"/>
      <j2 rule="unit_del" parents="38"/>
    </justification>
  </clause>

  <clause id="40">
    <literal><![CDATA[
      c4 ; c4 = c4
    ]]></literal>
    <justification jstring="[back_unit_del(33),unit_del(b,38)].">
      <j1 rule="back_unit_del" parents="33"/>
      <j2 rule="unit_del" parents="38"/>
    </justification>
  </clause>

  <clause id="41">
    <literal><![CDATA[
      c5 ; c5 = c5
    ]]></literal>
    <justification jstring="[back_unit_del(32),unit_del(b,38)].">
      <j1 rule="back_unit_del" parents="32"/>
      <j2 rule="unit_del" parents="38"/>
    </justification>
  </clause>

  <clause id="42">
    <literal><![CDATA[
      c6 ; c6 = c6
    ]]></literal>
    <justification jstring="[back_unit_del(31),unit_del(b,38)].">
      <j1 rule="back_unit_del" parents="31"/>
      <j2 rule="unit_del" parents="38"/>
    </justification>
  </clause>

  <clause id="43">
    <literal><![CDATA[
      -((c4 ; (c1 ; (c5 ; (c2 ; (c6 ; c3))))) ^ <= c4 ; (c4 ; (c1 ; c5) + (c5 ; (c2 ; c6) + c6 ; c3)) ^)
    ]]></literal>
    <justification jstring="[back_unit_del(30),unit_del(b,38)].">
      <j1 rule="back_unit_del" parents="30"/>
      <j2 rule="unit_del" parents="38"/>
    </justification>
  </clause>

  <clause id="44">
    <literal><![CDATA[
      -((c4 ; (c1 ; (c5 ; (c2 ; (c6 ; c3))))) ^ <= c4 ; (c4 ; (c1 ; (c5 ; (c5 ; (c2 ; (c6 ; (c6 ; c3))))))) ^)
    ]]></literal>
    <justification jstring="[ur(12,b,35,a,c,43,a),rewrite(9(27),9(26),9(28),9(27))].">
      <j1 rule="ur" parents="12 35 43"/>
      <j2 rule="rewrite" parents="9 9 9 9"/>
    </justification>
  </clause>

  <clause id="45">
    <literal><![CDATA[
      c4 ; (c4 ; x) ^ = (c4 ; x) ^
    ]]></literal>
    <justification jstring="[resolve(40,a,16,b),unit_del(a,39)].">
      <j1 rule="resolve" parents="40 16"/>
      <j2 rule="unit_del" parents="39"/>
    </justification>
  </clause>

  <clause id="46">
    <literal><![CDATA[
      -((c4 ; (c1 ; (c5 ; (c2 ; (c6 ; c3))))) ^ <= (c4 ; (c1 ; (c5 ; (c5 ; (c2 ; (c6 ; (c6 ; c3))))))) ^)
    ]]></literal>
    <justification jstring="[back_rewrite(44),rewrite(45(30))].">
      <j1 rule="back_rewrite" parents="44"/>
      <j2 rule="rewrite" parents="45"/>
    </justification>
  </clause>

  <clause id="47">
    <literal><![CDATA[
      c5 ; (c5 ; x) = c5 ; x
    ]]></literal>
    <justification jstring="[para(41(a,1),9(a,1,1)),flip(a)].">
      <j1 rule="para" parents="41 9"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="48">
    <literal><![CDATA[
      -((c4 ; (c1 ; (c5 ; (c2 ; (c6 ; c3))))) ^ <= (c4 ; (c1 ; (c5 ; (c2 ; (c6 ; (c6 ; c3)))))) ^)
    ]]></literal>
    <justification jstring="[back_rewrite(46),rewrite(47(25))].">
      <j1 rule="back_rewrite" parents="46"/>
      <j2 rule="rewrite" parents="47"/>
    </justification>
  </clause>

  <clause id="49">
    <literal><![CDATA[
      c6 ; (c6 ; x) = c6 ; x
    ]]></literal>
    <justification jstring="[para(42(a,1),9(a,1,1)),flip(a)].">
      <j1 rule="para" parents="42 9"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="50">
    <literal><![CDATA[
      $F
    ]]></literal>
    <justification jstring="[back_rewrite(48),rewrite(49(21)),unit_del(a,11)].">
      <j1 rule="back_rewrite" parents="48"/>
      <j2 rule="rewrite" parents="49"/>
      <j2 rule="unit_del" parents="11"/>
    </justification>
  </clause>

</proof>

</proofs>
