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

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

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

<comments><![CDATA[
% Proof 1 at 0.04 (+ 0.00) seconds: "(P)".
% Length of proof is 18.
% Level of proof is 6.
% Maximum clause weight is 15.
% Given clauses 54.
]]></comments>

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

  <clause id="13" type="assumption">
    <literal><![CDATA[
      ~ x v ~ y = ~ (x ^ y)
    ]]></literal>
    <attribute><![CDATA[
      label("(DM1)")
    ]]></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="25" type="assumption">
    <literal><![CDATA[
      x * y = ~ (x -> ~ y) v ~ (y -> ~ x)
    ]]></literal>
    <attribute><![CDATA[
      label("(* def)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="26">
    <literal><![CDATA[
      ~ (x -> ~ y) v ~ (y -> ~ x) = x * y
    ]]></literal>
    <justification jstring="[copy(25),flip(a)].">
      <j1 rule="copy" parents="25"/>
      <j2 rule="flip"/>
    </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="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="51" 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="53" type="deny">
    <literal><![CDATA[
      (c1 * c2) => c3 != c1 => (c2 => c3)
    ]]></literal>
    <attribute><![CDATA[
      label("(P)")
    ]]></attribute>
    <attribute><![CDATA[
      answer("(P)")
    ]]></attribute>
    <justification jstring="[deny(1)].">
      <j1 rule="deny" parents="1"/>
    </justification>
  </clause>

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

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

  <clause id="593">
    <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="725">
    <literal><![CDATA[
      ~ x => (y => ~ z) = y => (z => x)
    ]]></literal>
    <justification jstring="[para(43(a,1),51(a,1,2)),flip(a)].">
      <j1 rule="para" parents="43 51"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="931">
    <literal><![CDATA[
      ~ (x => ~ y) = x * y
    ]]></literal>
    <justification jstring="[para(309(a,1),288(a,1,1))].">
      <j1 rule="para" parents="309 288"/>
    </justification>
  </clause>

  <clause id="960">
    <literal><![CDATA[
      ~ x => (y => ~ z) = (y * z) => x
    ]]></literal>
    <justification jstring="[para(931(a,1),593(a,1,1)),flip(a)].">
      <j1 rule="para" parents="931 593"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1007">
    <literal><![CDATA[
      (x * y) => z = x => (y => z)
    ]]></literal>
    <justification jstring="[para(960(a,1),725(a,1))].">
      <j1 rule="para" parents="960 725"/>
    </justification>
  </clause>

  <clause id="1008">
    <literal><![CDATA[
      $F
    ]]></literal>
    <attribute><![CDATA[
      answer("(P)")
    ]]></attribute>
    <justification jstring="[resolve(1007,a,53,a)].">
      <j1 rule="resolve" parents="1007 53"/>
    </justification>
  </clause>

</proof>

</proofs>
