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

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

<proof number="1" length="95" max_count="27">

<comments><![CDATA[
% Proof 1 at 0.32 (+ 0.01) seconds: "(BCK1')".
% Length of proof is 95.
% Level of proof is 24.
% Maximum clause weight is 27.
% Given clauses 106.
]]></comments>

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

  <clause id="3" 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="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="7" 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="11" type="assumption">
    <literal><![CDATA[
      x ^ 1 = x
    ]]></literal>
    <attribute><![CDATA[
      label("(D10)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </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="14" type="assumption">
    <literal><![CDATA[
      ~ x ^ ~ y = ~ (x v y)
    ]]></literal>
    <attribute><![CDATA[
      label("(DM2)")
    ]]></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="18" type="assumption">
    <literal><![CDATA[
      x -> x = 1
    ]]></literal>
    <attribute><![CDATA[
      label("(N2)")
    ]]></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="22" 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="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="29" type="assumption">
    <literal><![CDATA[
      x -> 1 = 1
    ]]></literal>
    <attribute><![CDATA[
      label("(3.1)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

  <clause id="32" type="assumption">
    <literal><![CDATA[
      x -> (y -> z) = y -> (x -> z)
    ]]></literal>
    <attribute><![CDATA[
      label("(3.4)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </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="35" 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="36" type="assumption">
    <literal><![CDATA[
      x -> ~ (x -> y) = x -> ~ y
    ]]></literal>
    <attribute><![CDATA[
      label("(3.8)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="37" type="assumption">
    <literal><![CDATA[
      ~ (x -> y) -> z = x -> (~ y -> z)
    ]]></literal>
    <attribute><![CDATA[
      label("(3.9)")
    ]]></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="41" type="assumption">
    <literal><![CDATA[
      (x ^ y) -> y = 1
    ]]></literal>
    <attribute><![CDATA[
      label("(3.10)")
    ]]></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="46" type="assumption">
    <literal><![CDATA[
      x => (x => y) = x -> y
    ]]></literal>
    <attribute><![CDATA[
      label("(3.15)")
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

  <clause id="66">
    <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="67">
    <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="72">
    <literal><![CDATA[
      x ^ (y v x) = x
    ]]></literal>
    <justification jstring="[para(4(a,1),7(a,1,2))].">
      <j1 rule="para" parents="4 7"/>
    </justification>
  </clause>

  <clause id="253">
    <literal><![CDATA[
      ~ x -> (~ y -> z) = ~ (x v y) -> z
    ]]></literal>
    <justification jstring="[para(14(a,1),22(a,1,1)),flip(a)].">
      <j1 rule="para" parents="14 22"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

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

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

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

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

  <clause id="575">
    <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="602">
    <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="656">
    <literal><![CDATA[
      x -> (x => y) = x => (x -> y)
    ]]></literal>
    <justification jstring="[para(46(a,1),46(a,1,2)),flip(a)].">
      <j1 rule="para" parents="46 46"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  <clause id="2795">
    <literal><![CDATA[
      ~ (x v (y => x)) -> z = ~ x -> (y -> z)
    ]]></literal>
    <justification jstring="[para(2568(a,1),253(a,1)),flip(a)].">
      <j1 rule="para" parents="2568 253"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

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

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

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

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

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

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

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

  <clause id="4132">
    <literal><![CDATA[
      (x => (y => (z -> u))) ^ (x -> (~ (y => u) -> ~ z)) = z => (x => (y => u))
    ]]></literal>
    <justification jstring="[para(3724(a,1),4009(a,1,1,2))].">
      <j1 rule="para" parents="3724 4009"/>
    </justification>
  </clause>

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

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

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

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

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

  <clause id="4927">
    <literal><![CDATA[
      (x => (y => (z -> u))) ^ (x -> (y -> (~ u -> ~ z))) = z => (x => (y => u))
    ]]></literal>
    <justification jstring="[para(3008(a,1),4132(a,1,2,2))].">
      <j1 rule="para" parents="3008 4132"/>
    </justification>
  </clause>

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

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

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

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

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

  <clause id="6009">
    <literal><![CDATA[
      1 ^ (x -> 1) = 1
    ]]></literal>
    <justification jstring="[para(5811(a,1),754(a,1))].">
      <j1 rule="para" parents="5811 754"/>
    </justification>
  </clause>

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

  <clause id="6164">
    <literal><![CDATA[
      $F
    ]]></literal>
    <attribute><![CDATA[
      answer("(BCK1')")
    ]]></attribute>
    <justification jstring="[resolve(6163,a,47,a)].">
      <j1 rule="resolve" parents="6163 47"/>
    </justification>
  </clause>

</proof>

</proofs>
