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

<heading><![CDATA[
Prover9 (64) version Aug-2007, Aug 2007.
Process 32375 was started by veroff on io,
Mon Jan 21 11:14:43 2008
The command was "prover9 -f 3.2.in".
]]></heading>

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

<comments><![CDATA[
% Proof 1 at 0.05 (+ 0.01) seconds: "(3.15)".
% Length of proof is 39.
% Level of proof is 8.
% Maximum clause weight is 15.
% Given clauses 62.
]]></comments>

  <clause id="1" type="goal">
    <literal><![CDATA[
      x => (x => y) = x -> y
    ]]></literal>
    <attribute><![CDATA[
      label("(3.15)")
    ]]></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="5" type="assumption">
    <literal><![CDATA[
      x ^ y = y ^ x
    ]]></literal>
    <attribute><![CDATA[
      label("(D4)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

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

  <clause id="20" type="assumption">
    <literal><![CDATA[
      x ^ (~ x v y) = x ^ (x -> y)
    ]]></literal>
    <attribute><![CDATA[
      label("(N4)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

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

  <clause id="28">
    <literal><![CDATA[
      (x -> y) ^ (~ y -> ~ x) = x => y
    ]]></literal>
    <justification jstring="[copy(27),flip(a)].">
      <j1 rule="copy" parents="27"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

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

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

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

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

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

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

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

  <clause id="380">
    <literal><![CDATA[
      x -> ((x -> y) ^ z) = (x -> y) ^ (x -> z)
    ]]></literal>
    <justification jstring="[para(33(a,1),21(a,1,1)),flip(a)].">
      <j1 rule="para" parents="33 21"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="574">
    <literal><![CDATA[
      (x ^ y) => x = 1
    ]]></literal>
    <justification jstring="[para(5(a,1),42(a,1,1))].">
      <j1 rule="para" parents="5 42"/>
    </justification>
  </clause>

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

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

  <clause id="619">
    <literal><![CDATA[
      x => (x ^ (x -> y)) = x => (~ x v y)
    ]]></literal>
    <justification jstring="[para(20(a,1),45(a,1,2))].">
      <j1 rule="para" parents="20 45"/>
    </justification>
  </clause>

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

  <clause id="666">
    <literal><![CDATA[
      (x => y) => (x -> y) = 1
    ]]></literal>
    <justification jstring="[para(28(a,1),574(a,1,1))].">
      <j1 rule="para" parents="28 574"/>
    </justification>
  </clause>

  <clause id="670">
    <literal><![CDATA[
      x => (y => x) = 1
    ]]></literal>
    <justification jstring="[para(44(a,1),574(a,1,1))].">
      <j1 rule="para" parents="44 574"/>
    </justification>
  </clause>

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

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

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

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

  <clause id="805">
    <literal><![CDATA[
      x => (x -> y) = x -> y
    ]]></literal>
    <justification jstring="[hyper(40,a,670,a,b,745,a),flip(a)].">
      <j1 rule="hyper" parents="40 670 745"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

  <clause id="908">
    <literal><![CDATA[
      x => (~ x v y) = x => (x -> y)
    ]]></literal>
    <justification jstring="[para(619(a,1),45(a,1))].">
      <j1 rule="para" parents="619 45"/>
    </justification>
  </clause>

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

  <clause id="982">
    <literal><![CDATA[
      x -> (x => y) = x => (x => y)
    ]]></literal>
    <justification jstring="[para(776(a,1),953(a,1,2)),flip(a)].">
      <j1 rule="para" parents="776 953"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1052">
    <literal><![CDATA[
      x -> ((x -> y) ^ z) = x -> (y ^ z)
    ]]></literal>
    <justification jstring="[para(21(a,1),380(a,2))].">
      <j1 rule="para" parents="21 380"/>
    </justification>
  </clause>

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

  <clause id="1249">
    <literal><![CDATA[
      x -> (x => y) = x -> y
    ]]></literal>
    <justification jstring="[para(857(a,1),1149(a,1,2)),flip(a)].">
      <j1 rule="para" parents="857 1149"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1312">
    <literal><![CDATA[
      x => (x => y) = x -> y
    ]]></literal>
    <justification jstring="[para(1249(a,1),982(a,1)),flip(a)].">
      <j1 rule="para" parents="1249 982"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1313">
    <literal><![CDATA[
      $F
    ]]></literal>
    <attribute><![CDATA[
      answer("(3.15)")
    ]]></attribute>
    <justification jstring="[resolve(1312,a,46,a)].">
      <j1 rule="resolve" parents="1312 46"/>
    </justification>
  </clause>

</proof>

</proofs>
