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

<heading><![CDATA[
Prover9 (64) version 2008-06A, June 2008.
Process 23428 was started by veroff on pengy,
Tue Jul  8 08:19:51 2008
The command was "prover9 -f 5.5.in".
]]></heading>

<proof number="1" length="34" max_count="20">

<comments><![CDATA[
% Proof 1 at 0.17 (+ 0.01) seconds: "N".
% Length of proof is 34.
% Level of proof is 14.
% Maximum clause weight is 20.
% Given clauses 52.
]]></comments>

  <clause id="1" type="goal">
    <literal><![CDATA[
      (x => (x => y)) ^ (~ y => (~ y => ~ x)) = x => y
    ]]></literal>
    <attribute><![CDATA[
      label("N")
    ]]></attribute>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <attribute><![CDATA[
      label(goal)
    ]]></attribute>
    <justification jstring="[goal].">
      <j1 rule="goal"/>
    </justification>
  </clause>

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

  <clause id="12" type="assumption">
    <literal><![CDATA[
      x * 1 = x
    ]]></literal>
    <attribute><![CDATA[
      label("(M1)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="20" type="assumption">
    <literal><![CDATA[
      ~ x = x => 0
    ]]></literal>
    <attribute><![CDATA[
      label("(~ def)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="21">
    <literal><![CDATA[
      x => 0 = ~ x
    ]]></literal>
    <justification jstring="[copy(20),flip(a)].">
      <j1 rule="copy" parents="20"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="25" type="assumption">
    <literal><![CDATA[
      ~ ~ x = x
    ]]></literal>
    <attribute><![CDATA[
      label("(DN)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

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

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

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

  <clause id="34" type="assumption">
    <literal><![CDATA[
      (x * (x => y)) v y = y
    ]]></literal>
    <attribute><![CDATA[
      label("(4.3)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

  <clause id="37" type="deny">
    <literal><![CDATA[
      c1 => c2 != (c1 => (c1 => c2)) ^ (~ c2 => (~ c2 => ~ c1))
    ]]></literal>
    <attribute><![CDATA[
      label("N")
    ]]></attribute>
    <attribute><![CDATA[
      answer("N")
    ]]></attribute>
    <justification jstring="[deny(1)].">
      <j1 rule="deny" parents="1"/>
    </justification>
  </clause>

  <clause id="38">
    <literal><![CDATA[
      (c1 => (c1 => c2)) ^ (~ c2 => (~ c2 => ~ c1)) != c1 => c2
    ]]></literal>
    <attribute><![CDATA[
      answer("N")
    ]]></attribute>
    <justification jstring="[copy(37),flip(a)].">
      <j1 rule="copy" parents="37"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="959">
    <literal><![CDATA[
      x => (y => 0) = y => ~ x
    ]]></literal>
    <justification jstring="[para(21(a,1),31(a,1,2)),flip(a)].">
      <j1 rule="para" parents="21 31"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

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

  <clause id="1609">
    <literal><![CDATA[
      (x => y) v (y * 1) = x => y
    ]]></literal>
    <justification jstring="[para(30(a,1),1137(a,1,2,2))].">
      <j1 rule="para" parents="30 1137"/>
    </justification>
  </clause>

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

  <clause id="1691">
    <literal><![CDATA[
      x => ~ y = y => ~ x
    ]]></literal>
    <justification jstring="[para(21(a,1),959(a,1,2))].">
      <j1 rule="para" parents="21 959"/>
    </justification>
  </clause>

  <clause id="1766">
    <literal><![CDATA[
      ~ x => ~ y = y => x
    ]]></literal>
    <justification jstring="[para(25(a,1),1691(a,1,2)),flip(a)].">
      <j1 rule="para" parents="25 1691"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

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

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

  <clause id="2752">
    <literal><![CDATA[
      x => (((x => (x => y)) ^ (~ y => (x => y))) => y) = 1
    ]]></literal>
    <justification jstring="[para(1766(a,1),967(a,1,2,1,2,2))].">
      <j1 rule="para" parents="1766 967"/>
    </justification>
  </clause>

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

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

  <clause id="3330">
    <literal><![CDATA[
      x => ((x => ((x v ~ y) => y)) => y) = 1
    ]]></literal>
    <justification jstring="[para(35(a,1),3122(a,1,2,1,2))].">
      <j1 rule="para" parents="35 3122"/>
    </justification>
  </clause>

  <clause id="3539">
    <literal><![CDATA[
      (x => y) v ((x => ((x v ~ y) => y)) * 1) = x => y
    ]]></literal>
    <justification jstring="[para(3330(a,1),1612(a,1,2,2))].">
      <j1 rule="para" parents="3330 1612"/>
    </justification>
  </clause>

  <clause id="3602">
    <literal><![CDATA[
      (x => y) v (x => ((x v ~ y) => y)) = x => y
    ]]></literal>
    <justification jstring="[para(12(a,1),3539(a,1,2))].">
      <j1 rule="para" parents="12 3539"/>
    </justification>
  </clause>

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

  <clause id="4142">
    <literal><![CDATA[
      (x => (x => y)) ^ (~ y => (x => y)) = x => y
    ]]></literal>
    <justification jstring="[para(3999(a,1),35(a,2))].">
      <j1 rule="para" parents="3999 35"/>
    </justification>
  </clause>

  <clause id="4417">
    <literal><![CDATA[
      (x => (x => y)) ^ (~ y => (~ y => ~ x)) = x => y
    ]]></literal>
    <justification jstring="[para(1766(a,2),4142(a,1,2,2))].">
      <j1 rule="para" parents="1766 4142"/>
    </justification>
  </clause>

  <clause id="4418">
    <literal><![CDATA[
      $F
    ]]></literal>
    <attribute><![CDATA[
      answer("N")
    ]]></attribute>
    <justification jstring="[resolve(4417,a,38,a)].">
      <j1 rule="resolve" parents="4417 38"/>
    </justification>
  </clause>

</proof>

</proofs>
