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

<heading><![CDATA[
Prover9 (64) version Aug-2007, Aug 2007.
Process 26314 was started by veroff on titan,
Sat Jan 19 14:19:06 2008
The command was "prover9 -f 4.8.in".
]]></heading>

<proof number="1" length="43" max_count="17">

<comments><![CDATA[
% Proof 1 at 0.09 (+ 0.00) seconds: "(N6)".
% Length of proof is 43.
% Level of proof is 14.
% Maximum clause weight is 17.
% Given clauses 70.
]]></comments>

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

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

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

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

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

  <clause id="35" 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="37" 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="38" 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="41" 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="43" type="assumption">
    <literal><![CDATA[
      x -> (y => z) = y => (x -> z)
    ]]></literal>
    <attribute><![CDATA[
      label("(4.7)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

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

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

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

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

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

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

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

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

  <clause id="787">
    <literal><![CDATA[
      x v (y => x) = y => x
    ]]></literal>
    <justification jstring="[para(41(a,1),69(a,1,1))].">
      <j1 rule="para" parents="41 69"/>
    </justification>
  </clause>

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

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

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

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

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

  <clause id="1235">
    <literal><![CDATA[
      (x v y) -> (x -> z) = x -> z
    ]]></literal>
    <justification jstring="[para(1172(a,1),678(a,1))].">
      <j1 rule="para" parents="1172 678"/>
    </justification>
  </clause>

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

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

  <clause id="1402">
    <literal><![CDATA[
      x => (y => (x => (y => z))) = (x * y) -> z
    ]]></literal>
    <justification jstring="[para(144(a,1),15(a,1)),flip(a)].">
      <j1 rule="para" parents="144 15"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1560">
    <literal><![CDATA[
      x => (x => (y -> z)) = (x * y) -> z
    ]]></literal>
    <justification jstring="[para(370(a,1),1402(a,1,2))].">
      <j1 rule="para" parents="370 1402"/>
    </justification>
  </clause>

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

  <clause id="1794">
    <literal><![CDATA[
      x -> (y -> ((y => x) -> z)) = (y * (y => x)) -> z
    ]]></literal>
    <justification jstring="[para(1587(a,1),1286(a,1,2))].">
      <j1 rule="para" parents="1587 1286"/>
    </justification>
  </clause>

  <clause id="1878">
    <literal><![CDATA[
      x -> (y -> ((x => y) -> z)) = (x * (x => y)) -> z
    ]]></literal>
    <justification jstring="[para(1794(a,1),1172(a,1)),flip(a)].">
      <j1 rule="para" parents="1794 1172"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1971">
    <literal><![CDATA[
      (x * (x => y)) -> z = x -> (y -> z)
    ]]></literal>
    <justification jstring="[para(983(a,1),1878(a,1,2)),flip(a)].">
      <j1 rule="para" parents="983 1878"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

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

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

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

  <clause id="2404">
    <literal><![CDATA[
      $F
    ]]></literal>
    <attribute><![CDATA[
      answer("(N6)")
    ]]></attribute>
    <justification jstring="[resolve(2403,a,50,a)].">
      <j1 rule="resolve" parents="2403 50"/>
    </justification>
  </clause>

</proof>

</proofs>
