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

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

<proof number="1" length="32" max_count="35">

<comments><![CDATA[
% Proof 1 at 0.04 (+ 0.00) seconds: "(Lemma 4.3, 4 parts)".
% Length of proof is 32.
% Level of proof is 10.
% Maximum clause weight is 35.
% Given clauses 53.
]]></comments>

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

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

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

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

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

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

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

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

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

  <clause id="33" 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="34" 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="38" 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="40" type="assumption">
    <literal><![CDATA[
      (A => B) ^ B != B
    ]]></literal>
    <literal><![CDATA[
      (A v B) => B != A => B
    ]]></literal>
    <literal><![CDATA[
      A -> (B => C) != B => (A -> C)
    ]]></literal>
    <literal><![CDATA[
      A ^ (~ A => B) != A
    ]]></literal>
    <attribute><![CDATA[
      answer("(Lemma 4.3, 4 parts)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

  <clause id="242">
    <literal><![CDATA[
      ~ x => 0 = x
    ]]></literal>
    <justification jstring="[para(28(a,1),22(a,2))].">
      <j1 rule="para" parents="28 22"/>
    </justification>
  </clause>

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

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

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

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

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

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

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

  <clause id="756">
    <literal><![CDATA[
      x ^ (~ x => y) = x
    ]]></literal>
    <attribute><![CDATA[
      label("(4.8)")
    ]]></attribute>
    <justification jstring="[para(8(a,1),729(a,1,2))].">
      <j1 rule="para" parents="8 729"/>
    </justification>
  </clause>

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

  <clause id="787">
    <literal><![CDATA[
      (x => y) ^ y = y
    ]]></literal>
    <attribute><![CDATA[
      label("(3.13)")
    ]]></attribute>
    <justification jstring="[para(783(a,1),4(a,1)),flip(a)].">
      <j1 rule="para" parents="783 4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

  <clause id="888">
    <literal><![CDATA[
      (x v y) => y = x => y
    ]]></literal>
    <attribute><![CDATA[
      label("(4.6)")
    ]]></attribute>
    <justification jstring="[para(3(a,1),873(a,1,1))].">
      <j1 rule="para" parents="3 873"/>
    </justification>
  </clause>

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

  <clause id="1109">
    <literal><![CDATA[
      x -> (y => z) = y => (x -> z)
    ]]></literal>
    <attribute><![CDATA[
      label("(4.7)")
    ]]></attribute>
    <justification jstring="[para(1050(a,1),20(a,1)),flip(a)].">
      <j1 rule="para" parents="1050 20"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="1168">
    <literal><![CDATA[
      $F
    ]]></literal>
    <attribute><![CDATA[
      answer("(Lemma 4.3, 4 parts)")
    ]]></attribute>
    <justification jstring="[hyper(40,a,787,a,b,888,a,c,1109,a,d,756,a)].">
      <j1 rule="hyper" parents="40 787 888 1109 756"/>
    </justification>
  </clause>

</proof>

</proofs>
