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

<heading><![CDATA[
Prover9 (32) version March-2007, March 2007.
Process 21049 was started by mccune on cleo,
Mon Mar 19 17:02:55 2007
The command was "/home/mccune/bin/prover9 -f quot-general.in".
]]></heading>

<proof number="1" length="18" max_count="19">

<comments><![CDATA[
% Proof 1 at 0.20 (+ 0.00) seconds.
% Length of proof is 18.
% Level of proof is 6.
% Maximum clause weight is 19.
% Given clauses 86.
]]></comments>

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

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

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

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

  <clause id="5">
    <literal><![CDATA[
      x * g(y,x) * y = y * f(y,x) * x
    ]]></literal>
    <justification jstring="[copy(4),flip(a)].">
      <j1 rule="copy" parents="4"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="6" type="assumption">
    <literal><![CDATA[
      b * b0 = a * a0
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="7" type="assumption">
    <literal><![CDATA[
      d * b0 = c * a0
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="8" type="assumption">
    <literal><![CDATA[
      b * d0 = a * c0
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="9" type="assumption">
    <literal><![CDATA[
      d * d0 != c * c0
    ]]></literal>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

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

  <clause id="20">
    <literal><![CDATA[
      b * b0 * x = a * a0 * x
    ]]></literal>
    <justification jstring="[para(6(a,1),1(a,1,1)),rewrite(1(4)),flip(a)].">
      <j1 rule="para" parents="6 1"/>
      <j2 rule="rewrite" parents="1"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="23">
    <literal><![CDATA[
      d * b0 * x = c * a0 * x
    ]]></literal>
    <justification jstring="[para(7(a,1),1(a,1,1)),rewrite(1(4)),flip(a)].">
      <j1 rule="para" parents="7 1"/>
      <j2 rule="rewrite" parents="1"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="26">
    <literal><![CDATA[
      b * d0 * x = a * c0 * x
    ]]></literal>
    <justification jstring="[para(8(a,1),1(a,1,1)),rewrite(1(4)),flip(a)].">
      <j1 rule="para" parents="8 1"/>
      <j2 rule="rewrite" parents="1"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="39">
    <literal><![CDATA[
      a * a0 * g(x,b0) * x = b * x * f(x,b0) * b0
    ]]></literal>
    <justification jstring="[para(5(a,1),20(a,1,2)),flip(a)].">
      <j1 rule="para" parents="5 20"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="428">
    <literal><![CDATA[
      a0 * g(d0,b0) * d0 = c0 * f(d0,b0) * b0
    ]]></literal>
    <justification jstring="[hyper(2,a,26,a(flip),b,39,a),flip(a)].">
      <j1 rule="hyper" parents="2 26 39"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="449">
    <literal><![CDATA[
      d * d0 * f(d0,b0) * b0 = c * c0 * f(d0,b0) * b0
    ]]></literal>
    <justification jstring="[para(428(a,1),23(a,2,2)),rewrite(5(8))].">
      <j1 rule="para" parents="428 23"/>
      <j2 rule="rewrite" parents="5"/>
    </justification>
  </clause>

  <clause id="1019">
    <literal><![CDATA[
      d * d0 = c * c0
    ]]></literal>
    <justification jstring="[hyper(11,a,449,a,b,1,a)].">
      <j1 rule="hyper" parents="11 449 1"/>
    </justification>
  </clause>

  <clause id="1020">
    <literal><![CDATA[
      $F
    ]]></literal>
    <justification jstring="[resolve(1019,a,9,a)].">
      <j1 rule="resolve" parents="1019 9"/>
    </justification>
  </clause>

</proof>

</proofs>
