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

<heading><![CDATA[
Prover9 (32) version April-2007, April 2007.
Process 26455 was started by mccune on cleo,
Fri Apr 13 09:14:38 2007
The command was "/home/mccune/bin/prover9 -f qg1.in".
]]></heading>

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

<comments><![CDATA[
% Proof 1 at 0.01 (+ 0.00) seconds.
% Length of proof is 27.
% Level of proof is 12.
% Maximum clause weight is 15.
% Given clauses 26.
]]></comments>

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

  <clause id="2" type="assumption">
    <literal><![CDATA[
      x * (x \ y) = y
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="3" type="assumption">
    <literal><![CDATA[
      x \ (x * y) = y
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="4" type="assumption">
    <literal><![CDATA[
      (x / y) * y = x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="5" type="assumption">
    <literal><![CDATA[
      (x * y) / y = x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="6" type="assumption">
    <literal><![CDATA[
      x * (y * (y * x)) = y * x
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="7" type="deny">
    <literal><![CDATA[
      c1 * (c1 * c2) != c2 * c1
    ]]></literal>
    <justification jstring="[deny(1)].">
      <j1 rule="deny" parents="1"/>
    </justification>
  </clause>

  <clause id="8">
    <literal><![CDATA[
      c2 * c1 != c1 * (c1 * c2)
    ]]></literal>
    <justification jstring="[copy(7),flip(a)].">
      <j1 rule="copy" parents="7"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

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

  <clause id="11">
    <literal><![CDATA[
      (x \ y) * (x * y) = y
    ]]></literal>
    <justification jstring="[para(2(a,1),6(a,1,2,2)),rewrite(2(5))].">
      <j1 rule="para" parents="2 6"/>
      <j2 rule="rewrite" parents="2"/>
    </justification>
  </clause>

  <clause id="13">
    <literal><![CDATA[
      x * ((y / x) * y) = y
    ]]></literal>
    <justification jstring="[para(4(a,1),6(a,1,2,2)),rewrite(4(5))].">
      <j1 rule="para" parents="4 6"/>
      <j2 rule="rewrite" parents="4"/>
    </justification>
  </clause>

  <clause id="14">
    <literal><![CDATA[
      (x * y) / (x * (x * y)) = y
    ]]></literal>
    <justification jstring="[para(6(a,1),5(a,1,1))].">
      <j1 rule="para" parents="6 5"/>
    </justification>
  </clause>

  <clause id="15">
    <literal><![CDATA[
      (x * (x * y)) * (y * (x * y)) = x * y
    ]]></literal>
    <justification jstring="[para(6(a,1),6(a,1,2,2)),rewrite(6(8))].">
      <j1 rule="para" parents="6 6"/>
      <j2 rule="rewrite" parents="6"/>
    </justification>
  </clause>

  <clause id="20">
    <literal><![CDATA[
      x \ y = y / (x * y)
    ]]></literal>
    <justification jstring="[para(11(a,1),5(a,1,1)),flip(a)].">
      <j1 rule="para" parents="11 5"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="25">
    <literal><![CDATA[
      x / ((x / y) * x) = y
    ]]></literal>
    <justification jstring="[back_rewrite(9),rewrite(20(2))].">
      <j1 rule="back_rewrite" parents="9"/>
      <j2 rule="rewrite" parents="20"/>
    </justification>
  </clause>

  <clause id="28">
    <literal><![CDATA[
      ((x / y) * x) * (y * x) = x
    ]]></literal>
    <justification jstring="[para(13(a,1),6(a,1,2,2)),rewrite(13(7))].">
      <j1 rule="para" parents="13 6"/>
      <j2 rule="rewrite" parents="13"/>
    </justification>
  </clause>

  <clause id="30">
    <literal><![CDATA[
      x / (y * x) = (x / y) * x
    ]]></literal>
    <justification jstring="[para(13(a,1),14(a,1,1)),rewrite(13(3))].">
      <j1 rule="para" parents="13 14"/>
      <j2 rule="rewrite" parents="13"/>
    </justification>
  </clause>

  <clause id="31">
    <literal><![CDATA[
      (x / (x / y)) * x = y
    ]]></literal>
    <justification jstring="[back_rewrite(25),rewrite(30(3))].">
      <j1 rule="back_rewrite" parents="25"/>
      <j2 rule="rewrite" parents="30"/>
    </justification>
  </clause>

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

  <clause id="36">
    <literal><![CDATA[
      (x / y) * (y / x) = y
    ]]></literal>
    <justification jstring="[para(34(a,1),4(a,1,1))].">
      <j1 rule="para" parents="34 4"/>
    </justification>
  </clause>

  <clause id="37">
    <literal><![CDATA[
      (x * y) / x = (y / x) * y
    ]]></literal>
    <justification jstring="[para(5(a,1),34(a,1,2)),rewrite(30(4))].">
      <j1 rule="para" parents="5 34"/>
      <j2 rule="rewrite" parents="30"/>
    </justification>
  </clause>

  <clause id="49">
    <literal><![CDATA[
      ((x / y) * x) * y = y * x
    ]]></literal>
    <justification jstring="[para(5(a,1),36(a,1,2)),rewrite(30(2))].">
      <j1 rule="para" parents="5 36"/>
      <j2 rule="rewrite" parents="30"/>
    </justification>
  </clause>

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

  <clause id="91">
    <literal><![CDATA[
      (x * (y / x)) * x = x * y
    ]]></literal>
    <justification jstring="[para(49(a,1),15(a,2)),rewrite(87(2),87(4),87(8),15(11))].">
      <j1 rule="para" parents="49 15"/>
      <j2 rule="rewrite" parents="87 87 87 15"/>
    </justification>
  </clause>

  <clause id="93">
    <literal><![CDATA[
      (x * (y / x)) * (x * y) = y
    ]]></literal>
    <justification jstring="[para(28(a,1),49(a,2)),rewrite(87(3),87(6),87(9),91(10))].">
      <j1 rule="para" parents="28 49"/>
      <j2 rule="rewrite" parents="87 87 87 91"/>
    </justification>
  </clause>

  <clause id="97">
    <literal><![CDATA[
      x * (x * y) = y * x
    ]]></literal>
    <justification jstring="[para(37(a,1),49(a,1,1,1)),rewrite(87(2),93(4)),flip(a)].">
      <j1 rule="para" parents="37 49"/>
      <j2 rule="rewrite" parents="87 93"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="98">
    <literal><![CDATA[
      $F
    ]]></literal>
    <justification jstring="[resolve(97,a,8,a(flip))].">
      <j1 rule="resolve" parents="97 8"/>
    </justification>
  </clause>

</proof>

</proofs>
