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

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

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

<comments><![CDATA[
% Proof 1 at 0.10 (+ 0.02) seconds: "(Lemma 3.1, 5 parts)".
% Length of proof is 71.
% Level of proof is 13.
% Maximum clause weight is 39.
% Given clauses 87.
]]></comments>

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

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

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

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

  <clause id="12" 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="14" type="assumption">
    <literal><![CDATA[
      ~ ~ x = x
    ]]></literal>
    <attribute><![CDATA[
      label("(DN)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

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

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

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

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

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

  <clause id="40" type="assumption">
    <literal><![CDATA[
      (A ^ B) -> B != 1
    ]]></literal>
    <literal><![CDATA[
      (A ^ B) => B != 1
    ]]></literal>
    <literal><![CDATA[
      ~ A => ~ B != B => A
    ]]></literal>
    <literal><![CDATA[
      (A => B) ^ B != B
    ]]></literal>
    <literal><![CDATA[
      A => (A ^ B) != A => B
    ]]></literal>
    <attribute><![CDATA[
      answer("(Lemma 3.1, 5 parts)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  <clause id="874">
    <literal><![CDATA[
      (x ^ y) -> y = 1
    ]]></literal>
    <attribute><![CDATA[
      label("(3.10)")
    ]]></attribute>
    <justification jstring="[para(60(a,1),822(a,1,2))].">
      <j1 rule="para" parents="60 822"/>
    </justification>
  </clause>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  <clause id="1819">
    <literal><![CDATA[
      (x ^ y) => y = 1
    ]]></literal>
    <attribute><![CDATA[
      label("(3.11)")
    ]]></attribute>
    <justification jstring="[para(4(a,1),1808(a,1,1))].">
      <j1 rule="para" parents="4 1808"/>
    </justification>
  </clause>

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

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

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

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

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

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

  <clause id="2295">
    <literal><![CDATA[
      x => ~ y = y => ~ x
    ]]></literal>
    <justification jstring="[para(1548(a,1),296(a,1))].">
      <j1 rule="para" parents="1548 296"/>
    </justification>
  </clause>

  <clause id="2296">
    <literal><![CDATA[
      ~ x => ~ y = y => x
    ]]></literal>
    <attribute><![CDATA[
      label("(3.12)")
    ]]></attribute>
    <justification jstring="[para(14(a,1),2295(a,1,2)),flip(a)].">
      <j1 rule="para" parents="14 2295"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

  <clause id="2462">
    <literal><![CDATA[
      (x => y) ^ y = y
    ]]></literal>
    <attribute><![CDATA[
      label("(3.13)")
    ]]></attribute>
    <justification jstring="[para(2417(a,1),1205(a,1))].">
      <j1 rule="para" parents="2417 1205"/>
    </justification>
  </clause>

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

  <clause id="2655">
    <literal><![CDATA[
      x => (x ^ y) = x => y
    ]]></literal>
    <attribute><![CDATA[
      label("(3.14)")
    ]]></attribute>
    <justification jstring="[para(2601(a,1),27(a,1))].">
      <j1 rule="para" parents="2601 27"/>
    </justification>
  </clause>

  <clause id="2724">
    <literal><![CDATA[
      $F
    ]]></literal>
    <attribute><![CDATA[
      answer("(Lemma 3.1, 5 parts)")
    ]]></attribute>
    <justification jstring="[hyper(40,a,874,a,b,1819,a,c,2296,a,d,2462,a,e,2655,a)].">
      <j1 rule="hyper" parents="40 874 1819 2296 2462 2655"/>
    </justification>
  </clause>

</proof>

</proofs>
