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

<heading><![CDATA[
Prover9 (32) version Aug-2007, Aug 2007.
Process 16542 was started by dwheeler on dwheeler2-pc.itsd.ida.org,
Wed Nov 18 09:29:56 2009
The command was "prover9 -t 60 -f all-repeats.in".
]]></heading>

<proof number="1" length="30" max_count="34">

<comments><![CDATA[
% Proof 1 at 0.01 (+ 0.00) seconds: always_equal.
% Length of proof is 25.
% Level of proof is 7.
% Maximum clause weight is 31.
% Given clauses 11.
]]></comments>

  <clause id="1" type="assumption">
    <literal><![CDATA[
      portable_and_deterministic(A,B,C) & exactly_correspond(D,A,B,E) & exactly_correspond(F,A,B,V6) -> converttext(run(D,C,V7,E),E,V8) = converttext(run(F,C,V9,V6),V6,V8)
    ]]></literal>
    <attribute><![CDATA[
      label(define_portable_and_deterministic)
    ]]></attribute>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="2" type="assumption">
    <literal><![CDATA[
      accurately_translates(A,B,C,D,E,F) -> exactly_correspond(compile(C,A,D,E,F),C,B,F)
    ]]></literal>
    <attribute><![CDATA[
      label(define_exactly_correspond)
    ]]></attribute>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="3" type="assumption">
    <literal><![CDATA[
      (all A accurately_translates(cT,lsP,sP,A,e1,e2))
    ]]></literal>
    <attribute><![CDATA[
      label(cT_compiles_sP)
    ]]></attribute>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="4" type="goal">
    <literal><![CDATA[
      cA = stage2
    ]]></literal>
    <attribute><![CDATA[
      label(always_equal)
    ]]></attribute>
    <attribute><![CDATA[
      label(non_clause)
    ]]></attribute>
    <attribute><![CDATA[
      label(goal)
    ]]></attribute>
    <justification jstring="[goal].">
      <j1 rule="goal"/>
    </justification>
  </clause>

  <clause id="5" type="assumption">
    <literal><![CDATA[
      portable_and_deterministic(sP,lsP,retarget(sA,eArun))
    ]]></literal>
    <attribute><![CDATA[
      label(sP_portable_and_deterministic)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="6" type="clausify">
    <literal><![CDATA[
      -portable_and_deterministic(A,B,C)
    ]]></literal>
    <literal><![CDATA[
      -exactly_correspond(D,A,B,E)
    ]]></literal>
    <literal><![CDATA[
      -exactly_correspond(F,A,B,V6)
    ]]></literal>
    <literal><![CDATA[
      converttext(run(F,C,V7,V6),V6,V8) = converttext(run(D,C,V9,E),E,V8)
    ]]></literal>
    <attribute><![CDATA[
      label(define_portable_and_deterministic)
    ]]></attribute>
    <justification jstring="[clausify(1)].">
      <j1 rule="clausify" parents="1"/>
    </justification>
  </clause>

  <clause id="7" type="clausify">
    <literal><![CDATA[
      accurately_translates(cT,lsP,sP,A,e1,e2)
    ]]></literal>
    <attribute><![CDATA[
      label(cT_compiles_sP)
    ]]></attribute>
    <justification jstring="[clausify(3)].">
      <j1 rule="clausify" parents="3"/>
    </justification>
  </clause>

  <clause id="8" type="clausify">
    <literal><![CDATA[
      -accurately_translates(A,B,C,D,E,F)
    ]]></literal>
    <literal><![CDATA[
      exactly_correspond(compile(C,A,D,E,F),C,B,F)
    ]]></literal>
    <attribute><![CDATA[
      label(define_exactly_correspond)
    ]]></attribute>
    <justification jstring="[clausify(2)].">
      <j1 rule="clausify" parents="2"/>
    </justification>
  </clause>

  <clause id="9" type="assumption">
    <literal><![CDATA[
      exactly_correspond(cP,sP,lsP,eA)
    ]]></literal>
    <attribute><![CDATA[
      label(cP_corresponds_to_sP)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="10" type="assumption">
    <literal><![CDATA[
      compile(A,B,C,D,E) = extract(converttext(run(B,retarget(A,E),C,D),D,E))
    ]]></literal>
    <attribute><![CDATA[
      label(define_compile)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="11" type="assumption">
    <literal><![CDATA[
      stage1 = compile(sP,cT,e1effects,e1,e2)
    ]]></literal>
    <attribute><![CDATA[
      label(definition_stage1)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="12">
    <literal><![CDATA[
      stage1 = extract(converttext(run(cT,retarget(sP,e2),e1effects,e1),e1,e2))
    ]]></literal>
    <justification jstring="[para(10(a,1),11(a,2))].">
      <j1 rule="para" parents="10 11"/>
    </justification>
  </clause>

  <clause id="13">
    <literal><![CDATA[
      extract(converttext(run(cT,retarget(sP,e2),e1effects,e1),e1,e2)) = stage1
    ]]></literal>
    <justification jstring="[copy(12),flip(a)].">
      <j1 rule="copy" parents="12"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="14" type="assumption">
    <literal><![CDATA[
      stage2 = compile(sA,stage1,e2effects,e2,eArun)
    ]]></literal>
    <attribute><![CDATA[
      label(definition_stage2)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="15">
    <literal><![CDATA[
      stage2 = extract(converttext(run(stage1,retarget(sA,eArun),e2effects,e2),e2,eArun))
    ]]></literal>
    <justification jstring="[para(10(a,1),14(a,2))].">
      <j1 rule="para" parents="10 14"/>
    </justification>
  </clause>

  <clause id="16" type="assumption">
    <literal><![CDATA[
      cA = compile(sA,cP,eAeffects,eA,eArun)
    ]]></literal>
    <attribute><![CDATA[
      label(definition_cA)
    ]]></attribute>
    <justification jstring="[assumption].">
      <j1 rule="assumption"/>
    </justification>
  </clause>

  <clause id="17">
    <literal><![CDATA[
      cA = extract(converttext(run(cP,retarget(sA,eArun),eAeffects,eA),eA,eArun))
    ]]></literal>
    <justification jstring="[para(10(a,1),16(a,2))].">
      <j1 rule="para" parents="10 16"/>
    </justification>
  </clause>

  <clause id="18" type="deny">
    <literal><![CDATA[
      cA != stage2
    ]]></literal>
    <attribute><![CDATA[
      label(always_equal)
    ]]></attribute>
    <attribute><![CDATA[
      answer(always_equal)
    ]]></attribute>
    <justification jstring="[deny(4)].">
      <j1 rule="deny" parents="4"/>
    </justification>
  </clause>

  <clause id="19">
    <literal><![CDATA[
      extract(converttext(run(cP,retarget(sA,eArun),eAeffects,eA),eA,eArun)) != stage2
    ]]></literal>
    <justification jstring="[para(17(a,1),18(a,1))].">
      <j1 rule="para" parents="17 18"/>
    </justification>
  </clause>

  <clause id="20">
    <literal><![CDATA[
      extract(converttext(run(cP,retarget(sA,eArun),eAeffects,eA),eA,eArun)) != extract(converttext(run(stage1,retarget(sA,eArun),e2effects,e2),e2,eArun))
    ]]></literal>
    <justification jstring="[para(15(a,1),19(a,2))].">
      <j1 rule="para" parents="15 19"/>
    </justification>
  </clause>

  <clause id="21">
    <literal><![CDATA[
      extract(converttext(run(stage1,retarget(sA,eArun),e2effects,e2),e2,eArun)) != extract(converttext(run(cP,retarget(sA,eArun),eAeffects,eA),eA,eArun))
    ]]></literal>
    <justification jstring="[copy(20),flip(a)].">
      <j1 rule="copy" parents="20"/>
      <j2 rule="flip"/>
    </justification>
  </clause>

  <clause id="22">
    <literal><![CDATA[
      -exactly_correspond(A,sP,lsP,B)
    ]]></literal>
    <literal><![CDATA[
      -exactly_correspond(C,sP,lsP,D)
    ]]></literal>
    <literal><![CDATA[
      converttext(run(C,retarget(sA,eArun),E,D),D,F) = converttext(run(A,retarget(sA,eArun),V6,B),B,F)
    ]]></literal>
    <justification jstring="[resolve(5,a,6,a)].">
      <j1 rule="resolve" parents="5 6"/>
    </justification>
  </clause>

  <clause id="23">
    <literal><![CDATA[
      exactly_correspond(compile(sP,cT,A,e1,e2),sP,lsP,e2)
    ]]></literal>
    <justification jstring="[resolve(7,a,8,a)].">
      <j1 rule="resolve" parents="7 8"/>
    </justification>
  </clause>

  <clause id="24">
    <literal><![CDATA[
      exactly_correspond(extract(converttext(run(cT,retarget(sP,e2),A,e1),e1,e2)),sP,lsP,e2)
    ]]></literal>
    <justification jstring="[para(10(a,1),23(a,1))].">
      <j1 rule="para" parents="10 23"/>
    </justification>
  </clause>

  <clause id="25">
    <literal><![CDATA[
      exactly_correspond(stage1,sP,lsP,e2)
    ]]></literal>
    <justification jstring="[para(13(a,1),24(a,1))].">
      <j1 rule="para" parents="13 24"/>
    </justification>
  </clause>

  <clause id="26">
    <literal><![CDATA[
      -exactly_correspond(A,sP,lsP,B)
    ]]></literal>
    <literal><![CDATA[
      converttext(run(A,retarget(sA,eArun),C,B),B,D) = converttext(run(cP,retarget(sA,eArun),E,eA),eA,D)
    ]]></literal>
    <justification jstring="[resolve(22,a,9,a)].">
      <j1 rule="resolve" parents="22 9"/>
    </justification>
  </clause>

  <clause id="27">
    <literal><![CDATA[
      converttext(run(stage1,retarget(sA,eArun),A,e2),e2,B) = converttext(run(cP,retarget(sA,eArun),C,eA),eA,B)
    ]]></literal>
    <justification jstring="[resolve(26,a,25,a)].">
      <j1 rule="resolve" parents="26 25"/>
    </justification>
  </clause>

  <clause id="28">
    <literal><![CDATA[
      compile(sA,stage1,A,e2,eArun) = extract(converttext(run(cP,retarget(sA,eArun),B,eA),eA,eArun))
    ]]></literal>
    <justification jstring="[para(27(a,1),10(a,2,1))].">
      <j1 rule="para" parents="27 10"/>
    </justification>
  </clause>

  <clause id="29">
    <literal><![CDATA[
      extract(converttext(run(stage1,retarget(sA,eArun),A,e2),e2,eArun)) = extract(converttext(run(cP,retarget(sA,eArun),B,eA),eA,eArun))
    ]]></literal>
    <justification jstring="[para(10(a,1),28(a,1))].">
      <j1 rule="para" parents="10 28"/>
    </justification>
  </clause>

  <clause id="30">
    <literal><![CDATA[
      $F
    ]]></literal>
    <attribute><![CDATA[
      answer(always_equal)
    ]]></attribute>
    <justification jstring="[resolve(29,a,21,a)].">
      <j1 rule="resolve" parents="29 21"/>
    </justification>
  </clause>

</proof>

</proofs>
