%Patch files loaded: patch2 version 2.414 $$$pvs-strategies (defstep simp () (then (flatten)(assert)(simplify)(flatten)) " Flatten, assert, simplify" " ") (defstep LazyGrind () (then (grind$ :if-match nil)(grind$)) " Grind with the instantiation postponed to the end" " ") (defstep MyGrind () (grind$ :if-match nil) " Grind with no instantiation" " ") (defstep coreIO () (then* (skosimp*) (auto-rewrite-theory "InOrder[N,R,U,Z,B]") (auto-rewrite-theory "InOrderProp") (assert) (skosimp*) (assert) (inst?) (apply (then* (repeat (lift-if)) (bddsimp) (assert)))) " " " " ) (defstep expand-out (&optional (inv nil)) (then (EXPAND "PredInv")(EXPAND "rho")(EXPAND inv) (SKOSIMP*) (REPLACE*) (simp) (HIDE -4 -5 -6 -7) ) "Expands out the definitions, and rho, replaces and hides " " " ) (defstep expand-out-prop (&optional (inv nil)(dir +)) (then (EXPAND "rho")(expand "TomInvariants")(skosimp*) (expand inv dir)(skosimp*)(replace*)(simp)(hide -4 -5 -6 -7)) "Expands out the defintions, and rho, replaces and hides. The optional invariant is only expanded in succeedents, or as specified by dir" " " ) (defstep do-rewrites (&optional (toexpand nil)) (apply (then (AUTO-REWRITE-THEORY "TomPropRewrite") (expand toexpand)(SIMP) (SIMPLIFY-WITH-REWRITES :DEFS T :EXCLUDE "FUn") (auto-rewrite-ante)(assert))) "Rewrites using theory TomPropRewrite, expands an optional statement, simplifies, then SIMPLIFY-WITH-REWRITES" " Rewrites using theory TomPropRewrite, expands an optional statement, simplifies, then SIMPLIFY-WITH-REWRITES" ) (defstep lift-split(&optional (num +)) (then (lift-if +)(split num)(simp)(replace*)(simp)) "Lift, split, replace and simplify " " " ) (defstep instbest (&optional (fnum *)) (then (inst? fnum :if-match best)) "Applies inst? :if-match best to the optional line number (num, +, -)" " " ) (defstep lazy-grind (&optional (if-match t) (defs !) rewrites theories exclude (updates? t)) (then (grind$ :if-match nil :defs defs :rewrites rewrites :theories theories :exclude exclude :updates? updates?) (reduce$ :if-match if-match :updates? updates?)) "Equiv. to (grind) with the instantiations postponed until after simplification." "By skolemization, if-lifting, simplification and instantiation") (defstep stew (&optional lazy-match (if-match t) (defs !) rewrites theories exclude (updates? t) &rest lemmas) (then (if lemmas (let ((lemmata (if (listp lemmas) lemmas (list lemmas))) (x `(then ,@(loop for lemma in lemmata append `((skosimp*)(use ,lemma)))))) x) (skip)) (if lazy-match (then (grind$ :if-match nil :defs defs :rewrites rewrites :theories theories :exclude exclude :updates? updates?) (reduce$ :if-match if-match :updates? updates?)) (grind$ :if-match if-match :defs defs :rewrites rewrites :theories theories :exclude exclude :updates? updates?))) "Does a combination of (lemma) and (grind)." "~%Grinding away with the supplied lemmas,") (defstep split-if (&optional (fnum *)) (then (lift-if) (let ((fnums (gather-fnums (s-forms (current-goal *ps*)) fnum nil #'(lambda (sform) (or (branch? (formula sform)) (and (negation? (formula sform)) (branch? (args1 (formula sform)))))))) (fnum (when fnums (car fnums)))) (if fnum (split fnum) (skip-msg "No IF-THEN-ELSE in the sequent.")))) "Applies LIFT-IF and splits only an IF-THEN-ELSE sequent formula in the result." "Lifting IF-THEN-ELSEs and splitting on an IF-THEN-ELSE") (defstep split-if-new (&optional (fnum *)) (try (lift-if fnum) (let ((newfnum (car *new-fmla-nums*))) (if newfnum (then (split newfnum)(split-if-new$ fnum)) (skip-msg "No IF-THEN-ELSE in the sequent."))) (skip-msg "Nothing to lift-if.")) "Applies LIFT-IF and splits only an IF-THEN-ELSE sequent formula in the result." "Lifting IF-THEN-ELSEs and splitting on an IF-THEN-ELSE") (defstep new-split-if (&optional (fnum +)) (then (split-if fnum)(simp)(replace*)(simp)) "Lift, split, replace and simplify " " " ) (defstep simp-split (&optional (fnum +)) (then (lift-if)(then (split fnum)(simp))) "lift-if, split, simp" "lift-if, split, simp" ) (defstep rewrite-all (fnums) (let ((fnum (car fnums)) (rems (cdr fnums))) (if fnum (then (auto-rewrite fnum)(rewrite-all$ rems)) (skip-msg "Auto-rewrote all formulae"))) " " " " ) (defstep auto-rewrite-ante (&optional (exclude nil)) (let ( ;(fmla (formula sform)) ( fnums (gather-fnums (s-forms (current-goal *ps*)) * exclude #'(lambda (sform) (and (negation? (formula sform)) (or (and (forall-expr? (args1 (formula sform))) (implication? (expression (args1 (formula sform))))) (implication? (args1 (formula sform)))))))) (fnum (when fnums (car fnums)))) (if fnum (rewrite-all$ fnums) (skip-msg "Nothing to auto-rewrite"))) " " " " ) (defstep auto-rewrite-antecedents (&optional (exclude nil)) (let ((fnums (gather-fnums (s-forms (current-goal *ps*)) - exclude #'(lambda (sform) (and (negation? (formula sform)) (or (and (forall-expr? (args1 (formula sform))) (implication? (args2 (formula sform)))) (implication? (args1 (formula sform)))))))) (fnum (when fnums (car fnums)))) (if fnum (auto-rewrite fnum) (skip-msg "Nothing to auto-rewrite"))) " " " " ) (defstep hide-all-but (&optional (hidefrom *) keepnums) (let ((fnums (gather-fnums (s-forms (current-goal *ps*)) hidefrom keepnums))) (hide :fnums fnums)) "Hides all sequent formulas from FNUMS except those listed in KEEP-FNUMS. Useful when all but a few formulas need to be hidden." "Hiding ~a but keeping ~a") (defstep my-hide-all-but (keepnums &optional (hidefrom *)) (let ((fnums (gather-fnums (s-forms (current-goal *ps*)) hidefrom keepnums))) (hide :fnums fnums)) "Hides all sequent formulas" "Hiding" ) (defstep prove-rewrites (&optional (prop nil)) (apply (then (EXPAND prop)(skosimp*)(iff)(then (split)(skosimp*)(repeat* (then (split 1)(skosimp*)))))) "Expands out the definitions, and rho, replaces and hides " " " ) $$$allFiles.pvs allFiles[N, R, U, Z: posnat, (IMPORTING more_nat_types[1]) B: greater_one_nat]: THEORY % The only purpose of this file is to import Refine and SplitEqual so they are dumped together % Refine contains the refinement relation between the sequential system (seq.pvs) % and the out-of-order execution in-order-retirement (InOrder.pvs) % A number of invariants of the OOO model (that found in InOrder.pvs) are % defined in files InvDefs and InvDefs2 and proved in InOrderProp and InOrderP2, % respectively. % Files IOdef gives definitions of data structures in the OOO model, while def % gives definitions common to both seq and the OOO model. % File SplitEqual proves that our split transition relation is equal to the % unified one, both of which are found in InOrder. BEGIN IMPORTING SplitEqual[N, R, U, Z, B], Refine[N, R, U, Z, B] END allFiles $$$seq.pvs seq[N: posnat, R: posnat]: THEORY BEGIN IMPORTING more_nat_types, def[N,R] top,top_p: VAR upto_nz[N + 1] reg,reg_p: VAR [REG_ID[N,R] -> VALUE] delay : VAR bool THETA(top,reg): bool = (top = 1 AND (FORALL (r: REG_ID): reg(r) = 0)) rho(top,reg,top_p,reg_p): bool = EXISTS delay: (NOT delay AND top <= N AND top_p = top + 1 AND reg_p = reg WITH [(t(prog(top))) := do_op(op(prog(top)), reg(src(prog(top))(1)), reg(src(prog(top))(2)))]) OR (top_p = top AND reg_p = reg) END seq $$$seq.prf (|seq| (|top_TCC1| "" (SAME-NAME-TCC) NIL) (|rho_TCC1| "" (SUBTYPE-TCC) NIL) (|rho_TCC2| "" (SUBTYPE-TCC) NIL) (|rho_TCC3| "" (SUBTYPE-TCC) NIL)) $$$Refine.pvs Refine[N, R, U, Z: posnat, (IMPORTING more_nat_types[1]) B: greater_one_nat]: THEORY BEGIN IMPORTING InOrderP2[N, R, U, Z, B], seq[N, R] reg, reg_p: VAR [REG_ID -> VALUE] RF, RF_p: VAR [REG_ID -> RF_TYPE] RAT, RAT_p: VAR [REG_ID -> RAT_TYPE] ROB, ROB_p: VAR [ROB_ID -> ROB_TYPE] nextB, nextB_p: VAR ROB_ID oldestB, oldestB_p: VAR ROB_ID RS, RS_p: VAR [SLOT_ID -> RS_TYPE] res, res_p: VAR [FU_ID -> result_TYPE] topa, topa_p, topc, topc_p: VAR upto_nz[N + 1] r: VAR REG_ID adj_top(topc, nextB, oldestB): upto_nz[N + 1] = IF topc > numOccBuffers(nextB, oldestB) THEN topc - numOccBuffers(nextB, oldestB) ELSE 1 ENDIF rhostar(reg, topa, topc, nextB, oldestB, reg_p, topa_p, topc_p, nextB_p, oldestB_p): boolean = IF topa <= N AND adj_top(topc, nextB, oldestB) /= adj_top(topc_p, nextB_p, oldestB_p) THEN topa_p = topa + 1 AND reg_p = (LAMBDA r: IF r = t(prog(topa)) THEN do_op(op(prog(topa)), reg(src(prog(topa))(1)), reg(src(prog(topa))(2))) ELSE reg(r) ENDIF) ELSE topa_p = topa AND reg_p = reg ENDIF reg_I(RF): [REG_ID -> VALUE] = (LAMBDA r: 0) R2: LEMMA rhostar(reg, topa, topc, nextB, oldestB, reg_p, topa_p, topc_p, nextB_p, oldestB_p) IMPLIES seq.rho(topa, reg, topa_p, reg_p) obsMatchProp(reg, topa, topc, RF, nextB, oldestB): boolean = reg = (LAMBDA r: v(RF(r))) AND topa = adj_top(topc, nextB, oldestB) R3_theta: LEMMA seq.THETA(topa, reg) AND InOrder.Theta(topc, res, RF, RS, RAT, ROB, nextB, oldestB) IMPLIES obsMatchProp(reg, topa, topc, RF, nextB, oldestB) R3_issue: LEMMA rho_issue(topc, res, RF, RS, RAT, ROB, nextB, oldestB, topc_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND rhostar(reg, topa, topc, nextB, oldestB, reg_p, topa_p, topc_p, nextB_p, oldestB_p) AND obsMatchProp(reg, topa, topc, RF, nextB, oldestB) AND numBuffsOccProp(topc, nextB, oldestB) IMPLIES obsMatchProp(reg_p, topa_p, topc_p, RF_p, nextB_p, oldestB_p) R3_execute: LEMMA rho_execute(topc, res, RF, RS, RAT, ROB, nextB, oldestB, topc_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND rhostar(reg, topa, topc, nextB, oldestB, reg_p, topa_p, topc_p, nextB_p, oldestB_p) AND obsMatchProp(reg, topa, topc, RF, nextB, oldestB) IMPLIES obsMatchProp(reg_p, topa_p, topc_p, RF_p, nextB_p, oldestB_p) R3_writeb: LEMMA rho_writeb(topc, res, RF, RS, RAT, ROB, nextB, oldestB, topc_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND rhostar(reg, topa, topc, nextB, oldestB, reg_p, topa_p, topc_p, nextB_p, oldestB_p) AND obsMatchProp(reg, topa, topc, RF, nextB, oldestB) IMPLIES obsMatchProp(reg_p, topa_p, topc_p, RF_p, nextB_p, oldestB_p) R3_retire: LEMMA rho_retire(topc, res, RF, RS, RAT, ROB, nextB, oldestB, topc_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND rhostar(reg, topa, topc, nextB, oldestB, reg_p, topa_p, topc_p, nextB_p, oldestB_p) AND obsMatchProp(reg, topa, topc, RF, nextB, oldestB) AND completedBuffCorrectValProp(RF, ROB, nextB, oldestB, topc) AND numBuffsOccProp(topc, nextB, oldestB) AND ROBtargetMatchProgProp(ROB, nextB, oldestB, topc) IMPLIES obsMatchProp(reg_p, topa_p, topc_p, RF_p, nextB_p, oldestB_p) END Refine $$$Refine.prf (|Refine| (|topa_TCC1| "" (SAME-NAME-TCC) NIL) (|adj_top_TCC1| "" (SUBTYPE-TCC) NIL) (|adj_top_TCC2| "" (SUBTYPE-TCC) NIL) (|rhostar_TCC1| "" (SUBTYPE-TCC) NIL) (|rhostar_TCC2| "" (SUBTYPE-TCC) NIL) (|rhostar_TCC3| "" (SUBTYPE-TCC) NIL) (|rhostar_TCC4| "" (SUBTYPE-TCC) NIL) (R2 "" (SKOSIMP*) (("" (EXPAND "rhostar") (("" (EXPAND "seq.rho") (("" (SIMP-SPLIT -) (("1" (INST 2 "FALSE") (("1" (SIMP) (("1" (REPLACE*) (("1" (APPLY-EXTENSIONALITY 2 :HIDE? T) (("1" (SIMP-SPLIT) NIL))))))))) ("2" (INST?) NIL))))))))) (|R3_theta| "" (SKOSIMP*) (("" (GRIND :IF-MATCH NIL) (("" (APPLY-EXTENSIONALITY 1 :HIDE? T) (("" (INST?) (("" (INST? -5) (("" (SIMP) NIL))))))))))) (|R3_issue| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4) (("" (REVEAL -1 -2 -3 -4) (("" (EXPAND " rho_issue") (("" (EXPAND "rhostar") (("" (EXPAND "obsMatchProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -3 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT -) (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (HIDE -3) (("1" (EXPAND "adj_top" +) (("1" (HIDE 4) (("1" (REVEAL -8) (("1" (LEMMA "numBuffsOcc_issue") (("1" (INST?) (("1" (SIMP) (("1" (HIDE -2) (("1" (REPLACE*) (("1" (EXPAND " numBuffsOccProp") (("1" (REVEAL -3) (("1" (REPLACE*) (("1" (SIMP) (("1" (EXPAND "numOccBuffers" +) (("1" (SIMP-SPLIT) (("1" (HIDE -4 -14) (("1" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) NIL))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))))))))) ("2" (EXPAND "adj_top" 1) (("2" (SIMP-SPLIT) NIL))))))))) ("2" (REPLACE*) (("2" (SIMP) NIL))))))))))))))))))))))) (|R3_execute| "" (SKOSIMP*) (("" (EXPAND " rho_execute") (("" (EXPAND "rhostar") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -3 -4 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT -) NIL))))))))))))) (|R3_writeb| "" (EXPAND " rho_writeb") (("" (EXPAND "rhostar") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -3 -4 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT -) NIL))))))))))) (|R3_retire| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5) (("" (REVEAL -1 -2 -3 -4 -5) (("" (EXPAND "rho_retire") (("" (EXPAND " rhostar") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT -) (("1" (EXPAND "obsMatchProp") (("1" (LEMMA "numBuffsOcc_retire") (("1" (REVEAL -8) (("1" (INST?) (("1" (SIMP) (("1" (HIDE -1) (("1" (CASE "NOT topa_p!1 = adj_top(topc!1, nextB!1, succ(oldestB!1))") (("1" (HIDE 2) (("1" (REPLACE*) (("1" (SIMP-SPLIT -) (("1" (HIDE 1 3) (("1" (REPLACE*) (("1" (EXPAND "adj_top" +) (("1" (EXPAND "numOccBuffers") (("1" (SIMP-SPLIT) (("1" (HIDE -4) (("1" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (SIMP-SPLIT) (("1" (EXPAND " succ") (("1" (SIMP-SPLIT) NIL))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))))) ("2" (EXPAND " numBuffsOccProp") (("2" (SIMP) (("2" (EXPAND "numOccBuffers") (("2" (PROPAX) NIL))))))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (HIDE -5) (("1" (ASSERT :FLUSH? T) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) NIL))))))) ("2" (HIDE -4) (("2" (EXPAND "succ") (("2" (SIMP-SPLIT 2) NIL))))))) ("2" (HIDE -3) (("2" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) (("1" (EXPAND "numBuffsOccProp") (("1" (EXPAND "numOccBuffers") (("1" (PROPAX) NIL))))))))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT 2) (("2" (EXPAND " numBuffsOccProp") (("2" (EXPAND "numOccBuffers") (("2" (PROPAX) NIL))))))))))))))))))))))))) ("2" (HIDE 3) (("2" (EXPAND "adj_top" 1) (("2" (EXPAND "numBuffsOccProp") (("2" (SIMP) (("2" (EXPAND "numOccBuffers") (("2" (SIMP-SPLIT) (("2" (HIDE -5) (("2" (TYPEPRED "topc!1") (("2" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (SIMP) NIL))))))))))))))))))))))))) ("2" (SIMP) (("2" (EXPAND "ROBtargetMatchProgProp") (("2" (INST?) (("2" (EXPAND "getBuffTarget") (("2" (CASE "NOT instIndexOfBuff(oldestB!1, nextB!1, oldestB!1, topc!1) = topa!1") (("1" (HIDE -11 3) (("1" (EXPAND "instIndexOfBuff") (("1" (SIMP-SPLIT -) (("1" (HIDE -3 1) (("1" (EXPAND "adj_top") (("1" (EXPAND "numBuffsOccProp") (("1" (SIMP) (("1" (HIDE -5 -13) (("1" (EXPAND "bufferIndex") (("1" (EXPAND "numOccBuffers") (("1" (SIMP-SPLIT) NIL))))))))))))))) ("2" (EXPAND "bufferIndex") (("2" (EXPAND "adj_top") (("2" (EXPAND "numBuffsOccProp") (("2" (SIMP) NIL))))))))))))) ("2" (REPLACE -1) (("2" (SIMP-SPLIT -) (("1" (REPLACE*) (("1" (HIDE -3) (("1" (APPLY-EXTENSIONALITY 3 :HIDE? T) (("1" (REPLACE -10 :DIR RL) (("1" (SIMP-SPLIT) (("1" (EXPAND "completedBuffCorrectValProp") (("1" (INST?) (("1" (SIMP) (("1" (EXPAND "getBuffOp") (("1" (EXPAND "getOperandVal") (("1" (EXPAND "preceed") (("1" (EXPAND "getBuffSrc") (("1" (SIMP) NIL))))))))))))))))))))))))) ("2" (HIDE 1) (("2" (REPLACE*) (("2" (APPLY-EXTENSIONALITY 2 :HIDE? T) (("2" (SIMP-SPLIT) (("2" (EXPAND "adj_top") (("2" (EXPAND "numBuffsOccProp") (("2" (SIMP) (("2" (EXPAND "numOccBuffers") (("2" (SIMP-SPLIT -) (("1" (HIDE -6 -13) (("1" (REVEAL -6) (("1" (REPLACE*) (("1" (ASSERT :FLUSH? T) (("1" (ASSERT :FLUSH? T) (("1" (SPLIT -11) (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT -) NIL))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))))) ("2" (FLATTEN) (("2" (ASSERT :FLUSH? T) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (SPLIT -) (("1" (SIMP) NIL) ("2" (FLATTEN) (("2" (REVEAL -7) (("2" (ASSERT :FLUSH? T) NIL))))))))))))))))))))))))))) ("2" (REVEAL -4 -5) (("2" (REPLACE*) (("2" (ASSERT :FLUSH? T) (("2" (SIMP-SPLIT -) (("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (EXPAND " obsMatchProp") (("2" (SIMP) NIL)))))))))))))))))))))) $$$InvDefs2.pvs InvDefs2[N, R, U, Z: posnat, (IMPORTING more_nat_types[1]) B: greater_one_nat]: THEORY BEGIN IMPORTING InvDefs[N, R, U, Z, B] RF, RF_p: VAR [REG_ID -> RF_TYPE] RAT, RAT_p: VAR [REG_ID -> RAT_TYPE] ROB, ROB_p: VAR [ROB_ID -> ROB_TYPE] nextB, nextB_p: VAR ROB_ID oldestB, oldestB_p: VAR ROB_ID RS, RS_p: VAR [SLOT_ID -> RS_TYPE] res, res_p: VAR [FU_ID -> result_TYPE] top, top_p: VAR upto_nz[N + 1] FU: VAR FU_ID S: VAR SLOT_ID r: VAR REG_ID rb, rb2: VAR ROB_ID numBuffsOccProp(top, nextB, oldestB): boolean = top > numOccBuffers(nextB, oldestB) AND (FORALL rb: occ_buffer(rb, nextB, oldestB) IMPLIES numOccBuffers(nextB, oldestB) > bufferIndex(rb, nextB, oldestB)) instIndexOfBuff(rb, nextB, oldestB, top): INST_INDEX = IF occ_buffer(rb, nextB, oldestB) AND numBuffsOccProp(top, nextB, oldestB) THEN top - numOccBuffers(nextB, oldestB) + bufferIndex(rb, nextB, oldestB) ELSE 1 ENDIF getBuffOp(rb, nextB, oldestB, top): OP_TYPE = op(prog(instIndexOfBuff(rb, nextB, oldestB, top))) getBuffSrc((j: TWO), rb, nextB, oldestB, top): REG_ID = src(prog(instIndexOfBuff(rb, nextB, oldestB, top)))(j) getBuffTarget(rb, nextB, oldestB, top): REG_ID = t(prog(instIndexOfBuff(rb, nextB, oldestB, top))) RSoperandsMatchProgProp(RS, nextB, oldestB, top): boolean = (FORALL S: oc(RS(S)) IMPLIES (p(RS(S)) > 0 AND op(RS(S)) = getBuffOp(p(RS(S)), nextB, oldestB, top) AND (FORALL (j: TWO): r(ss(RS(S))(j)) = getBuffSrc(j, p(RS(S)), nextB, oldestB, top)))) RS_ROB_ProducerMatchProp(RS, ROB): boolean = (FORALL S: oc(RS(S)) IMPLIES (p(RS(S)) > 0 AND (FORALL (j: TWO): p(ss(RS(S))(j)) = p(ss(ROB(p(RS(S))))(j))))) busyROBoccRSorActiveResProp(res, RS, ROB, nextB, oldestB): boolean = (FORALL rb: occ_buffer(rb, nextB, oldestB) AND b(rt(ROB(rb))) IMPLIES ((EXISTS S: oc(RS(S)) AND p(RS(S)) = rb) OR (EXISTS FU: a(res(FU)) AND p(res(FU)) = rb))) getOperandVal(RF, ROB, (op_buff: upto[B]), (target_buff: ROB_ID), (op_reg: REG_ID), nextB, oldestB): VALUE = IF op_buff > 0 AND preceed(op_buff, target_buff, nextB, oldestB) THEN v(rt(ROB(op_buff))) ELSE v(RF(op_reg)) ENDIF getOperandBuffConstProp(RF, top, ROB, nextB, oldestB, RF_p, top_p, ROB_p, nextB_p, oldestB_p): boolean = (FORALL (tb: ROB_ID), (j: TWO): occ_buffer(tb, nextB, oldestB) IMPLIES ((r(ss(ROB(tb))(j)) > 0 AND r(ss(ROB_p(tb))(j)) > 0 AND NOT (r(ss(ROB(tb))(j)) = t(ROB(oldestB)) AND oldestB /= oldestB_p) AND (p(ss(ROB(tb))(j)) = 0 OR NOT (b(rt(ROB(p(ss(ROB(tb))(j))))) AND preceed(p(ss(ROB(tb))(j)), tb, nextB, oldestB)))) IMPLIES getOperandVal(RF, ROB, p(ss(ROB(tb))(j)), tb, r(ss(ROB(tb))(j)), nextB, oldestB) = getOperandVal(RF_p, ROB_p, p(ss(ROB_p(tb))(j)), tb, r(ss(ROB_p(tb))(j)), nextB_p, oldestB_p)) AND (occ_buffer(tb, nextB_p, oldestB_p) IMPLIES getBuffOp(tb, nextB, oldestB, top) = getBuffOp(tb, nextB_p, oldestB_p, top_p))) ROBoperandMatchProgProp(ROB, nextB, oldestB, top): boolean = (FORALL rb, (j: TWO): occ_buffer(rb, nextB, oldestB) IMPLIES r(ss(ROB(rb))(j)) = getBuffSrc(j, rb, nextB, oldestB, top)) ROBtargetMatchProgProp(ROB, nextB, oldestB, top): boolean = (FORALL rb: occ_buffer(rb, nextB, oldestB) IMPLIES t(ROB(rb)) = getBuffTarget(rb, nextB, oldestB, top)) ROBoperandRecentProp(ROB, nextB, oldestB): boolean = (FORALL rb: occ_buffer(rb, nextB, oldestB) IMPLIES (FORALL (j: TWO): IF p(ss(ROB(rb))(j)) > 0 AND preceed(p(ss(ROB(rb))(j)), rb, nextB, oldestB) THEN t(ROB(p(ss(ROB(rb))(j)))) = r(ss(ROB(rb))(j)) AND (FORALL rb2: (occ_buffer(rb2, nextB, oldestB) AND t(ROB(rb2)) = r(ss(ROB(rb))(j))) IMPLIES weakPreceed(rb2, p(ss(ROB(rb))(j)), nextB, oldestB) OR weakPreceed(rb, rb2, nextB, oldestB)) ELSE (FORALL rb2: (occ_buffer(rb2, nextB, oldestB) AND t(ROB(rb2)) = r(ss(ROB(rb))(j))) IMPLIES weakPreceed(rb, rb2, nextB, oldestB)) ENDIF)) RSopsMatchGetOperandValProp(RF, RS, ROB, nextB, oldestB): boolean = (FORALL S, (j: TWO): oc(RS(S)) AND NOT b(ss(RS(S))(j)) AND r(ss(RS(S))(j)) > 0 IMPLIES p(RS(S)) > 0 AND v(ss(RS(S))(j)) = getOperandVal(RF, ROB, p(ss(RS(S))(j)), p(RS(S)), r(ss(RS(S))(j)), nextB, oldestB)) activeResOpsNotBusyProp(res, ROB, nextB, oldestB): boolean = (FORALL FU: (a(res(FU)) IMPLIES p(res(FU)) > 0 AND (FORALL (j: TWO): p(ss(ROB(p(res(FU))))(j)) > 0 AND preceed(p(ss(ROB(p(res(FU))))(j)), p(res(FU)), nextB, oldestB) IMPLIES NOT b(rt(ROB(p(ss(ROB(p(res(FU))))(j)))))))) ROBnotBusyOpsNotBusyProp(ROB, nextB, oldestB): boolean = (FORALL rb: occ_buffer(rb, nextB, oldestB) AND NOT b(rt(ROB(rb))) IMPLIES (FORALL (j: TWO): p(ss(ROB(rb))(j)) > 0 AND preceed(p(ss(ROB(rb))(j)), rb, nextB, oldestB) IMPLIES NOT b(rt(ROB(p(ss(ROB(rb))(j))))))) activeResCorrectValProp(res, RF, ROB, nextB, oldestB, top): boolean = (FORALL FU: a(res(FU)) IMPLIES (p(res(FU)) > 0 AND v(res(FU)) = do_op(getBuffOp(p(res(FU)), nextB, oldestB, top), getOperandVal(RF, ROB, p(ss(ROB(p(res(FU))))(1)), p(res(FU)), getBuffSrc(1, p(res(FU)), nextB, oldestB, top), nextB, oldestB), getOperandVal(RF, ROB, p(ss(ROB(p(res(FU))))(2)), p(res(FU)), getBuffSrc(2, p(res(FU)), nextB, oldestB, top), nextB, oldestB)))) completedBuffCorrectValProp(RF, ROB, nextB, oldestB, top): boolean = (FORALL rb: (occ_buffer(rb, nextB, oldestB) AND NOT b(rt(ROB(rb)))) IMPLIES v(rt(ROB(rb))) = do_op(getBuffOp(rb, nextB, oldestB, top), getOperandVal(RF, ROB, p(ss(ROB(rb))(1)), rb, getBuffSrc(1, rb, nextB, oldestB, top), nextB, oldestB), getOperandVal(RF, ROB, p(ss(ROB(rb))(2)), rb, getBuffSrc(2, rb, nextB, oldestB, top), nextB, oldestB))) numOccLessTopProp(nextB, oldestB, top): boolean = IF (nextB >= oldestB) THEN top > nextB - oldestB ELSE top > B + nextB - oldestB ENDIF InOrderProps(top, res, RF, RS, RAT, ROB, nextB, oldestB): boolean = busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) AND RSprodUniqueProp(RS) AND activeResProp(res, RS, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND busyOperandsNearestProp(RS, ROB, nextB, oldestB) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND RetiredOperandsMatchRFprop(RF, RS, ROB, nextB, oldestB) AND numBuffsOccProp(top, nextB, oldestB) AND RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND RS_ROB_ProducerMatchProp(RS, ROB) AND busyROBoccRSorActiveResProp(res, RS, ROB, nextB, oldestB) AND activeResCorrectValProp(res, RF, ROB, nextB, oldestB, top) AND completedBuffCorrectValProp(RF, ROB, nextB, oldestB, top) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND ROBtargetMatchProgProp(ROB, nextB, oldestB, top) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND RSopsMatchGetOperandValProp(RF, RS, ROB, nextB, oldestB) AND activeResOpsNotBusyProp(res, ROB, nextB, oldestB) AND ROBnotBusyOpsNotBusyProp(ROB, nextB, oldestB) AND numOccLessTopProp(nextB, oldestB, top) END InvDefs2 $$$InvDefs2.prf (|InvDefs2| (|top_TCC1| "" (SAME-NAME-TCC) NIL) (|instIndexOfBuff_TCC1| "" (SUBTYPE-TCC) NIL) (|instIndexOfBuff_TCC2| "" (SUBTYPE-TCC) NIL) (|RSoperandsMatchProgProp_TCC1| "" (SUBTYPE-TCC) NIL) (|getOperandVal_TCC1| "" (SUBTYPE-TCC) NIL) (|getOperandBuffConstProp_TCC1| "" (SUBTYPE-TCC) NIL) (|getOperandBuffConstProp_TCC2| "" (SUBTYPE-TCC) NIL) (|ROBoperandRecentProp_TCC1| "" (SUBTYPE-TCC) NIL) (|ROBoperandRecentProp_TCC2| "" (SUBTYPE-TCC) NIL) (|ROBoperandRecentProp_TCC3| "" (SUBTYPE-TCC) NIL) (|RSopsMatchGetOperandValProp_TCC1| "" (SUBTYPE-TCC) NIL) (|activeResOpsNotBusyProp_TCC1| "" (SUBTYPE-TCC) NIL) (|activeResOpsNotBusyProp_TCC2| "" (SUBTYPE-TCC) NIL) (|activeResOpsNotBusyProp_TCC3| "" (SUBTYPE-TCC) NIL) (|activeResOpsNotBusyProp_TCC4| "" (SUBTYPE-TCC) NIL) (|activeResOpsNotBusyProp_TCC5| "" (SUBTYPE-TCC) NIL) (|activeResCorrectValProp_TCC1| "" (SUBTYPE-TCC) NIL) (|activeResCorrectValProp_TCC2| "" (SUBTYPE-TCC) NIL) (|completedBuffCorrectValProp_TCC1| "" (SUBTYPE-TCC) NIL) (|completedBuffCorrectValProp_TCC2| "" (SUBTYPE-TCC) NIL)) $$$def.pvs def[N,R: posnat]: THEORY BEGIN IMPORTING more_nat_types REG_ID: TYPE = upto_nz[R] TARGET: TYPE = REG_ID VALUE: TYPE = real OP_TYPE: TYPE+ do_op: FUNCTION [OP_TYPE, VALUE, VALUE -> VALUE] TWO: TYPE = upto_nz[2] SRC: TYPE = [TWO -> REG_ID] INST: TYPE = [# op:OP_TYPE, t:TARGET, src:SRC#] INST_INDEX: TYPE = upto_nz[N] prog: [INST_INDEX -> INST] END def $$$IOdef.pvs IOdef[N, R, U, Z, B: posnat]: THEORY BEGIN IMPORTING more_nat_types, def[N, R] FU_ID: TYPE = upto_nz[U] SLOT_ID: TYPE = upto_nz[Z] ROB_ID: TYPE = upto_nz[B] PRODUCER: TYPE = upto[B] BUSY: TYPE = bool OCCUPIED: TYPE = bool ACTIVE: TYPE = bool ROB_R_TYPE: TYPE = [# b: BUSY, v: VALUE #] SRC_RS_TYPE: TYPE = [# b: BUSY, p: PRODUCER, v: VALUE, r: upto[R] #] SRC_TYPE: TYPE = [TWO -> SRC_RS_TYPE] SRC_ROB_TYPE: TYPE = [# p: upto[B], r: upto[R] #] ROB_SRC_TYPE: TYPE = [TWO -> SRC_ROB_TYPE] RS_TYPE: TYPE = [# oc: OCCUPIED, p: PRODUCER, op: OP_TYPE, t: TARGET, ss: SRC_TYPE #] RF_TYPE: TYPE = [# v: VALUE #] ROB_TYPE: TYPE = [# rt: ROB_R_TYPE, t: TARGET, ss: ROB_SRC_TYPE #] RAT_TYPE: TYPE = [# b: BUSY, al: PRODUCER #] result_TYPE: TYPE = [# a: ACTIVE, t: TARGET, p: PRODUCER, v: VALUE #] fu_table: FUNCTION[OP_TYPE -> FU_ID] RS: VAR [SLOT_ID -> RS_TYPE] res: VAR [FU_ID -> result_TYPE] top: VAR upto_nz[1 + N] master: VAR upto[U] bus_active(res, master): bool = master > 0 AND a(res(master)) FUn(top): FU_ID = fu_table(op(prog(IF top < N THEN top ELSE N ENDIF))) Sn: VAR upto[Z] RF: VAR [REG_ID -> RF_TYPE] RAT: VAR [REG_ID -> RAT_TYPE] ROB: VAR [ROB_ID -> ROB_TYPE] r: VAR REG_ID rb: VAR ROB_ID nextB, nextB_p: VAR ROB_ID oldestB, oldestB_p: VAR ROB_ID succ(rb): ROB_ID = IF (rb < B) THEN rb + 1 ELSE 1 ENDIF pred(rb): ROB_ID = IF (rb > 1) THEN rb - 1 ELSE B ENDIF occ_buffer((rb, nextB, oldestB: ROB_ID)): boolean = IF (nextB > oldestB) THEN rb >= oldestB AND rb < nextB ELSE nextB /= oldestB AND (rb < nextB OR rb >= oldestB) ENDIF dispatch(top, RS, Sn, nextB, oldestB): bool = Sn > 0 AND top <= N AND NOT succ(nextB) = oldestB AND NOT oc(RS(Sn)) S: VAR upto[Z] enabled(RS, S): bool = S > 0 AND NOT b(ss(RS(S))(1)) AND NOT b(ss(RS(S))(2)) AND oc(RS(S)) retired_operand((oldestB, p_operand, p_owner: ROB_ID)): boolean = p_owner >= oldestB AND p_operand < oldestB OR p_owner < oldestB AND (p_operand < p_owner OR p_operand > oldestB) preceed((rb1, rb2, nextB, oldestB: ROB_ID)): boolean = occ_buffer(rb1, nextB, oldestB) AND occ_buffer(rb2, nextB, oldestB) AND rb1 /= rb2 AND IF (rb2 = oldestB) THEN FALSE ELSIF (rb1 = oldestB) THEN TRUE ELSE ((rb2 <= oldestB AND (rb1 < rb2 OR rb1 > oldestB)) OR (rb1 < rb2 AND rb1 > oldestB)) ENDIF weakPreceed((rb1, rb2, nextB, oldestB: ROB_ID)): boolean = rb1 = rb2 OR preceed(rb1, rb2, nextB, oldestB) bufferIndex(rb, nextB, oldestB): upto[B] = IF occ_buffer(rb, nextB, oldestB) THEN IF rb >= oldestB THEN rb - oldestB ELSE rb + B - oldestB ENDIF ELSE B ENDIF numOccBuffers(nextB, oldestB): upto[B - 1] = IF nextB >= oldestB THEN nextB - oldestB ELSE nextB + B - oldestB ENDIF chooseFU((prod: ROB_ID), res): upto[U] = IF (EXISTS (FU: FU_ID): a(res(FU)) AND p(res(FU)) = prod) THEN choose(LAMBDA (FU: FU_ID): a(res(FU)) AND p(res(FU)) = prod) ELSE 0 ENDIF % epsilon(LAMBDA (FU: FU_ID): a(res(FU)) AND p(res(FU)) = prod) END IOdef $$$IOdef.prf (|IOdef| (|bus_active_TCC1| "" (SUBTYPE-TCC) NIL) (|FUn_TCC1| "" (SUBTYPE-TCC) NIL) (|FUn_TCC2| "" (SUBTYPE-TCC) NIL) (|succ_TCC1| "" (SUBTYPE-TCC) NIL) (|succ_TCC2| "" (SUBTYPE-TCC) NIL) (|pred_TCC1| "" (SUBTYPE-TCC) NIL) (|pred_TCC2| "" (SUBTYPE-TCC) NIL) (|dispatch_TCC1| "" (SUBTYPE-TCC) NIL) (|enabled_TCC1| "" (SUBTYPE-TCC) NIL) (|enabled_TCC2| "" (SUBTYPE-TCC) NIL) (|enabled_TCC3| "" (SUBTYPE-TCC) NIL) (|bufferIndex_TCC1| "" (SUBTYPE-TCC) NIL) (|bufferIndex_TCC2| "" (SUBTYPE-TCC) NIL) (|bufferIndex_TCC3| "" (SUBTYPE-TCC) NIL) (|numOccBuffers_TCC1| "" (SUBTYPE-TCC) NIL) (|numOccBuffers_TCC2| "" (SUBTYPE-TCC) NIL) (|numOccBuffers_TCC3| "" (SUBTYPE-TCC) NIL) (|chooseFU_TCC1| "" (SUBTYPE-TCC) NIL) (|chooseFU_TCC2| "" (SUBTYPE-TCC) NIL)) $$$InOrder.pvs InOrder[N,R,U,Z: posnat, (IMPORTING more_nat_types[1]) B: greater_one_nat ]: THEORY BEGIN IMPORTING IOdef[N,R,U,Z,B] RF, RF_p: VAR [REG_ID -> RF_TYPE] RAT, RAT_p: VAR [REG_ID -> RAT_TYPE] ROB, ROB_p: VAR [ROB_ID -> ROB_TYPE] nextB, nextB_p : VAR ROB_ID % the next free entry in ROB oldestB, oldestB_p : VAR ROB_ID % the oldest ROB entry RS, RS_p: VAR [SLOT_ID -> RS_TYPE] res, res_p: VAR [FU_ID -> result_TYPE] top, top_p: VAR upto_nz[1+N] FU: VAR FU_ID S: VAR SLOT_ID r: VAR REG_ID rb : VAR ROB_ID op0: OP_TYPE Theta(top, res, RF, RS, RAT, ROB, nextB, oldestB): bool = top = 1 AND (FORALL FU: res(FU) = (# a := FALSE, p := 0, v := 0, t := 0 #)) AND (FORALL r: RF(r) = (# v := 0 #) AND RAT(r) = (# b:= FALSE, al := r #)) AND (FORALL rb: ROB(rb) = (# rt := (# b := FALSE, v := 0 #), t := 0, ss := (LAMBDA (i: TWO): (# p := 0, r:=0 #)) #)) AND nextB = 1 AND oldestB = 1 AND (FORALL S: RS(S) = (# oc := FALSE, p := 0, op := op0, t := 0, ss := (LAMBDA (i: TWO): (# b := FALSE, p := 0, v := 0, r := 0 #)) #)) rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p): bool = EXISTS (Sn: upto[Z]): (Sn > 0 IMPLIES dispatch(top, RS, Sn, nextB, oldestB)) AND nextB_p = IF Sn > 0 THEN succ(nextB) ELSE nextB ENDIF AND oldestB_p = oldestB AND top_p = IF Sn > 0 THEN 1 + top ELSE top ENDIF AND res_p = res AND RAT_p = (LAMBDA r: IF Sn > 0 AND r = t(prog(top)) THEN (# b := TRUE , al := nextB #) ELSE RAT(r) ENDIF) AND RF_p = RF AND ROB_p = (LAMBDA rb: IF Sn > 0 AND rb = nextB THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top)), ss := (LAMBDA (j: TWO): (# p := IF b(RAT(src(prog(top))(j))) AND al(RAT(src(prog(top))(j))) > 0 THEN al(RAT(src(prog(top))(j))) ELSE 0 ENDIF, r:= src(prog(top))(j) #)) #) ELSE ROB(rb) ENDIF ) AND RS_p = (LAMBDA S: IF Sn > 0 AND S = Sn THEN (# oc := TRUE, p := nextB, op := op(prog(top)), t := t(prog(top)), ss := (LAMBDA (j: TWO): IF b(RAT(src(prog(top))(j))) AND al(RAT(src(prog(top))(j))) > 0 THEN (# b := b(rt(ROB(al(RAT(src(prog(top))(j)))))), p := al(RAT(src(prog(top))(j))), v := v(rt(ROB(al(RAT(src(prog(top))(j)))))), r := src(prog(top))(j) #) ELSE (# b := FALSE, v := v(RF(src(prog(top))(j))), r := src(prog(top))(j), p := 0 #) ENDIF) #) ELSE RS(S) ENDIF ) rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p): bool = (EXISTS ( iex: [FU_ID -> upto[Z]], delay: [FU_ID -> bool]): nextB_p = nextB AND oldestB_p = oldestB AND top_p = top AND (FORALL (FU: FU_ID): iex(FU) > 0 IMPLIES enabled(RS, iex(FU)) AND NOT a(res(FU)) AND FU = fu_table(op(RS(iex(FU))))) AND res_p = (LAMBDA (FU: FU_ID): IF iex(FU) > 0 AND NOT delay(FU) THEN (# a := TRUE, p := p(RS(iex(FU))), v := do_op(op(RS(iex(FU))), v(ss(RS(iex(FU)))(1)), v(ss(RS(iex(FU)))(2))), t := t(RS(iex(FU))) #) ELSE res(FU) ENDIF) AND RAT_p = RAT AND RF_p = RF AND ROB_p = ROB AND RS_p = (LAMBDA S: IF (EXISTS FU : NOT delay(FU) AND iex(FU) > 0 AND S = iex(FU)) THEN (# oc := FALSE, p := p(RS(S)), op := op(RS(S)), t := t(RS(S)), ss := ss(RS(S)) #) ELSE RS(S) ENDIF ) ) rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p): bool = EXISTS (writeback : [FU_ID -> bool]): nextB_p = nextB AND oldestB_p = oldestB AND top_p = top AND (FORALL FU: writeback(FU) = TRUE IMPLIES a(res(FU))) AND res_p = (LAMBDA (FU: FU_ID): (# a := a(res(FU)) AND NOT writeback(FU), p := p(res(FU)), v := v(res(FU)), t := t(res(FU)) #)) AND RAT_p = RAT AND RF_p = RF AND ROB_p = (LAMBDA rb: IF (EXISTS FU: writeback(FU) = TRUE AND p(res(FU)) = rb) THEN (# rt := (# b := FALSE, v := v(res(chooseFU(rb, res))) #), t := t(ROB(rb)), ss := ss(ROB(rb)) #) ELSE ROB(rb) ENDIF ) AND RS_p = (LAMBDA S: IF oc(RS(S)) THEN (# oc := oc(RS(S)), p := p(RS(S)), op := op(RS(S)), t := t(RS(S)), ss := (LAMBDA (j: TWO): IF b(ss(RS(S))(j)) AND (EXISTS FU: writeback(FU) AND p(ss(RS(S))(j)) = p(res(FU)) AND p(ss(RS(S))(j)) > 0) THEN (# b := FALSE, p := p(ss(RS(S))(j)), v := v(res(chooseFU(p(ss(RS(S))(j)), res))), r := r(ss(RS(S))(j)) #) ELSE ss(RS(S))(j) ENDIF) #) ELSE RS(S) ENDIF ) rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p): bool = (EXISTS ( retire: boolean): nextB_p = nextB AND top_p = top AND oldestB_p = IF retire THEN succ(oldestB) ELSE oldestB ENDIF AND (retire IMPLIES occ_buffer(oldestB, nextB, oldestB) AND NOT b(rt(ROB(oldestB)))) AND res_p = res AND RAT_p = (LAMBDA r: IF retire AND al(RAT(r)) = oldestB THEN (# b := FALSE, al := al(RAT(r)) #) ELSE RAT(r) ENDIF) AND RF_p = (LAMBDA r: IF retire AND r = t(ROB(oldestB)) THEN (# v := v(rt(ROB(oldestB))) #) ELSE RF(r) ENDIF) AND ROB_p = ROB AND RS_p = RS ) rho(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p): bool = EXISTS (writeback : [FU_ID -> bool], Sn: upto[Z], iex: [FU_ID -> upto[Z]], delay: [FU_ID -> bool], retire: boolean ): (Sn > 0 IMPLIES dispatch(top, RS, Sn, nextB, oldestB)) AND nextB_p = IF Sn > 0 THEN succ(nextB) ELSE nextB ENDIF AND oldestB_p = IF retire THEN succ(oldestB) ELSE oldestB ENDIF AND (FORALL (FU: FU_ID): iex(FU) > 0 IMPLIES enabled(RS, iex(FU)) AND NOT a(res(FU)) AND FU = fu_table(op(RS(iex(FU))))) AND (FORALL FU: writeback(FU) = TRUE IMPLIES a(res(FU))) AND (retire IMPLIES occ_buffer(oldestB, nextB, oldestB) AND NOT b(rt(ROB(oldestB)))) AND top_p = IF Sn > 0 THEN 1 + top ELSE top ENDIF AND res_p = (LAMBDA (FU: FU_ID): IF iex(FU) > 0 AND NOT delay(FU) THEN (# a := TRUE, p := p(RS(iex(FU))), v := do_op(op(RS(iex(FU))), v(ss(RS(iex(FU)))(1)), v(ss(RS(iex(FU)))(2))), t := t(RS(iex(FU))) #) ELSE (# a := a(res(FU)) AND NOT writeback(FU), p := p(res(FU)), v := v(res(FU)), t := t(res(FU)) #) ENDIF) AND RAT_p = (LAMBDA r: IF Sn > 0 AND r = t(prog(top)) THEN (# b := TRUE , al := nextB #) ELSIF retire AND al(RAT(r)) = oldestB THEN (# b := FALSE, al := al(RAT(r)) #) ELSE RAT(r) ENDIF) AND RF_p = (LAMBDA r: IF retire AND r = t(ROB(oldestB)) THEN (# v := v(rt(ROB(oldestB))) #) ELSE RF(r) ENDIF) AND ROB_p = (LAMBDA rb: IF Sn > 0 AND rb = nextB THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top)), ss := (LAMBDA (j: TWO): (# p := IF b(RAT(src(prog(top))(j))) AND al(RAT(src(prog(top))(j))) > 0 THEN al(RAT(src(prog(top))(j))) ELSE 0 ENDIF, r := src(prog(top))(j) #)) #) ELSIF retire AND rb = oldestB THEN ROB(rb) ELSIF (EXISTS FU: writeback(FU) = TRUE AND p(res(FU)) = rb) THEN (# rt := (# b := FALSE, v := v(res(chooseFU(rb, res))) #), t := t(ROB(rb)), ss := ss(ROB(rb)) #) ELSE ROB(rb) ENDIF ) AND RS_p = (LAMBDA S: IF Sn > 0 AND S = Sn THEN (# oc := TRUE, p := nextB, op := op(prog(top)), t := t(prog(top)), ss := (LAMBDA (j: TWO): IF b(RAT(src(prog(top))(j))) AND al(RAT(src(prog(top))(j))) > 0 THEN IF (EXISTS FU: writeback(FU) AND al(RAT(src(prog(top))(j))) = p(res(FU))) THEN (# b := FALSE, p := al(RAT(src(prog(top))(j))), v := v(res(chooseFU(al(RAT(src(prog(top))(j))), res))), r := src(prog(top))(j) #) ELSE (# b := b(rt(ROB(al(RAT(src(prog(top))(j)))))), p := al(RAT(src(prog(top))(j))), v := v(rt(ROB(al(RAT(src(prog(top))(j)))))), r := src(prog(top))(j) #) ENDIF ELSE (# b := FALSE, v := v(RF(src(prog(top))(j))), r := src(prog(top))(j), p := 0 #) ENDIF) #) ELSIF (EXISTS FU : NOT delay(FU) AND iex(FU) > 0 AND S = iex(FU)) THEN (# oc := FALSE, p := p(RS(S)), op := op(RS(S)), t := t(RS(S)), ss := ss(RS(S)) #) ELSIF oc(RS(S)) THEN (# oc := oc(RS(S)), p := p(RS(S)), op := op(RS(S)), t := t(RS(S)), ss := (LAMBDA (j: TWO): IF b(ss(RS(S))(j)) AND (EXISTS FU: writeback(FU) AND p(ss(RS(S))(j)) = p(res(FU)) AND p(ss(RS(S))(j)) > 0) THEN (# b := FALSE, p := p(ss(RS(S))(j)), v := v(res(chooseFU(p(ss(RS(S))(j)), res))), r := r(ss(RS(S))(j)) #) ELSE ss(RS(S))(j) ENDIF) #) ELSE RS(S) ENDIF ) END InOrder $$$InOrder.prf (|InOrder| (|rho_issue_TCC1| "" (SUBTYPE-TCC) NIL) (|rho_issue_TCC2| "" (SUBTYPE-TCC) NIL) (|rho_issue_TCC3| "" (SUBTYPE-TCC) NIL) (|rho_issue_TCC4| "" (SUBTYPE-TCC) NIL) (|rho_issue_TCC5| "" (SUBTYPE-TCC) NIL) (|rho_issue_TCC6| "" (SUBTYPE-TCC) NIL) (|rho_issue_TCC7| "" (SUBTYPE-TCC) NIL) (|rho_issue_TCC8| "" (SUBTYPE-TCC) NIL) (|rho_issue_TCC9| "" (SUBTYPE-TCC) NIL) (|rho_execute_TCC1| "" (SUBTYPE-TCC) NIL) (|rho_execute_TCC2| "" (SUBTYPE-TCC) NIL) (|rho_execute_TCC3| "" (SUBTYPE-TCC) NIL) (|rho_execute_TCC4| "" (SUBTYPE-TCC) NIL) (|rho_writeb_TCC1| "" (SKOSIMP*) (("" (INST?) (("" (EXPAND "chooseFU") (("" (LIFT-IF) (("" (SIMP) (("" (SPLIT -10) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST? +) (("2" (SIMP) NIL))))))))))))))))) (|rho_writeb_TCC2| "" (SUBTYPE-TCC) NIL) (|rho_writeb_TCC3| "" (SKOSIMP*) (("" (INST?) (("" (EXPAND "chooseFU") (("" (LIFT-IF) (("" (SPLIT -14) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST? 1) (("2" (SIMP) NIL))))))))))))))) (|rho_TCC1| "" (SUBTYPE-TCC) NIL) (|rho_TCC2| "" (SUBTYPE-TCC) NIL) (|rho_TCC3| "" (SUBTYPE-TCC) NIL) (|rho_TCC4| "" (SUBTYPE-TCC) NIL) (|rho_TCC5| "" (SUBTYPE-TCC) NIL) (|rho_TCC6| "" (SUBTYPE-TCC) NIL) (|rho_TCC7| "" (SUBTYPE-TCC) NIL) (|rho_TCC8| "" (SUBTYPE-TCC) NIL) (|rho_TCC9| "" (SKOSIMP*) (("" (INST? -5) (("" (EXPAND "chooseFU") (("" (LIFT-IF) (("" (SPLIT -13) (("1" (EXPAND "choose") (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (INST? 1) (("2" (SIMP) NIL))))))))))))))) (|rho_TCC10| "" (SUBTYPE-TCC) NIL) (|rho_TCC11| "" (SUBTYPE-TCC) NIL) (|rho_TCC12| "" (SUBTYPE-TCC) NIL) (|rho_TCC13| "" (SUBTYPE-TCC) NIL) (|rho_TCC14| "" (SKOSIMP*) (("" (HIDE -8 -9 -10 -11) (("" (INST? -5) (("" (LIFT-IF) (("" (SIMP) NIL))))))))) (|rho_TCC15| "" (SKOSIMP*) (("" (EXPAND "chooseFU") (("" (HIDE -8 -9 -10 -11) (("" (LIFT-IF) (("" (SPLIT -13) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST? -5) (("2" (INST? 1) (("2" (SIMP) NIL))))))))))))))))) (|rho_TCC16| "" (SUBTYPE-TCC) NIL) (|rho_TCC17| "" (SUBTYPE-TCC) NIL) (|rho_TCC18| "" (SUBTYPE-TCC) NIL) (|rho_TCC19| "" (SUBTYPE-TCC) NIL) (|rho_TCC20| "" (SUBTYPE-TCC) NIL) (|rho_TCC21| "" (SUBTYPE-TCC) NIL) (|rho_TCC22| "" (SKOSIMP*) (("" (HIDE -8 -9 -10 -11) (("" (INST? -5) (("" (EXPAND "chooseFU") (("" (EXPAND "choose") (("" (LIFT-IF) (("" (SPLIT -13) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST? +) (("2" (SIMP) NIL)))))))))))))))))))) $$$InvDefs.pvs InvDefs[N, R, U, Z: posnat, (IMPORTING more_nat_types[1]) B: greater_one_nat]: THEORY BEGIN IMPORTING InOrder[N, R, U, Z, B] RF, RF_p: VAR [REG_ID -> RF_TYPE] RAT, RAT_p: VAR [REG_ID -> RAT_TYPE] ROB, ROB_p: VAR [ROB_ID -> ROB_TYPE] nextB, nextB_p: VAR ROB_ID oldestB, oldestB_p: VAR ROB_ID RS, RS_p: VAR [SLOT_ID -> RS_TYPE] res, res_p: VAR [FU_ID -> result_TYPE] top, top_p: VAR upto_nz[1 + N] FU: VAR FU_ID S: VAR SLOT_ID r: VAR REG_ID rb: VAR ROB_ID busyRATprop(RAT, ROB, nextB, oldestB): boolean = (FORALL r: b(RAT(r)) IMPLIES (al(RAT(r)) > 0 AND occ_buffer(al(RAT(r)), nextB, oldestB) AND (FORALL (r2: REG_ID): b(RAT(r2)) AND al(RAT(r)) = al(RAT(r2)) IMPLIES r = r2) AND t(ROB(al(RAT(r)))) = r)) OccBuffBusyRATprop(RAT, ROB, nextB, oldestB): boolean = (FORALL rb: occ_buffer(rb, nextB, oldestB) IMPLIES b(RAT(t(ROB(rb))))) RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB): boolean = (FORALL (rb1: ROB_ID): b(RAT(t(ROB(rb1)))) AND al(RAT(t(ROB(rb1)))) = rb1 IMPLIES (occ_buffer(rb1, nextB, oldestB) AND (FORALL (rb2: ROB_ID): (occ_buffer(rb2, nextB, oldestB) AND t(ROB(rb1)) = t(ROB(rb2))) IMPLIES (rb1 = rb2 OR preceed(rb2, rb1, nextB, oldestB))))) BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB): boolean = (FORALL r: b(RAT(r)) AND al(RAT(r)) > 0 IMPLIES (FORALL rb: (occ_buffer(rb, nextB, oldestB) AND t(ROB(rb)) = r) IMPLIES weakPreceed(rb, al(RAT(r)), nextB, oldestB))) RSprodUniqueProp(RS): boolean = (FORALL (S1, S2: SLOT_ID): oc(RS(S1)) AND oc(RS(S2)) AND p(RS(S1)) = p(RS(S2)) IMPLIES S1 = S2) activeResProp(res, RS, ROB, nextB, oldestB): boolean = (FORALL FU: a(res(FU)) IMPLIES (p(res(FU)) > 0 AND NOT (EXISTS S: oc(RS(S)) AND p(RS(S)) = p(res(FU))) AND occ_buffer(p(res(FU)), nextB, oldestB) AND b(rt(ROB(p(res(FU))))) AND (FORALL (FU2: FU_ID): (a(res(FU2)) AND p(res(FU2)) = p(res(FU))) IMPLIES FU = FU2))) occRSprop(RS, ROB, nextB, oldestB): boolean = (FORALL S: oc(RS(S)) IMPLIES (p(RS(S)) > 0 AND occ_buffer(p(RS(S)), nextB, oldestB) AND b(rt(ROB(p(RS(S))))) AND (FORALL (j: TWO): r(ss(RS(S))(j)) > 0 AND (b(ss(RS(S))(j)) OR p(ss(RS(S))(j)) > 0 AND preceed(p(ss(RS(S))(j)), p(RS(S)), nextB, oldestB) IMPLIES (p(ss(RS(S))(j)) > 0 AND (b(rt(ROB(p(ss(RS(S))(j))))) IFF b(ss(RS(S))(j))) AND occ_buffer(p(ss(RS(S))(j)), nextB, oldestB) AND t(ROB(p(ss(RS(S))(j)))) = r(ss(RS(S))(j))))))) busyOperandsNearestProp(RS, ROB, nextB, oldestB): boolean = (FORALL S, (j: TWO): (oc(RS(S)) AND b(ss(RS(S))(j))) IMPLIES (p(RS(S)) > 0 AND p(ss(RS(S))(j)) > 0 AND preceed(p(ss(RS(S))(j)), p(RS(S)), nextB, oldestB) AND (FORALL rb: (occ_buffer(rb, nextB, oldestB) AND t(ROB(rb)) = r(ss(RS(S))(j))) IMPLIES weakPreceed(rb, p(ss(RS(S))(j)), nextB, oldestB) OR weakPreceed(p(RS(S)), rb, nextB, oldestB)))) writtenBOperandsNearestProp(RS, ROB, nextB, oldestB): boolean = (FORALL S, (j: TWO): (oc(RS(S)) AND NOT b(ss(RS(S))(j)) AND p(ss(RS(S))(j)) > 0 AND p(RS(S)) > 0 AND preceed(p(ss(RS(S))(j)), p(RS(S)), nextB, oldestB)) IMPLIES (r(ss(RS(S))(j)) > 0 AND v(ss(RS(S))(j)) = v(rt(ROB(p(ss(RS(S))(j))))) AND t(ROB(p(ss(RS(S))(j)))) = r(ss(RS(S))(j)) AND NOT b(rt(ROB(p(ss(RS(S))(j))))) AND (FORALL rb: (occ_buffer(rb, nextB, oldestB) AND t(ROB(rb)) = r(ss(RS(S))(j))) IMPLIES weakPreceed(rb, p(ss(RS(S))(j)), nextB, oldestB) OR weakPreceed(p(RS(S)), rb, nextB, oldestB)))) RetiredOperandsMatchRFprop(RF, RS, ROB, nextB, oldestB): boolean = (FORALL S, (j: TWO): (oc(RS(S)) AND NOT b(ss(RS(S))(j)) AND p(RS(S)) > 0 AND (p(ss(RS(S))(j)) = 0 OR p(ss(RS(S))(j)) > 0 AND NOT preceed(p(ss(RS(S))(j)), p(RS(S)), nextB, oldestB))) IMPLIES (r(ss(RS(S))(j)) > 0 AND v(ss(RS(S))(j)) = v(RF(r(ss(RS(S))(j)))) AND (FORALL rb: (occ_buffer(rb, nextB, oldestB) AND t(ROB(rb)) = r(ss(RS(S))(j))) IMPLIES weakPreceed(p(RS(S)), rb, nextB, oldestB)))) END InvDefs $$$InvDefs.prf (|InvDefs| (|busyRATprop_TCC1| "" (SUBTYPE-TCC) NIL) (|mostRecentROB_TCC1| "" (SUBTYPE-TCC)) (|mostRecentROB_TCC2| "" (SUBTYPE-TCC) NIL) (|BuffsPreceedAliasProp_TCC1| "" (SUBTYPE-TCC) NIL) (|activeResProp_TCC1| "" (SUBTYPE-TCC) NIL) (|occRSprop_TCC1| "" (SUBTYPE-TCC) NIL) (|occRSprop_TCC2| "" (SUBTYPE-TCC) NIL) (|occRSprop_TCC3| "" (SUBTYPE-TCC) NIL) (|occRSprop_TCC4| "" (SUBTYPE-TCC) NIL) (|occRSprop_TCC5| "" (SUBTYPE-TCC) NIL) (|occRSprop_TCC6| "" (SUBTYPE-TCC) NIL) (|busyOperandsNearestProp_TCC1| "" (SUBTYPE-TCC) NIL) (|busyOperandsNearestProp_TCC2| "" (SUBTYPE-TCC) NIL) (|busyOperandsNearestProp_TCC3| "" (SUBTYPE-TCC) NIL) (|writtenBOperandsNearestProp_TCC1| "" (SUBTYPE-TCC) NIL) (|writtenBOperandsNearestProp_TCC2| "" (SUBTYPE-TCC) NIL) (|writtenBOperandsNearestProp_TCC3| "" (SUBTYPE-TCC) NIL) (|RetiredOperandsMatchRFprop_TCC1| "" (SUBTYPE-TCC) NIL) (|RetiredOperandsMatchRFprop_TCC2| "" (SUBTYPE-TCC) NIL)) $$$InOrderProp.pvs InOrderProp[N, R, U, Z: posnat, (IMPORTING more_nat_types[1]) B: greater_one_nat]: THEORY BEGIN IMPORTING InvDefs[N, R, U, Z, B] RF, RF_p: VAR [REG_ID -> RF_TYPE] RAT, RAT_p: VAR [REG_ID -> RAT_TYPE] ROB, ROB_p: VAR [ROB_ID -> ROB_TYPE] nextB, nextB_p: VAR ROB_ID oldestB, oldestB_p: VAR ROB_ID RS, RS_p: VAR [SLOT_ID -> RS_TYPE] res, res_p: VAR [FU_ID -> result_TYPE] top, top_p: VAR upto_nz[1 + N] FU: VAR FU_ID S: VAR SLOT_ID r: VAR REG_ID rb: VAR ROB_ID ROBremainsOcc: LEMMA (FORALL rb, nextB, oldestB: occ_buffer(rb, nextB, oldestB) AND succ(nextB) /= oldestB IMPLIES occ_buffer(rb, succ(nextB), oldestB)) NewOcc: LEMMA (FORALL rb, nextB, oldestB: occ_buffer(rb, succ(nextB), oldestB) AND NOT occ_buffer(rb, nextB, oldestB) AND succ(nextB) /= oldestB IMPLIES rb = nextB) oldestBretired: LEMMA (FORALL rb, nextB, oldestB: occ_buffer(rb, nextB, oldestB) IMPLIES (NOT occ_buffer(rb, nextB, succ(oldestB)) IFF rb = oldestB)) nextBfree: LEMMA (FORALL nextB, oldestB: NOT occ_buffer(nextB, nextB, oldestB)) occAfterRetireIfBefore: LEMMA (FORALL rb, nextB, oldestB: occ_buffer(rb, nextB, succ(oldestB)) AND nextB /= oldestB IMPLIES occ_buffer(rb, nextB, oldestB)) BuffsPreceedAlias: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) IMPLIES BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) busyRAT_issue: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyRATprop(RAT_p, ROB_p, nextB_p, oldestB_p) busyRAT_execute: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyRATprop(RAT_p, ROB_p, nextB_p, oldestB_p) busyRAT_writeb: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyRATprop(RAT_p, ROB_p, nextB_p, oldestB_p) busyRAT_retire: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyRATprop(RAT_p, ROB_p, nextB_p, oldestB_p) OccBuffBusyRAT_issue: LEMMA OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES OccBuffBusyRATprop(RAT_p, ROB_p, nextB_p, oldestB_p) OccBuffBusyRAT_execute: LEMMA OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES OccBuffBusyRATprop(RAT_p, ROB_p, nextB_p, oldestB_p) OccBuffBusyRAT_writeb: LEMMA OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES OccBuffBusyRATprop(RAT_p, ROB_p, nextB_p, oldestB_p) OccBuffBusyRAT_retire: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES OccBuffBusyRATprop(RAT_p, ROB_p, nextB_p, oldestB_p) RATpointsNewestBuffProp_issue: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RATpointsNewestBuffProp(RAT_p, ROB_p, nextB_p, oldestB_p) RATpointsNewestBuffProp_execute: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RATpointsNewestBuffProp(RAT_p, ROB_p, nextB_p, oldestB_p) RATpointsNewestBuffProp_writeb: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RATpointsNewestBuffProp(RAT_p, ROB_p, nextB_p, oldestB_p) RATpointsNewestBuffProp_retire: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RATpointsNewestBuffProp(RAT_p, ROB_p, nextB_p, oldestB_p) RSprodUnique_issue: LEMMA RSprodUniqueProp(RS) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RSprodUniqueProp(RS_p) RSprodUnique_execute: LEMMA RSprodUniqueProp(RS) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RSprodUniqueProp(RS_p) RSprodUnique_writeb: LEMMA RSprodUniqueProp(RS) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RSprodUniqueProp(RS_p) RSprodUnique_retire: LEMMA RSprodUniqueProp(RS) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RSprodUniqueProp(RS_p) ActiveRes_issue: LEMMA activeResProp(res, RS, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES activeResProp(res_p, RS_p, ROB_p, nextB_p, oldestB_p) ActiveRes_execute: LEMMA occRSprop(RS, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) AND RSprodUniqueProp(RS) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES activeResProp(res_p, RS_p, ROB_p, nextB_p, oldestB_p) ActiveRes_writeb: LEMMA activeResProp(res, RS, ROB, nextB, oldestB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES activeResProp(res_p, RS_p, ROB_p, nextB_p, oldestB_p) ActiveRes_retire: LEMMA activeResProp(res, RS, ROB, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES activeResProp(res_p, RS_p, ROB_p, nextB_p, oldestB_p) occRS_issue: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES occRSprop(RS_p, ROB_p, nextB_p, oldestB_p) occRS_execute: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES occRSprop(RS_p, ROB_p, nextB_p, oldestB_p) occRS_writeb: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES occRSprop(RS_p, ROB_p, nextB_p, oldestB_p) occRS_retire: LEMMA busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES occRSprop(RS_p, ROB_p, nextB_p, oldestB_p) busyOperandsNearest_issue: LEMMA busyOperandsNearestProp(RS, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyOperandsNearestProp(RS_p, ROB_p, nextB_p, oldestB_p) busyOperandsNearest_execute: LEMMA busyOperandsNearestProp(RS, ROB, nextB, oldestB) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyOperandsNearestProp(RS_p, ROB_p, nextB_p, oldestB_p) busyOperandsNearest_writeb: LEMMA busyOperandsNearestProp(RS, ROB, nextB, oldestB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyOperandsNearestProp(RS_p, ROB_p, nextB_p, oldestB_p) busyOperandsNearest_retire: LEMMA busyOperandsNearestProp(RS, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyOperandsNearestProp(RS_p, ROB_p, nextB_p, oldestB_p) writtenBOperandsNearest_issue: LEMMA writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES writtenBOperandsNearestProp(RS_p, ROB_p, nextB_p, oldestB_p) writtenBOperandsNearest_execute: LEMMA writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES writtenBOperandsNearestProp(RS_p, ROB_p, nextB_p, oldestB_p) writtenBOperandsNearest_writeb: LEMMA writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) AND busyOperandsNearestProp(RS, ROB, nextB, oldestB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES writtenBOperandsNearestProp(RS_p, ROB_p, nextB_p, oldestB_p) writtenBOperandsNearest_retire: LEMMA writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES writtenBOperandsNearestProp(RS_p, ROB_p, nextB_p, oldestB_p) RetiredOperandsMatchRF_issue: LEMMA RetiredOperandsMatchRFprop(RF, RS, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RetiredOperandsMatchRFprop(RF_p, RS_p, ROB_p, nextB_p, oldestB_p) RetiredOperandsMatchRF_execute: LEMMA RetiredOperandsMatchRFprop(RF, RS, ROB, nextB, oldestB) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RetiredOperandsMatchRFprop(RF_p, RS_p, ROB_p, nextB_p, oldestB_p) RetiredOperandsMatchRF_writeb: LEMMA RetiredOperandsMatchRFprop(RF, RS, ROB, nextB, oldestB) AND busyOperandsNearestProp(RS, ROB, nextB, oldestB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RetiredOperandsMatchRFprop(RF_p, RS_p, ROB_p, nextB_p, oldestB_p) RetiredOperandsMatchRF_retire: LEMMA RetiredOperandsMatchRFprop(RF, RS, ROB, nextB, oldestB) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RetiredOperandsMatchRFprop(RF_p, RS_p, ROB_p, nextB_p, oldestB_p) END InOrderProp $$$InOrderProp.prf (|InOrderProp| (|ROBremainsOcc| "" (SKOSIMP*) (("" (GRIND) NIL))) (|NewOcc| "" (SKOSIMP*) (("" (EXPAND "occ_buffer") (("" (EXPAND "succ") (("" (LIFT-IF) (("" (SPLIT 2) (("1" (SIMP) (("1" (SPLIT 2) (("1" (SIMP) (("1" (SPLIT 1) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) (("2" (SPLIT -2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (SIMP) NIL) ("2" (PROPAX) NIL))))))))))))) ("2" (SIMP) NIL))))))))))) (|oldestBretired| "" (GRIND) NIL) (|nextBfree| "" (GRIND) NIL) (|occAfterRetireIfBefore| "" (GRIND) NIL) (|BuffsPreceedAlias| "" (SKOSIMP*) (("" (EXPAND " BuffsPreceedAliasProp") (("" (SKOSIMP*) (("" (EXPAND "busyRATprop") (("" (INST?) (("" (SIMP) (("" (EXPAND " OccBuffBusyRATprop") (("" (INST? -2) (("" (EXPAND "weakPreceed") (("" (SIMP) (("" (HIDE 2) (("" (REVEAL 1) (("" (EXPAND "preceed") (("" (EXPAND "RATpointsNewestBuffProp") (("" (HIDE -5) (("" (SPLIT 1) (("1" (SIMP) (("1" (REPLACE -1) (("1" (REVEAL -1) (("1" (INST -1 "oldestB!1") (("1" (INST -6 "oldestB!1") (("1" (SIMP) (("1" (INST -1 "rb!1") (("1" (SIMP) NIL))))))))))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (REVEAL -1) (("2" (INST?) (("2" (SIMP) (("2" (INST -1 "rb!1") (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))) (|busyRAT_issue| "" (EXPAND "busyRATprop") (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE -4) (("" (REPLACE -7) (("" (REPLACE -9) (("" (SIMP) (("" (HIDE -4 -7 -9 -10) (("" (HIDE -4 -5 -6) (("" (CASE " Sn!1 > 0 ") (("1" (SIMP) (("1" (EXPAND "dispatch") (("1" (SPLIT -5) (("1" (SIMP) (("1" (HIDE -3) (("1" (SPLIT 3) (("1" (EXPAND "occ_buffer" 1) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -4) (("1" (SPLIT 1) (("1" (SIMP) NIL) ("2" (SIMP) NIL))) ("2" (SIMP) NIL))))))))) ("2" (SKOSIMP*) (("2" (LIFT-IF) (("2" (SPLIT -1) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (REVEAL -1) (("2" (INST?) (("2" (SIMP) (("2" (LEMMA "nextBfree") (("2" (INST -1 "nextB!1" "oldestB!1") (("2" (SIMP) NIL))))))))))))))))))))))))) ("2" (SIMP) (("2" (INST? -3) (("2" (SIMP) (("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST -1 "al(RAT!1(r!1))" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (LIFT-IF) (("2" (LEMMA "nextBfree") (("2" (INST -1 "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (SKOSIMP*) (("2" (LIFT-IF) (("2" (SPLIT -11) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST -7 "r2!1") (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP) (("2" (HIDE -2) (("2" (INST?) (("2" (SIMP) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) (|busyRAT_execute| "" (EXPAND "busyRATprop") (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (GRIND) NIL))))))) (|busyRAT_writeb| "" (EXPAND "busyRATprop") (("" (EXPAND "rho_writeb") (("" (SKOSIMP*) (("" (HIDE -6 -10 -8) (("" (REPLACE -6) (("" (INST?) (("" (GRIND) NIL))))))))))))) (|busyRAT_retire| "" (EXPAND " busyRATprop") (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE -9) (("" (HIDE -6 -8 -9 -10) (("" (INST-CP -1 "r!1") (("" (SPLIT 1) (("1" (REPLACE -7) (("1" (SIMP) (("1" (GRIND) NIL))))) ("2" (REPLACE -7) (("2" (HIDE -7) (("2" (GRIND) NIL))))) ("3" (SKOSIMP*) (("3" (REPLACE -9) (("3" (HIDE -9) (("3" (SIMP) (("3" (SPLIT -9) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST -7 "r2!1") (("2" (SIMP) NIL))))))))))))))))))) ("4" (REPLACE -7) (("4" (HIDE -7) (("4" (SIMP) (("4" (SPLIT -7) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))))))))))))) (|OccBuffBusyRAT_issue| "" (SKOSIMP*) (("" (GRIND) NIL))) (|OccBuffBusyRAT_execute| "" (GRIND) NIL) (|OccBuffBusyRAT_writeb| "" (GRIND) NIL) (|OccBuffBusyRAT_retire| "" (SKOSIMP*) (("" (LEMMA "busyRAT_retire") (("" (INST?) (("" (SIMP) (("" (EXPAND "busyRATprop" -1) (("" (EXPAND "OccBuffBusyRATprop") (("" (SKOSIMP*) (("" (INST? -1) (("" (SIMP) (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE -12) (("" (REPLACE -10) (("" (HIDE -9 -10 -11 -13 -13) (("" (SIMP) (("" (LIFT-IF) (("" (SPLIT 1) (("1" (SIMP) (("1" (HIDE -6 -7) (("1" (INST -5 "oldestB!1") (("1" (EXPAND "busyRATprop") (("1" (SIMP) (("1" (HIDE -3) (("1" (REVEAL -2 -3) (("1" (HIDE -7 -10) (("1" (REVEAL -6) (("1" (REPLACE -1) (("1" (LEMMA "occAfterRetireIfBefore") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (LEMMA "nextBfree") (("1" (INST -1 "nextB!1" "oldestB!1") (("1" (CASE "nextB!1 = oldestB!1") (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST -3 "rb!1") (("2" (SIMP) (("2" (HIDE -2) (("2" (INST? -6) (("2" (SIMP) (("2" (REPLACE -5) (("2" (EXPAND " RATpointsNewestBuffProp") (("2" (INST -3 "oldestB!1") (("2" (SIMP) (("2" (INST -3 "rb!1") (("2" (SIMP) (("2" (SPLIT -3) (("1" (REPLACE -1 :DIR RL) (("1" (LEMMA "oldestBretired") (("1" (INST -1 "oldestB!1" "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))))) ("2" (EXPAND "preceed") (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (REPLACE -5) (("2" (HIDE -5 -6) (("2" (HIDE -7) (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "occ_buffer" (-6 3)) (("2" (SPLIT -4) (("1" (SIMP) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -2) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SPLIT -8) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT 5) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (SPLIT -7) (("1" (SIMP) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))))) ("2" (SIMP) NIL))))))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))) (|RATpointsNewestBuffProp_issue| "" (SKOSIMP*) (("" (LEMMA "busyRAT_issue") (("" (INST?) (("" (SIMP) (("" (EXPAND "RATpointsNewestBuffProp") (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE -12) (("" (HIDE -11 -12 -13) (("" (SIMP) (("" (REPLACE -7) (("" (HIDE -7 -9) (("" (REPLACE -8) (("" (HIDE -8) (("" (SIMP) (("" (LIFT-IF) (("" (SPLIT -6) (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) (("1" (HIDE -10 -11) (("1" (EXPAND "busyRATprop" -4) (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (HIDE -8) (("1" (CASE "NOT occ_buffer(rb1!1, nextB_p!1, oldestB!1)") (("1" (HIDE -4) (("1" (EXPAND "occ_buffer" 1) (("1" (REPLACE -1) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -3) (("1" (SIMP) (("1" (HIDE 2) (("1" (SPLIT 1) (("1" (SIMP) (("1" (REPLACE -3) (("1" (SIMP) (("1" (ASSERT :FLUSH? T) NIL))))))) ("2" (SIMP) (("2" (REPLACE -2) (("2" (SIMP) NIL))))))))))) ("2" (HIDE 2) (("2" (SIMP) NIL))))))))))))))) ("2" (SIMP) (("2" (SPLIT 1) (("1" (PROPAX) NIL) ("2" (SKOSIMP*) (("2" (LIFT-IF) (("2" (SPLIT -2) (("1" (SIMP) (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (HIDE -7) (("2" (EXPAND "preceed ") (("2" (SIMP) (("2" (HIDE -9) (("2" (LEMMA "nextBfree") (("2" (INST -1 "nextB!1" "oldestB!1") (("2" (REPLACE -4) (("2" (CASE "NOT occ_buffer(rb2!1, nextB!1, oldestB!1)") (("1" (LEMMA "NewOcc") (("1" (INST -1 "rb2!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (REPLACE 3) (("1" (SIMP) NIL))))))))) ("2" (SPLIT 4) (("1" (PROPAX) NIL) ("2" (SIMP) (("2" (EXPAND "occ_buffer" -2) (("2" (SIMP) (("2" (REPLACE -1) (("2" (SIMP) NIL))))))))) ("3" (SIMP) (("3" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "occ_buffer" -1) (("2" (SPLIT -1) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (SIMP) (("1" (SPLIT 3) (("1" (SIMP) NIL) ("2" (PROPAX) NIL))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (REPLACE 1) (("2" (EXPAND "dispatch") (("2" (HIDE -3 -8) (("2" (SPLIT -8) (("1" (SIMP) (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (INST? -6) (("2" (SIMP) (("2" (SPLIT -6) (("1" (SIMP) (("1" (LEMMA "ROBremainsOcc") (("1" (INST -1 "rb1!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (SPLIT -1) (("1" (SIMP) (("1" (SPLIT 3) (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (LIFT-IF) (("2" (REPLACE 3) (("2" (SPLIT -2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST -5 "rb2!1") (("2" (SIMP) (("2" (SPLIT -5) (("1" (PROPAX) NIL) ("2" (SIMP) (("2" (EXPAND "preceed") (("2" (SIMP) (("2" (SPLIT -3) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (REPLACE -10) (("2" (SPLIT 4) (("1" (PROPAX) NIL) ("2" (SIMP) NIL) ("3" (SIMP) NIL))))))))))))))) ("3" (SIMP) (("3" (LEMMA "NewOcc") (("3" (INST -1 "rb2!1" "nextB!1" "oldestB!1") (("3" (SIMP) NIL))))))))))))))))))))))))))) ("2" (PROPAX) NIL))))))))))) ("2" (PROPAX) NIL))))))))))))))))))))))) ("2" (SIMP) (("2" (REPLACE -1) (("2" (HIDE -1 -2 -6) (("2" (INST? -3) (("2" (SIMP) (("2" (SPLIT -3) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))) (|RATpointsNewestBuffProp_execute| "" (SKOSIMP*) (("" (HIDE -1 -3 -4) (("" (HIDE -1) (("" (REVEAL -1 -2 -3 -4) (("" (EXPAND "RATpointsNewestBuffProp") (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (REPLACE -4) (("" (REPLACE -5) (("" (REPLACE -9) (("" (REPLACE -11) (("" (HIDE -4 -5 -6 -7 -8 -9 -10 -11 -12) (("" (INST? -3) (("" (SIMP) NIL))))))))))))))))))))))))))) (|RATpointsNewestBuffProp_writeb| "" (SKOSIMP*) (("" (EXPAND "RATpointsNewestBuffProp") (("" (SKOSIMP*) (("" (INST -3 "rb1!1") (("" (EXPAND "rho_writeb") (("" (SKOSIMP*) (("" (REPLACE -4) (("" (REPLACE -5) (("" (REPLACE -9) (("" (REPLACE -11) (("" (SIMP) (("" (HIDE -4 -5 -6 -7 -8 -9 -10 -11 -12) (("" (SIMP) NIL))))))))))))))))))))))))) (|RATpointsNewestBuffProp_retire| "" (SKOSIMP*) (("" (HIDE -1 -2 -3) (("" (REVEAL -1 -2 -3) (("" (LEMMA "busyRAT_retire") (("" (INST?) (("" (SIMP) (("" (EXPAND " RATpointsNewestBuffProp") (("" (SKOSIMP*) (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE -5) (("" (REPLACE -12) (("" (REPLACE -10) (("" (HIDE -5 -6 -9 -10 -11 -12 -13) (("" (LIFT-IF) (("" (SIMP) (("" (SPLIT -7) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST -5 "rb1!1") (("2" (SIMP) (("2" (SPLIT -7) (("1" (SIMP) (("1" (EXPAND "busyRATprop" -4) (("1" (INST?) (("1" (SIMP) (("1" (LIFT-IF) (("1" (SIMP) (("1" (SPLIT -4) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (HIDE 1) (("2" (CASE "rb1!1 = oldestB!1") (("1" (REPLACE -1) (("1" (PROPAX) NIL))) ("2" (LEMMA "oldestBretired") (("2" (INST -1 "rb1!1" "nextB!1" "oldestB!1") (("2" (REPLACE 1) (("2" (SIMP) (("2" (SPLIT -1) (("1" (SPLIT 4) (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (INST -12 "rb2!1") (("2" (SIMP) (("2" (LEMMA "occAfterRetireIfBefore") (("2" (INST -1 "rb2!1" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer" -13) (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (SPLIT -13) (("1" (PROPAX) NIL) ("2" (EXPAND "preceed") (("2" (SIMP) (("2" (SPLIT -2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (REPLACE 1) (("2" (LEMMA "oldestBretired") (("2" (HIDE -9) (("2" (SIMP) (("2" (SPLIT -2) (("1" (SIMP) (("1" (LEMMA "oldestBretired") (("1" (HIDE -9) (("1" (HIDE -2) (("1" (INST -1 "rb1!1" "nextB!1" "oldestB!1") (("1" (SPLIT -1) (("1" (SIMP) (("1" (REPLACE 1) (("1" (SIMP) (("1" (HIDE -2) (("1" (SPLIT 4) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (REPLACE -1) (("2" (REPLACE -10) (("2" (REVEAL -5) (("2" (SIMP) (("2" (SIMP) (("2" (LEMMA "oldestBretired") (("2" (INST -1 "rb2!1" "nextB!1" "oldestB!1") (("2" (SIMP) NIL))))))))))))))))) ("3" (SIMP) (("3" (EXPAND "succ") (("3" (LIFT-IF) (("3" (SPLIT -1) (("1" (SIMP) (("1" (SIMP) (("1" (HIDE -3) (("1" (EXPAND "occ_buffer") (("1" (SIMP-SPLIT -) NIL))))))))) ("2" (SIMP) (("2" (HIDE -2) (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))))))))))))))))))) ("2" (PROPAX) NIL))))))))))))) ("2" (SIMP) (("2" (REPLACE*) (("2" (SIMP) (("2" (ASSERT :FLUSH? T) (("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT -) (("1" (HIDE -5) (("1" (SIMP-SPLIT -) NIL))))))) ("2" (SIMP-SPLIT) (("2" (HIDE -2) (("2" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -3) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT -) NIL))))))) ("2" (SIMP-SPLIT -5) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (PROPAX) NIL))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (REPLACE*) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))) (|RSprodUnique_issue| "" (EXPAND "RSprodUniqueProp") (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE -11) (("" (HIDE -5 -6 -7 -8 -9 -10 -11) (("" (SIMP) (("" (SPLIT -3) (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (SPLIT -6) (("1" (SIMP) (("1" (EXPAND "occRSprop") (("1" (INST -5 "S2!1") (("1" (SIMP) (("1" (EXPAND "occ_buffer") (("1" (SIMP) (("1" (REPLACE -10) (("1" (HIDE -7) (("1" (SIMP) (("1" (SPLIT -5) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))))))))))) ("2" (SIMP) (("2" (LIFT-IF) (("2" (SPLIT -8) (("1" (SIMP) (("1" (EXPAND "occRSprop") (("1" (INST -7 "S1!1") (("1" (SIMP) (("1" (HIDE -9) (("1" (REPLACE -2) (("1" (LEMMA "nextBfree") (("1" (INST?) NIL))))))))))))))) ("2" (SIMP) (("2" (INST -5 "S1!1" "S2!1") (("2" (SIMP) NIL))))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP) (("2" (INST -1 "S1!1" "S2!1") (("2" (SIMP) NIL))))))))))))))))))))) (|RSprodUnique_execute| "" (GRIND) (("" (INST -6 "S1!1" "S2!1") (("" (SIMP) NIL))))) (|RSprodUnique_writeb| "" (EXPAND " RSprodUniqueProp") (("" (SKOSIMP*) (("" (EXPAND " rho_writeb") (("" (SKOSIMP*) (("" (REPLACE -10) (("" (SIMP) (("" (HIDE -10) (("" (INST -1 "S1!1" "S2!1") (("" (HIDE -2 -3 -4 -5 -6 -7 -8 -9) (("" (GRIND) NIL))))))))))))))))))) (|RSprodUnique_retire| "" (EXPAND " RSprodUniqueProp") (("" (SKOSIMP*) (("" (INST -1 "S1!1" "S2!1") (("" (GRIND) NIL))))))) (|ActiveRes_issue| "" (EXPAND "activeResProp") (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE -4) (("" (REPLACE -6) (("" (REPLACE -9) (("" (REPLACE -10) (("" (HIDE -4 -6 -9 -10 -8 -7) (("" (SIMP) (("" (INST?) (("" (SIMP) (("" (SIMP) (("" (SPLIT 2) (("1" (SKOSIMP*) (("1" (SPLIT -1) (("1" (SIMP) (("1" (LEMMA "nextBfree") (("1" (INST -1 "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))))) ("2" (SIMP) (("2" (REPLACE 1) (("2" (INST?) (("2" (SIMP) NIL))))))))))) ("2" (LEMMA "ROBremainsOcc") (("2" (LIFT-IF) (("2" (SPLIT -6) (("1" (EXPAND "dispatch") (("1" (INST -2 "p(res!1(FU!1))" " nextB!1" " oldestB!1") (("1" (SIMP) NIL))))) ("2" (SIMP) NIL))))))) ("3" (PROPAX) NIL))))))))))))))))))))))))))) (|ActiveRes_execute| "" (EXPAND " activeResProp") (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (REPLACE -4) (("" (REPLACE -5) (("" (REPLACE -11) (("" (REPLACE -8) (("" (SIMP) (("" (REPLACE -12) (("" (SIMP) (("" (HIDE -8 -9 -10 -11 -12) (("" (HIDE -4 -5 -6) (("" (SPLIT -5) (("1" (SIMP) (("1" (INST? -5) (("1" (SIMP) (("1" (EXPAND "enabled") (("1" (EXPAND "occRSprop") (("1" (SIMP) (("1" (INST?) (("1" (SIMP) (("1" (SIMP) (("1" (HIDE -5 -6) (("1" (SPLIT 5) (("1" (SKOSIMP*) (("1" (SPLIT -1) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST? 1) (("2" (SIMP) (("2" (EXPAND " RSprodUniqueProp") (("2" (INST -7 "S!1" "iex!1(FU!1)") (("2" (SIMP) NIL))))))))))))))) ("2" (SKOSIMP*) (("2" (LIFT-IF) (("2" (SPLIT -1) (("1" (SIMP) (("1" (REVEAL -4) (("1" (INST -1 "FU2!1") (("1" (EXPAND "enabled") (("1" (EXPAND " RSprodUniqueProp") (("1" (INST -8 "iex!1(FU2!1)" " iex!1(FU!1) ") (("1" (SIMP) NIL))))))))))))) ("2" (SIMP) (("2" (REPLACE 1) (("2" (REVEAL -2) (("2" (INST?) (("2" (SIMP) (("2" (INST? 1) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (REPLACE 1) (("2" (INST? -3) (("2" (SIMP) (("2" (HIDE -8) (("2" (SIMP) (("2" (SPLIT 3) (("1" (SKOSIMP*) (("1" (SPLIT -1) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST? 3) (("2" (SIMP) NIL))))))))) ("2" (SKOSIMP*) (("2" (LIFT-IF) (("2" (SPLIT -2) (("1" (SIMP) (("1" (REVEAL -1) (("1" (INST?) (("1" (EXPAND "enabled") (("1" (SIMP) (("1" (INST? 7) (("1" (SIMP) NIL))))))))))))) ("2" (SIMP) (("2" (REPLACE 1) (("2" (INST -8 "FU2!1") (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))) (|ActiveRes_writeb| "" (EXPAND "activeResProp") (("" (EXPAND "rho_writeb") (("" (SKOSIMP*) (("" (REPLACE -2) (("" (REPLACE -6) (("" (REPLACE -10) (("" (SIMP) (("" (HIDE -6 -7 -8 -9 -10) (("" (HIDE -2 -3 -4) (("" (INST? -1) (("" (SIMP) (("" (SIMP) (("" (SPLIT 3) (("1" (SKOSIMP*) (("1" (INST? 1) (("1" (SIMP) NIL))))) ("2" (REVEAL -8) (("2" (REPLACE -1) (("2" (HIDE -1) (("2" (SIMP) (("2" (SPLIT 1) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (INST -7 "FU!2") (("1" (INST -6 "FU!2") (("1" (SIMP) NIL))))))))) ("2" (SIMP) NIL))))))))))) ("3" (SKOSIMP*) (("3" (INST -6 "FU2!1") (("3" (SIMP) NIL))))))))))))))))))))))))))))))) (|ActiveRes_retire| "" (EXPAND "activeResProp") (("" (EXPAND " rho_retire") (("" (SKOSIMP*) (("" (REPLACE -6) (("" (REPLACE -2) (("" (REPLACE -9) (("" (REPLACE -10) (("" (HIDE -2 -3 -6 -7 -8 -9 -10) (("" (INST?) (("" (SIMP) (("" (SIMP) (("" (LIFT-IF) (("" (SPLIT -5) (("1" (SIMP) (("1" (LEMMA "oldestBretired") (("1" (INST -1 "p(res!1(FU!1))" "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))) (|occRS_issue| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5) (("" (REVEAL -1 -2 -3 -4 -5) (("" (EXPAND "occRSprop") (("" (SKOSIMP*) (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE -7) (("" (REPLACE -13) (("" (SIMP) (("" (REPLACE -12) (("" (SIMP) (("" (HIDE -7 -8 -9 -10 -11 -12 -13) (("" (CASE "NOT Sn!1 > 0") (("1" (SIMP) (("1" (INST? -4) (("1" (SIMP) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (INST -7 "j!1") (("1" (SIMP) (("1" (SPLIT -8) (("1" (SIMP) (("1" (SPLIT 2) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))) ("2" (SIMP) (("2" (SIMP) NIL))))))))))))))))))) ("2" (SIMP) (("2" (CASE "S!1 = Sn!1") (("1" (SIMP) (("1" (HIDE -6) (("1" (EXPAND "succ") (("1" (CASE "NOT occ_buffer(nextB!1, nextB_p!1, oldestB!1)") (("1" (HIDE 2) (("1" (EXPAND "occ_buffer" 1) (("1" (LIFT-IF) (("1" (SPLIT -7) (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "dispatch") (("2" (PROPAX) NIL))))))))) ("2" (SIMP) (("2" (EXPAND "dispatch") (("2" (PROPAX) NIL))))))))))))) ("2" (SIMP) (("2" (SKOSIMP*) (("2" (EXPAND "dispatch") (("2" (SIMP) (("2" (CASE "b(RAT!1(src(prog(top!1))(j!1))) AND al(RAT!1(src(prog(top!1))(j!1))) > 0") (("1" (SIMP) (("1" (LIFT-IF) (("1" (SIMP) (("1" (EXPAND "busyRATprop") (("1" (INST? -6) (("1" (SIMP) (("1" (SPLIT 3) (("1" (SIMP) (("1" (LEMMA "nextBfree") (("1" (INST -1 "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))))) ("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST -1 " al(RAT!1(src(prog(top!1))(j!1))) " "nextB!1" "oldestB!1") (("2" (SIMP) NIL))))))))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP) NIL))))))))))))))))))))) ("2" (SIMP) (("2" (INST? -5) (("2" (EXPAND "dispatch") (("2" (SIMP) (("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST -1 "p(RS!1(S!1))" " nextB!1" " oldestB!1") (("2" (SIMP) (("2" (SKOSIMP*) (("2" (INST? -9) (("2" (SIMP) (("2" (CASE "NOT (b(ss(RS!1(S!1))(j!1)) OR p(ss(RS!1(S!1))(j!1)) > 0 AND preceed(p(ss(RS!1(S!1))(j!1)), p(RS!1(S!1)), nextB!1, oldestB!1))") (("1" (SIMP) (("1" (SIMP) (("1" (HIDE -10) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (EXPAND "preceed" (-14 2)) (("1" (SIMP) (("1" (SPLIT -15) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (SIMP) (("1" (REPLACE -1) (("1" (SPLIT 8) (("1" (SIMP) (("1" (EXPAND "occ_buffer" -9) (("1" (PROPAX) NIL))))) ("2" (SIMP) (("2" (EXPAND "OccBuffBusyRATprop") (("2" (INST?) (("2" (LEMMA "NewOcc") (("2" (INST -1 "oldestB!1" "nextB!1" "oldestB!1") (("2" (SIMP) NIL))))))))))))))))) ("2" (SIMP) (("2" (LEMMA "NewOcc") (("2" (INST -1 "p(ss(RS!1(S!1))(j!1))" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (SPLIT 9) (("1" (SIMP) (("1" (REPLACE -1) (("1" (HIDE 4 -2) (("1" (EXPAND "occ_buffer" -9) (("1" (SPLIT -2) (("1" (SIMP) (("1" (SPLIT -10) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (SPLIT -11) (("1" (SIMP) (("1" (LIFT-IF) (("1" (SIMP) (("1" (SPLIT 4) (("1" (SIMP) (("1" (REPLACE -1) (("1" (LEMMA "nextBfree") (("1" (INST -1 "nextB!1" "oldestB!1") NIL))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL) ("3" (LEMMA "ROBremainsOcc") (("3" (INST -1 "p(ss(RS!1(S!1))(j!1))" "nextB!1" "oldestB!1") (("3" (SIMP) NIL))))))))))))))))) ("2" (PROPAX) NIL))) ("3" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (|occRS_execute| "" (SKOSIMP*) (("" (EXPAND " occRSprop") (("" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5 -6) (("" (REVEAL -1 -2 -3 -4 -5 -6) (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (REPLACE -12) (("" (REPLACE -5) (("" (REPLACE -6) (("" (REPLACE -13) (("" (SIMP) (("" (HIDE -5 -6 -7 -9 -10 -11) (("" (HIDE -6 -7) (("" (INST?) (("" (SIMP) (("" (SPLIT -6) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))) (|occRS_writeb| "" (SKOSIMP*) (("" (EXPAND " occRSprop") (("" (SKOSIMP*) (("" (EXPAND " rho_writeb") (("" (SKOSIMP*) (("" (REPLACE -6) (("" (REPLACE -7) (("" (REPLACE -13) (("" (REPLACE -14) (("" (SIMP) (("" (HIDE -6 -7 -8 -12 -13 -14) (("" (HIDE -7 -8) (("" (CASE "NOT oc(RS!1(S!1))") (("1" (REPLACE 1) (("1" (PROPAX) NIL))) ("2" (SIMP) (("2" (INST?) (("2" (SIMP) (("2" (SIMP) (("2" (CASE " (EXISTS (FU: FU_ID[N, R, U, Z, B]): writeback!1(FU) AND p(res!1(FU)) = p(RS!1(S!1)))") (("1" (SIMP) (("1" (HIDE 1) (("1" (SKOSIMP*) (("1" (INST? -12) (("1" (EXPAND "activeResProp") (("1" (INST -11 "FU!1") (("1" (SIMP) (("1" (INST? 1) (("1" (SIMP) NIL))))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP) (("2" (SKOSIMP*) (("2" (INST? -8) (("2" (SIMP) (("2" (CASE "(b(ss(RS!1(S!1))(j!1)) OR p(ss(RS!1(S!1))(j!1)) > 0 AND preceed(p(ss(RS!1(S!1))(j!1)), p(RS!1(S!1)), nextB!1, oldestB!1))") (("1" (SPLIT -10) (("1" (SIMP) (("1" (LIFT-IF) (("1" (SIMP) (("1" (SPLIT 2) (("1" (SIMP) (("1" (HIDE -19) (("1" (SPLIT -2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SKOSIMP*) (("2" (INST 1 "FU!1") (("2" (SIMP) NIL))))))))))))) ("2" (SIMP) (("2" (LIFT-IF) (("2" (HIDE -17) (("2" (SPLIT 2) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (INST 1 "FU!1") (("1" (SIMP) NIL))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))))))))))))))))))) ("2" (PROPAX) NIL))) ("2" (SIMP) NIL) ("3" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))) (|occRS_retire| "" (SKOSIMP*) (("" (EXPAND "occRSprop") (("" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5 -6) (("" (REVEAL -1 -2 -3 -4 -5 -6) (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE -5) (("" (REPLACE -12) (("" (REPLACE -13) (("" (HIDE -10 -11 -12 -13 -5) (("" (HIDE -5) (("" (INST?) (("" (SIMP) (("" (SIMP) (("" (HIDE -10) (("" (LIFT-IF) (("" (SPLIT -8) (("1" (SIMP) (("1" (SPLIT 2) (("1" (EXPAND "occ_buffer" (-7 1)) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -2) (("1" (SIMP) (("1" (REPLACE -2) (("1" (HIDE -10) (("1" (SPLIT 1) (("1" (SIMP) (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (SPLIT -8) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (PROPAX) NIL) ("2" (CASE "NOT p(RS!1(S!1)) = oldestB!1") (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))))))))) ("2" (SIMP) (("2" (REPLACE -1) (("2" (SIMP) NIL))))))))))))) ("2" (SKOSIMP*) (("2" (INST? -9) (("2" (SIMP) (("2" (EXPAND "occ_buffer" (1 -13)) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (CASE "NOT (b(ss(RS!1(S!1))(j!1)) OR p(ss(RS!1(S!1))(j!1)) > 0 AND preceed(p(ss(RS!1(S!1))(j!1)), p(RS!1(S!1)), nextB!1, oldestB!1))") (("1" (HIDE -11 2) (("1" (SIMP) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (SPLIT -4) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (LEMMA "occAfterRetireIfBefore") (("2" (INST -1 "p(ss(RS!1(S!1))(j!1))" " nextB!1" " oldestB!1") (("2" (SIMP) (("2" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer" -13) (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (SPLIT 4) (("1" (SIMP) NIL) ("2" (SPLIT -2) (("1" (SIMP) (("1" (REPLACE -1) (("1" (EXPAND "occ_buffer" -12) (("1" (SPLIT -7) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))) ("2" (SIMP) (("2" (SPLIT -7) (("1" (SPLIT -2) (("1" (SIMP) (("1" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (SPLIT -12) (("1" (SIMP) (("1" (EXPAND "OccBuffBusyRATprop") (("1" (INST -11 "p(ss(RS!1(S!1))(j!1))") (("1" (EXPAND "busyRATprop") (("1" (SIMP) (("1" (INST? -10) (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) (("1" (SPLIT 1) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL) ("3" (SIMP) (("3" (EXPAND "occ_buffer" -5) (("3" (SPLIT -10) (("1" (SIMP) (("1" (REPLACE -2) (("1" (CASE "p(ss(RS!1(S!1))(j!1)) = oldestB!1") (("1" (REPLACE -1) (("1" (SIMP) (("1" (EXPAND "preceed" -9) (("1" (EXPAND "preceed" -10) (("1" (SIMP) (("1" (SPLIT -11) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))) ("2" (SIMP) NIL))))))) ("2" (SIMP) NIL))))))) ("4" (SIMP) (("4" (EXPAND "occ_buffer" -5) (("4" (SPLIT -5) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -10) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "preceed") (("2" (PROPAX) NIL))))))))))))))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL) ("3" (SIMP) (("3" (REPLACE -1 :DIR RL) (("3" (CASE "oldestB!1 = p(RS!1(S!1))") (("1" (SIMP) NIL) ("2" (LEMMA "oldestBretired") (("2" (INST -1 "p(RS!1(S!1))" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (EXPAND "occ_buffer" -1) (("2" (PROPAX) NIL))))))))))))))) ("4" (SIMP) (("4" (EXPAND "occ_buffer" -4) (("4" (SPLIT -4) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (CASE " p(ss(RS!1(S!1))(j!1)) = oldestB!1") (("1" (REPLACE -1) (("1" (SIMP) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (SPLIT -8) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (PROPAX) NIL))) ("3" (SIMP) NIL))))))))))))))))))) ("2" (SIMP) (("2" (SKOSIMP*) (("2" (INST?) (("2" (SIMP) (("2" (REPLACE -1) (("2" (SPLIT -9) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))))) (|busyOperandsNearest_issue| "" (SKOSIMP*) (("" (EXPAND "busyOperandsNearestProp") (("" (EXPAND " rho_issue") (("" (SKOSIMP*) (("" (REPLACE -8) (("" (REPLACE -13) (("" (REPLACE -14) (("" (SIMP) (("" (HIDE -8 -9 -10 -11 -12 -13 -14) (("" (SPLIT -9) (("1" (SIMP) (("1" (SPLIT -3) (("1" (SIMP) (("1" (SPLIT 1) (("1" (EXPAND "preceed" 1) (("1" (EXPAND "busyRATprop") (("1" (INST? -7) (("1" (SIMP) (("1" (LEMMA "ROBremainsOcc") (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (HIDE -7) (("1" (INST -1 "al(RAT!1(src(prog(top!1))(j!1)))" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (SPLIT 1) (("1" (EXPAND "occ_buffer" 1) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -14) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))) ("2" (SIMP) (("2" (LEMMA "nextBfree") (("2" (INST -1 "nextB!1" "oldestB!1") (("2" (SIMP) NIL))))))) ("3" (SIMP) (("3" (EXPAND "occ_buffer" -8) (("3" (PROPAX) NIL))))) ("4" (SIMP) (("4" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "occ_buffer" -7) (("2" (SPLIT -7) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (EXPAND "dispatch") (("2" (SIMP) NIL))))))))) ("2" (SKOSIMP*) (("2" (LIFT-IF) (("2" (EXPAND "weakPreceed") (("2" (SIMP) (("2" (HIDE -7) (("2" (EXPAND "busyRATprop") (("2" (HIDE -7) (("2" (INST? -7) (("1" (SIMP) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (LEMMA "ROBremainsOcc") (("1" (INST -1 "al(RAT!1(src(prog(top!1))(j!1)))" " nextB!1" "oldestB!1") (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (SPLIT 4) (("1" (EXPAND "occ_buffer" 1) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -15) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))) ("2" (SIMP) NIL) ("3" (SIMP) (("3" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND " BuffsPreceedAliasProp") (("2" (INST? -12) (("2" (SIMP) (("2" (INST -12 "rb!1") (("2" (SIMP) (("2" (CASE "NOT occ_buffer(rb!1, nextB!1, oldestB!1)") (("1" (HIDE 7 -12 -9) (("1" (EXPAND "occ_buffer" (-2 1)) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -13) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SPLIT -3) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (SIMP) NIL) ("2" (PROPAX) NIL))))))))))) ("2" (SIMP) NIL))))))))))) ("2" (EXPAND "weakPreceed") (("2" (SIMP) (("2" (EXPAND "preceed") (("2" (PROPAX) NIL))))))))))))))))))))))))))))))) ("2" (EXPAND "dispatch") (("2" (SIMP) NIL))))))))))))) ("2" (EXPAND "dispatch") (("2" (SIMP) NIL))))))))))))))))))))))) ("2" (SIMP) NIL))))) ("2" (SIMP) (("2" (REPLACE 1) (("2" (INST?) (("2" (SIMP) (("2" (SIMP) (("2" (EXPAND "preceed") (("2" (SIMP) (("2" (SPLIT -6) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST -1 "p(RS!1(S!1))" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (CASE "not Sn!1 > 0") (("1" (REPLACE 1) (("1" (REPLACE -14) (("1" (SIMP) (("1" (SPLIT 5) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))) ("3" (PROPAX) NIL))))))))) ("2" (SIMP) (("2" (EXPAND "dispatch") (("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST -1 "p(ss(RS!1(S!1))(j!1))" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (SPLIT 6) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -4) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))) ("3" (SKOSIMP*) (("3" (INST -12 "rb!1") (("3" (SIMP) (("3" (LIFT-IF) (("3" (SPLIT -2) (("1" (SIMP) (("1" (HIDE -7) (("1" (HIDE 4 7) (("1" (REPLACE -1) (("1" (EXPAND "weakPreceed" (1 2)) (("1" (SIMP) (("1" (EXPAND "preceed" (2 4)) (("1" (SPLIT 4) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "occ_buffer" -11) (("2" (SPLIT -11) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))))))))))))))))))))))))) ("2" (SIMP) (("2" (SPLIT -12) (("1" (EXPAND "weakPreceed") (("1" (HIDE -13 -14 -15 -16 -17 5 8) (("1" (HIDE -7) (("1" (SIMP) (("1" (HIDE 5) (("1" (EXPAND "preceed") (("1" (SIMP) NIL))))))))))))) ("2" (HIDE -7 5 8 -15 -16 -17 -19 -13) (("2" (HIDE 2) (("2" (EXPAND "weakPreceed") (("2" (EXPAND "preceed") (("2" (SIMP) NIL))))))))) ("3" (HIDE -6) (("3" (EXPAND "occ_buffer" (-2 1)) (("3" (EXPAND "succ") (("3" (LIFT-IF) (("3" (SPLIT -16) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SPLIT 1) (("1" (SIMP) (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) (("1" (LEMMA "nextBfree") (("1" (INST -1 "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))))) ("2" (SPLIT -4) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (|busyOperandsNearest_execute| "" (EXPAND "busyOperandsNearestProp ") (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (REPLACE -9) (("" (REPLACE -2) (("" (REPLACE -3) (("" (HIDE -2 -3 -4 -7 -8 -9) (("" (REPLACE -4 (-6)) (("" (HIDE -3) (("" (REPLACE -3) (("" (SIMP) (("" (HIDE -3) (("" (SPLIT -3) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST? -2) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) (|busyOperandsNearest_writeb| "" (EXPAND "busyOperandsNearestProp") (("" (EXPAND " rho_writeb") (("" (SKOSIMP*) (("" (REPLACE -2) (("" (REPLACE -3) (("" (REPLACE -9) (("" (REPLACE -10) (("" (SIMP) (("" (HIDE -2 -3 -9 -10) (("" (HIDE -2 -3 -4 -5 -6) (("" (INST? -1) (("" (SPLIT -1) (("1" (PROPAX) NIL) ("2" (REPLACE 1) (("2" (PROPAX) NIL))) ("3" (REPLACE 1) (("3" (SIMP) NIL))))))))))))))))))))))))))) (|busyOperandsNearest_retire| "" (SKOSIMP*) (("" (LEMMA "occRS_retire") (("" (INST?) (("" (SIMP) (("" (LEMMA "BuffsPreceedAlias") (("" (INST?) (("" (SIMP) (("" (HIDE -1 -2 -3 -4 -5 -6 -7 -8) (("" (REVEAL -1 -2 -3 -4 -5 -6 -7 -8) (("" (EXPAND "busyOperandsNearestProp") (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE -15) (("" (REPLACE -16) (("" (HIDE -9 -12 -13 -14 -15 -16) (("" (INST? -3) (("" (SIMP) (("" (HIDE -3) (("" (SIMP) (("" (EXPAND "occRSprop" -2) (("" (INST?) (("" (SIMP) (("" (INST? -5) (("" (SIMP) (("" (LIFT-IF) (("" (HIDE -16) (("" (SPLIT -16) (("1" (SIMP) (("1" (SPLIT 2) (("1" (HIDE -13) (("1" (REVEAL -2) (("1" (REPLACE -1) (("1" (HIDE -1) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) (("1" (REPLACE -1) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -3) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SIMP) NIL))))) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (SPLIT -2) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SPLIT -15) (("1" (SIMP) (("1" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))) ("2" (SKOSIMP*) (("2" (INST -15 "rb!1") (("2" (SIMP) (("2" (REVEAL -2) (("2" (REPLACE -1) (("2" (HIDE -1 -17 -18 -19 -20 -6) (("2" (CASE "occ_buffer(rb!1, nextB!1, oldestB!1)") (("1" (SIMP) (("1" (EXPAND "weakPreceed") (("1" (SIMP) (("1" (EXPAND "preceed" (-15 2 4)) (("1" (CASE " (rb!1 = oldestB!1)") (("1" (REPLACE -1) (("1" (SIMP) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -6) (("1" (SIMP) (("1" (SPLIT 4) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))))))) ("2" (REPLACE 1) (("2" (SPLIT -15) (("1" (SIMP) (("1" (HIDE 5) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -7) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SPLIT 3) (("1" (SIMP) (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -4) (("1" (SIMP) (("1" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))))))))))) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (SPLIT 5) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (HIDE 7) (("2" (SPLIT -7) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SPLIT -4) (("1" (SIMP) (("1" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))) ("2" (EXPAND "occ_buffer" (-1 1)) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (SPLIT -4) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SPLIT -3) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT 3) (("1" (SIMP) (("1" (LEMMA "nextBfree") (("1" (INST -1 "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))))) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (SPLIT -2) (("1" (SIMP) (("1" (LEMMA "nextBfree") (("1" (INST -1 "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (REPLACE -1) (("2" (SKOSIMP*) (("2" (INST -12 "rb!1") (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (|writtenBOperandsNearest_issue| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5 -6) (("" (REVEAL -1 -2 -3 -4 -5 -6) (("" (EXPAND "writtenBOperandsNearestProp") (("" (EXPAND " rho_issue") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -8 -9 -10 -11 -12 -13 -14) (("" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (HIDE -6) (("1" (EXPAND "preceed") (("1" (PROPAX) NIL))))) ("2" (HIDE -5) (("2" (EXPAND "preceed") (("2" (SIMP) (("2" (HIDE 2) (("2" (SIMP-SPLIT -) (("2" (EXPAND "busyRATprop") (("2" (INST?) (("1" (SIMP) (("1" (REVEAL 1) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (LIFT-IF) (("1" (EXPAND "weakPreceed") (("1" (SIMP) (("1" (EXPAND "BuffsPreceedAliasProp") (("1" (INST? -12) (("1" (SIMP) (("1" (INST -12 "rb!1") (("1" (SIMP) (("1" (LEMMA "NewOcc") (("1" (INST?) (("1" (SIMP) (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (EXPAND "weakPreceed") (("1" (EXPAND "preceed" (-13 2)) (("1" (PROPAX) NIL))))))))))))))))))))) ("2" (EXPAND "dispatch") (("2" (SIMP) NIL))))))))))))))))))))) ("2" (EXPAND "dispatch") (("2" (SIMP) NIL))))))))))))))))))) ("2" (SIMP-SPLIT -) NIL))) ("2" (REPLACE 1) (("2" (INST?) (("2" (SIMP-SPLIT 3) (("1" (REPLACE*) (("1" (HIDE -3) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (EXPAND "occ_buffer") (("1" (EXPAND "succ") (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -13) NIL) ("2" (SIMP-SPLIT -) (("2" (SIMP-SPLIT -15) (("2" (SIMP-SPLIT -) NIL))))))))))))))))))))) ("2" (CASE "Sn!1 > 0") (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (CASE "preceed(p(ss(RS!1(S!1))(j!1)), p(RS!1(S!1)), nextB!1, oldestB!1)") (("1" (SIMP) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (INST -8 "rb!1") (("1" (SIMP) (("1" (LIFT-IF) (("1" (SIMP-SPLIT -) (("1" (REPLACE*) (("1" (EXPAND "weakPreceed" +) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (HIDE 3) (("1" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (SIMP-SPLIT) (("2" (EXPAND "occ_buffer") (("2" (EXPAND "succ") (("2" (SIMP-SPLIT -22) (("2" (SIMP-SPLIT -) (("2" (SIMP-SPLIT -) NIL))))))))))))))))))))))) ("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "weakPreceed") (("2" (HIDE -3 -19) (("2" (EXPAND "preceed") (("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (SIMP-SPLIT -) (("1" (INST? :WHERE +) (("1" (SIMP) NIL))) ("2" (INST? :WHERE +) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (LEMMA "ROBremainsOcc") (("1" (HIDE 2) (("1" (INST? :WHERE +) (("1" (SIMP) NIL))))))))) ("2" (SIMP-SPLIT -) (("2" (HIDE 3) (("2" (LEMMA "ROBremainsOcc") (("2" (INST? :WHERE +) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))) ("2" (HIDE -2 3) (("2" (EXPAND "preceed") (("2" (LEMMA "NewOcc") (("2" (SIMP) (("2" (INST? :COPY? T) (("2" (SIMP) (("2" (INST? :WHERE +) (("2" (SIMP) (("2" (SIMP-SPLIT -) (("2" (REPLACE*) (("2" (SIMP-SPLIT -) (("2" (HIDE 2) (("2" (EXPAND "occRSprop") (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) (|writtenBOperandsNearest_execute| "" (EXPAND " writtenBOperandsNearestProp") (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (REPLACE -2) (("" (REPLACE -3) (("" (REPLACE -9) (("" (REPLACE -10) (("" (SIMP) (("" (SPLIT -11) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (HIDE -3 -4 -5 -7 -8 -9 -10 -11) (("2" (INST? -2) (("2" (SIMP) NIL))))))))))))))))))))))))) (|writtenBOperandsNearest_writeb| "" (SKOSIMP*) (("" (HIDE -5) (("" (REVEAL -1) (("" (EXPAND "writtenBOperandsNearestProp") (("" (EXPAND "rho_writeb") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT) (("" (INST? -3) (("" (SIMP) (("" (SIMP-SPLIT) (("1" (EXPAND "occRSprop") (("1" (INST? -6) (("1" (HIDE -5) (("1" (SIMP) (("1" (INST? -7) (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (EXPAND " busyOperandsNearestProp") (("1" (INST? -19) (("1" (SIMP) NIL))))))))) ("2" (SKOSIMP*) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))) ("2" (HIDE 1) (("2" (SIMP-SPLIT) (("2" (EXPAND "activeResProp") (("2" (SKOSIMP*) (("2" (INST? -10) (("2" (SIMP) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))) (|writtenBOperandsNearest_retire| "" (SKOSIMP*) (("" (EXPAND " writtenBOperandsNearestProp") (("" (SKOSIMP*) (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE -13) (("" (REPLACE -14) (("" (REPLACE -6) (("" (SIMP) (("" (HIDE -10 -11 -12 -13 -14) (("" (HIDE -7 -6) (("" (INST? -1) (("" (SIMP) (("" (CASE "NOT preceed(p(ss(RS!1(S!1))(j!1)), p(RS!1(S!1)), nextB!1, oldestB!1)") (("1" (EXPAND "preceed" (-11 1)) (("1" (HIDE 3) (("1" (SIMP) (("1" (LEMMA "occAfterRetireIfBefore") (("1" (INST-CP -1 "p(ss(RS!1(S!1))(j!1))" "nextB!1" "oldestB!1") (("1" (INST -1 "p(RS!1(S!1))" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (CASE "retire!1") (("1" (SIMP) (("1" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer" -11) (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (HIDE -4) (("2" (SPLIT 2) (("1" (SIMP) (("1" (EXPAND "occ_buffer" -15) (("1" (REPLACE -1) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -15) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -10) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -15) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (SPLIT -1) (("1" (SPLIT -9) (("1" (SIMP) NIL) ("2" (SIMP) NIL))) ("2" (SIMP) (("2" (SPLIT -9) (("1" (SIMP) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SPLIT -3) (("1" (SIMP) (("1" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (REPLACE 1) (("2" (REPLACE -8) (("2" (SIMP) NIL))))))))))))))))))))) ("2" (SIMP) (("2" (SIMP) (("2" (SKOSIMP*) (("2" (INST -5 "rb!1") (("2" (SIMP) (("2" (LEMMA "occAfterRetireIfBefore") (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (LIFT-IF) (("2" (SPLIT -11) (("1" (SIMP) (("1" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer" -14) (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (EXPAND "weakPreceed") (("2" (SIMP) (("2" (EXPAND "preceed" (-8 5 7)) (("2" (SPLIT -8) (("1" (HIDE 7) (("1" (SIMP) (("1" (EXPAND "preceed" -18) (("1" (SIMP) (("1" (HIDE -20 -11 -12 -13) (("1" (SPLIT -2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (SIMP) (("1" (LEMMA "oldestBretired") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))))) ("2" (SIMP) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (SIMP) (("2" (EXPAND "preceed" +) (("2" (EXPAND "occ_buffer" -) (("2" (SIMP-SPLIT) (("1" (REPLACE*) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -6) NIL))))) ("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT 13) (("2" (SIMP-SPLIT -) (("2" (SIMP-SPLIT -3) (("2" (SIMP-SPLIT -5) (("2" (REPLACE*) (("2" (SIMP-SPLIT -17) NIL))))))))))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (HIDE 5) (("2" (HIDE -9 -10 -11 -12 -13) (("2" (EXPAND "preceed" -13) (("2" (SIMP) (("2" (HIDE -15) (("2" (SPLIT -2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (SIMP) (("1" (LEMMA "oldestBretired") (("1" (INST?) (("1" (SIMP) NIL))))))) ("2" (SIMP) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (SIMP) (("2" (EXPAND "preceed") (("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT 10) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT -) (("2" (SIMP-SPLIT -5) (("2" (SIMP-SPLIT -) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))) (|RetiredOperandsMatchRF_issue| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5 -6) (("" (REVEAL -1 -2 -3 -4 -5 -6) (("" (EXPAND "RetiredOperandsMatchRFprop") (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE -8) (("" (REPLACE -12) (("" (REPLACE -13) (("" (REPLACE -14) (("" (SIMP) (("" (HIDE -8 -11 -12 -13 -14) (("" (HIDE -9) (("" (SPLIT 1) (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) (("1" (HIDE -5) (("1" (EXPAND "busyRATprop") (("1" (INST? -5) (("1" (SIMP) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (LEMMA "ROBremainsOcc") (("1" (INST?) (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (HIDE 5) (("1" (CASE "NOT occ_buffer(nextB!1, nextB_p!1, oldestB!1)") (("1" (HIDE 5) (("1" (EXPAND "occ_buffer" 1) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -12) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (CASE "al(RAT!1(src(prog(top!1))(j!1))) = nextB!1") (("1" (HIDE 4) (("1" (REPLACE -1) (("1" (LEMMA "nextBfree") (("1" (INST?) NIL))))))) ("2" (SIMP) (("2" (CASE "(nextB!1 = oldestB!1) ") (("1" (HIDE 5) (("1" (EXPAND "occ_buffer" -8) (("1" (SIMP) NIL))))) ("2" (SIMP) (("2" (SPLIT 6) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (SPLIT -2) (("1" (SIMP) (("1" (EXPAND "occ_buffer" -2) (("1" (SPLIT -2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (EXPAND "occ_buffer" -1) (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (REPLACE 1) (("2" (SIMP) (("2" (HIDE -3 -11) (("2" (SKOSIMP*) (("2" (EXPAND "dispatch") (("2" (EXPAND "weakPreceed") (("2" (LIFT-IF) (("2" (SIMP) (("2" (EXPAND "OccBuffBusyRATprop") (("2" (INST -4 "rb!1") (("2" (LEMMA "NewOcc") (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (EXPAND "busyRATprop") (("2" (INST? -4) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (REPLACE 1) (("2" (INST? -1) (("2" (SIMP) (("2" (LIFT-IF) (("2" (SPLIT -7) (("1" (SIMP) (("1" (SPLIT -3) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (SIMP) (("1" (EXPAND "occRSprop") (("1" (SIMP) (("1" (HIDE -13) (("1" (LEMMA "NewOcc") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (LIFT-IF) (("1" (EXPAND "weakPreceed") (("1" (SIMP) (("1" (EXPAND "preceed" 6) (("1" (LEMMA "ROBremainsOcc") (("1" (HIDE -4 -8) (("1" (INST -1 "p(RS!1(S!1))" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (INST? -9) (("1" (SIMP) (("1" (HIDE -11) (("1" (SIMP) (("1" (CASE "NOT occ_buffer(rb!1, nextB!1, oldestB!1)") (("1" (REPLACE 1) (("1" (HIDE -4) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SPLIT 7) (("1" (EXPAND "occ_buffer" -13) (("1" (SIMP) (("1" (EXPAND "occ_buffer" -9) (("1" (PROPAX) NIL))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "occ_buffer" -1) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (SPLIT -5) (("1" (SIMP) (("1" (SPLIT -3) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -1) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))) ("2" (SPLIT -16) (("1" (HIDE -4) (("1" (INST -5 "rb!1") (("1" (SIMP) (("1" (LEMMA "nextBfree") (("1" (INST -1 "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (INST -6 "rb!1") (("2" (SIMP) (("2" (SPLIT 7) (("1" (EXPAND "preceed") (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "occ_buffer" -2) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (EXPAND "preceed" -6) (("2" (SPLIT -6) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (EXPAND "preceed") (("2" (HIDE 5) (("2" (LEMMA "nextBfree") (("2" (INST -1 "nextB!1" "oldestB!1") (("2" (LEMMA "ROBremainsOcc") (("2" (INST-CP -1 "p(ss(RS!1(S!1))(j!1))" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (INST -1 "(p(RS!1(S!1)))" "nextB!1" "oldestB!1") (("2" (EXPAND "dispatch") (("2" (SIMP) NIL))))))))))))))))))))))))) ("2" (SIMP) (("2" (SIMP) (("2" (HIDE 2) (("2" (REPLACE -1) (("2" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))))))) (|RetiredOperandsMatchRF_execute| "" (SKOSIMP*) (("" (EXPAND "RetiredOperandsMatchRFprop") (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (REPLACE -2) (("" (REPLACE -3) (("" (REPLACE -8) (("" (REPLACE -10) (("" (SIMP) (("" (HIDE -2 -3 -4 -6 -7 -8 -9 -10) (("" (SPLIT -3) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST? -2) (("2" (SIMP) (("2" (SPLIT -2) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (SIMP) (("1" (INST -3 "rb!1") (("1" (SIMP) NIL))))))))) ("2" (PROPAX) NIL))))))))))))))))))))))))))))))) (|RetiredOperandsMatchRF_writeb| "" (EXPAND " RetiredOperandsMatchRFprop") (("" (EXPAND " rho_writeb") (("" (SKOSIMP*) (("" (REPLACE -3) (("" (REPLACE -4) (("" (REPLACE -11) (("" (SIMP) (("" (HIDE -3 -4 -11) (("" (REPLACE -7) (("" (REPLACE -8) (("" (SIMP) (("" (HIDE -5 -7 -8) (("" (HIDE -3 -5) (("" (SPLIT -4) (("1" (SIMP) (("1" (INST? -2) (("1" (SIMP) (("1" (CASE " b(ss(RS!1(S!1))(j!1))") (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) (("1" (HIDE -4) (("1" (EXPAND " busyOperandsNearestProp") (("1" (INST?) (("1" (SIMP) (("1" (HIDE 1) (("1" (SIMP) NIL))))))))))))) ("2" (SIMP) NIL))))) ("2" (REPLACE 1) (("2" (HIDE 2) (("2" (SIMP) (("2" (CASE "NOT (p(ss(RS!1(S!1))(j!1)) = 0 OR p(ss(RS!1(S!1))(j!1)) > 0 AND NOT preceed(p(ss(RS!1(S!1))(j!1)), p(RS!1(S!1)), nextB!1, oldestB!1))") (("1" (PROPAX) NIL) ("2" (SPLIT -3) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))))))))))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))) (|RetiredOperandsMatchRF_retire| "" (EXPAND " RetiredOperandsMatchRFprop") (("" (SKOSIMP*) (("" (HIDE -2 -3 -4 -5 -6 -7) (("" (REVEAL -1 -2 -3 -4 -5 -6) (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE -6) (("" (REPLACE -12) (("" (REPLACE -13) (("" (REPLACE -14) (("" (HIDE -6 -7 -10 -11 -12 -13 -14) (("" (INST? -8) (("" (SIMP) (("" (EXPAND "occRSprop") (("" (INST?) (("" (SIMP) (("" (SIMP) (("" (HIDE -9) (("" (CASE "NOT retire!1") (("1" (REPLACE 1) (("1" (INST? -7) (("1" (SIMP) (("1" (HIDE -8) (("1" (REPLACE -8) (("1" (SPLIT -9) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))))))))))) ("2" (SIMP) (("2" (INST? -8) (("2" (SIMP) (("2" (HIDE -9) (("2" (CASE "p(ss(RS!1(S!1))(j!1)) = 0 OR p(ss(RS!1(S!1))(j!1)) > 0 AND NOT preceed(p(ss(RS!1(S!1))(j!1)), p(RS!1(S!1)), nextB!1, oldestB!1)") (("1" (SPLIT -11) (("1" (SIMP) (("1" (SPLIT 2) (("1" (LIFT-IF) (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) (("1" (INST -3 "oldestB!1") (("1" (SIMP) (("1" (SPLIT -3) (("1" (EXPAND "weakPreceed") (("1" (REVEAL -4) (("1" (SIMP) (("1" (CASE " p(RS!1(S!1)) = oldestB!1") (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "preceed" -2) (("2" (PROPAX) NIL))))))))))))) ("2" (EXPAND "occ_buffer" 1) (("2" (SPLIT 1) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "occ_buffer" -10) (("2" (PROPAX) NIL))))))))))))))))) ("2" (SIMP) NIL))))))) ("2" (SKOSIMP*) (("2" (INST -4 "rb!1") (("2" (SIMP) (("2" (LEMMA "occAfterRetireIfBefore") (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer" -13) (("1" (SIMP) NIL))) ("2" (EXPAND "weakPreceed") (("2" (SIMP) (("2" (EXPAND "preceed" (-5 3)) (("2" (SPLIT -5) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (LEMMA "oldestBretired") (("2" (INST -1 "p(RS!1(S!1))" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (SPLIT -3) (("1" (SIMP) (("1" (HIDE -2 5) (("1" (REPLACE -1) (("1" (REVEAL -7) (("1" (SIMP) NIL))))))))) ("2" (SIMP) (("2" (HIDE -3) (("2" (SPLIT 5) (("1" (SIMP) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (REPLACE -1) (("1" (SPLIT -17) (("1" (SIMP) (("1" (SIMP) NIL))) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (SPLIT -16) (("1" (SIMP) (("1" (SPLIT -3) (("1" (SIMP) (("1" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (PROPAX) NIL))) ("2" (HIDE 3) (("2" (SIMP) (("2" (HIDE -11) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (EXPAND "preceed") (("2" (SIMP) (("2" (REVEAL -4) (("2" (LEMMA "oldestBretired") (("2" (INST-CP -1 "p(ss(RS!1(S!1))(j!1))" "nextB!1" "oldestB!1") (("2" (INST -1 "p(RS!1(S!1))" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (CASE "p(RS!1(S!1)) = oldestB!1") (("1" (SIMP) NIL) ("2" (SIMP) (("2" (HIDE -2) (("2" (SPLIT -6) (("1" (SIMP) (("1" (HIDE -3 7) (("1" (REPLACE -1) (("1" (EXPAND "writtenBOperandsNearestProp") (("1" (INST? -6) (("1" (SIMP) (("1" (REVEAL 2) (("1" (SPLIT 1) (("1" (LIFT-IF) (("1" (SIMP) NIL))) ("2" (SKOSIMP*) (("2" (INST -10 "rb!1") (("2" (SIMP) (("2" (LEMMA "occAfterRetireIfBefore") (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (CASE "nextB!1 /= oldestB!1 ") (("1" (SIMP) (("1" (EXPAND "weakPreceed") (("1" (SIMP) (("1" (EXPAND "preceed" (-11 3)) (("1" (SPLIT 3) (("1" (SIMP) (("1" (REPLACE -1) (("1" (SPLIT -19) (("1" (SIMP) (("1" (SIMP) NIL))) ("2" (SIMP) NIL))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -18) (("1" (SPLIT -12) (("1" (SIMP) (("1" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))) ("2" (SIMP) NIL))))))))))))))))))) ("2" (SIMP) (("2" (EXPAND "occ_buffer" -16) (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (SPLIT 7) (("1" (SPLIT -15) (("1" (SIMP) (("1" (SIMP) NIL))) ("2" (SIMP) NIL))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -15) (("1" (SPLIT -2) (("1" (SIMP) (("1" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))) ("2" (SIMP) NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) $$$InOrderP2.pvs InOrderP2[N, R, U, Z: posnat, (IMPORTING more_nat_types[1]) B: greater_one_nat]: THEORY BEGIN IMPORTING InOrderProp[N, R, U, Z, B], InvDefs2[N, R, U, Z, B] RF, RF_p: VAR [REG_ID -> RF_TYPE] RAT, RAT_p: VAR [REG_ID -> RAT_TYPE] ROB, ROB_p: VAR [ROB_ID -> ROB_TYPE] nextB, nextB_p: VAR ROB_ID oldestB, oldestB_p: VAR ROB_ID RS, RS_p: VAR [SLOT_ID -> RS_TYPE] res, res_p: VAR [FU_ID -> result_TYPE] top, top_p: VAR upto_nz[N + 1] FU: VAR FU_ID S: VAR SLOT_ID r: VAR REG_ID rb, rb2: VAR ROB_ID numBuffsOcc_issue: LEMMA numBuffsOccProp(top, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES numBuffsOccProp(top_p, nextB_p, oldestB_p) numBuffsOcc_execute: LEMMA numBuffsOccProp(top, nextB, oldestB) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES numBuffsOccProp(top_p, nextB_p, oldestB_p) numBuffsOcc_writeb: LEMMA numBuffsOccProp(top, nextB, oldestB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES numBuffsOccProp(top_p, nextB_p, oldestB_p) numBuffsOcc_retire: LEMMA numBuffsOccProp(top, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES numBuffsOccProp(top_p, nextB_p, oldestB_p) numBuffsOcc_theta: LEMMA Theta(top, res, RF, RS, RAT, ROB, nextB, oldestB) IMPLIES numBuffsOccProp(top, nextB, oldestB) RSoperandsMatchProg_issue: LEMMA RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND numBuffsOccProp(top, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RSoperandsMatchProgProp(RS_p, nextB_p, oldestB_p, top_p) RSoperandsMatchProg_execute: LEMMA RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RSoperandsMatchProgProp(RS_p, nextB_p, oldestB_p, top_p) RSoperandsMatchProg_writeb: LEMMA RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RSoperandsMatchProgProp(RS_p, nextB_p, oldestB_p, top_p) RSoperandsMatchProg_retire: LEMMA RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND numBuffsOccProp(top, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RSoperandsMatchProgProp(RS_p, nextB_p, oldestB_p, top_p) RS_ROB_ProducerMatch_issue: LEMMA RS_ROB_ProducerMatchProp(RS, ROB) AND occRSprop(RS, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RS_ROB_ProducerMatchProp(RS_p, ROB_p) RS_ROB_ProducerMatch_execute: LEMMA RS_ROB_ProducerMatchProp(RS, ROB) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RS_ROB_ProducerMatchProp(RS_p, ROB_p) RS_ROB_ProducerMatch_writeb: LEMMA RS_ROB_ProducerMatchProp(RS, ROB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RS_ROB_ProducerMatchProp(RS_p, ROB_p) RS_ROB_ProducerMatch_retire: LEMMA RS_ROB_ProducerMatchProp(RS, ROB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES RS_ROB_ProducerMatchProp(RS_p, ROB_p) busyROBoccRSorActiveRes_issue: LEMMA busyROBoccRSorActiveResProp(res, RS, ROB, nextB, oldestB) AND rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyROBoccRSorActiveResProp(res_p, RS_p, ROB_p, nextB_p, oldestB_p) busyROBoccRSorActiveRes_execute: LEMMA busyROBoccRSorActiveResProp(res, RS, ROB, nextB, oldestB) AND rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyROBoccRSorActiveResProp(res_p, RS_p, ROB_p, nextB_p, oldestB_p) busyROBoccRSorActiveRes_writeb: LEMMA busyROBoccRSorActiveResProp(res, RS, ROB, nextB, oldestB) AND rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyROBoccRSorActiveResProp(res_p, RS_p, ROB_p, nextB_p, oldestB_p) busyROBoccRSorActiveRes_retire: LEMMA busyROBoccRSorActiveResProp(res, RS, ROB, nextB, oldestB) AND rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES busyROBoccRSorActiveResProp(res_p, RS_p, ROB_p, nextB_p, oldestB_p) numOccLessTop: LEMMA numBuffsOccProp(top, nextB, oldestB) IMPLIES numOccLessTopProp(nextB, oldestB, top) ROBoperandMatchProg_issue: LEMMA rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND numOccLessTopProp(nextB, oldestB, top) IMPLIES ROBoperandMatchProgProp(ROB_p, nextB_p, oldestB_p, top_p) ROBoperandMatchProg_execute: LEMMA rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) IMPLIES ROBoperandMatchProgProp(ROB_p, nextB_p, oldestB_p, top_p) ROBoperandMatchProg_writeb: LEMMA rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) IMPLIES ROBoperandMatchProgProp(ROB_p, nextB_p, oldestB_p, top_p) ROBoperandMatchProg_retire: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND numOccLessTopProp(nextB, oldestB, top) IMPLIES ROBoperandMatchProgProp(ROB_p, nextB_p, oldestB_p, top_p) ROBoperandRecentProp_issue: LEMMA rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND busyOperandsNearestProp(RS, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) IMPLIES ROBoperandRecentProp(ROB_p, nextB_p, oldestB_p) ROBoperandRecentProp_execute: LEMMA rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) IMPLIES ROBoperandRecentProp(ROB_p, nextB_p, oldestB_p) ROBoperandRecentProp_writeb: LEMMA rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) IMPLIES ROBoperandRecentProp(ROB_p, nextB_p, oldestB_p) RetireMaintainsPreceed: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES (FORALL (rb, rb2): (preceed(rb, rb2, nextB, oldestB) IMPLIES (preceed(rb, rb2, nextB, oldestB_p) OR rb = oldestB)) AND (preceed(rb, rb2, nextB, oldestB_p) IMPLIES preceed(rb, rb2, nextB, oldestB))) ROBoperandRecentProp_retire: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) IMPLIES ROBoperandRecentProp(ROB_p, nextB_p, oldestB_p) RSopsMatchGetOperandVal_issue: LEMMA rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND RSopsMatchGetOperandValProp(RF, RS, ROB, nextB, oldestB) AND RetiredOperandsMatchRFprop(RF, RS, ROB, nextB, oldestB) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) IMPLIES RSopsMatchGetOperandValProp(RF_p, RS_p, ROB_p, nextB_p, oldestB_p) RSopsMatchGetOperandVal_execute: LEMMA rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND RSopsMatchGetOperandValProp(RF, RS, ROB, nextB, oldestB) IMPLIES RSopsMatchGetOperandValProp(RF_p, RS_p, ROB_p, nextB_p, oldestB_p) RSopsMatchGetOperandVal_writeb: LEMMA rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND RSopsMatchGetOperandValProp(RF, RS, ROB, nextB, oldestB) AND RetiredOperandsMatchRFprop(RF, RS, ROB, nextB, oldestB) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) AND busyOperandsNearestProp(RS, ROB, nextB, oldestB) IMPLIES RSopsMatchGetOperandValProp(RF_p, RS_p, ROB_p, nextB_p, oldestB_p) RSopsMatchGetOperandVal_retire: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND RSopsMatchGetOperandValProp(RF, RS, ROB, nextB, oldestB) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND RS_ROB_ProducerMatchProp(RS, ROB) AND RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) IMPLIES RSopsMatchGetOperandValProp(RF_p, RS_p, ROB_p, nextB_p, oldestB_p) activeResOpsNotBusy_issue: LEMMA rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND activeResOpsNotBusyProp(res, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) IMPLIES activeResOpsNotBusyProp(res_p, ROB_p, nextB_p, oldestB_p) activeResOpsNotBusy_execute: LEMMA rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND activeResOpsNotBusyProp(res, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND RS_ROB_ProducerMatchProp(RS, ROB) IMPLIES activeResOpsNotBusyProp(res_p, ROB_p, nextB_p, oldestB_p) activeResOpsNotBusy_writeb: LEMMA rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND activeResOpsNotBusyProp(res, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) IMPLIES activeResOpsNotBusyProp(res_p, ROB_p, nextB_p, oldestB_p) activeResOpsNotBusy_retire: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND activeResOpsNotBusyProp(res, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) IMPLIES activeResOpsNotBusyProp(res_p, ROB_p, nextB_p, oldestB_p) activeResCorrectVal_issue: LEMMA rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND activeResCorrectValProp(res, RF, ROB, nextB, oldestB, top) AND RSopsMatchGetOperandValProp(RF, RS, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) IMPLIES activeResCorrectValProp(res_p, RF_p, ROB_p, nextB_p, oldestB_p, top_p) activeResCorrectVal_execute: LEMMA rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND activeResCorrectValProp(res, RF, ROB, nextB, oldestB, top) AND RSopsMatchGetOperandValProp(RF, RS, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND RS_ROB_ProducerMatchProp(RS, ROB) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) IMPLIES activeResCorrectValProp(res_p, RF_p, ROB_p, nextB_p, oldestB_p, top_p) activeResCorrectVal_writeb: LEMMA rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND activeResCorrectValProp(res, RF, ROB, nextB, oldestB, top) AND activeResOpsNotBusyProp(res, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) AND RSopsMatchGetOperandValProp(RF, RS, ROB, nextB, oldestB) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND RS_ROB_ProducerMatchProp(RS, ROB) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) IMPLIES activeResCorrectValProp(res_p, RF_p, ROB_p, nextB_p, oldestB_p, top_p) activeResCorrectVal_retire: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND activeResCorrectValProp(res, RF, ROB, nextB, oldestB, top) AND RSopsMatchGetOperandValProp(RF, RS, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) AND numOccLessTopProp(nextB, oldestB, top) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND RS_ROB_ProducerMatchProp(RS, ROB) AND writtenBOperandsNearestProp(RS, ROB, nextB, oldestB) AND occRSprop(RS, ROB, nextB, oldestB) AND RSoperandsMatchProgProp(RS, nextB, oldestB, top) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND numOccLessTopProp(nextB, oldestB, top) AND RATpointsNewestBuffProp(RAT, ROB, nextB, oldestB) AND busyRATprop(RAT, ROB, nextB, oldestB) AND OccBuffBusyRATprop(RAT, ROB, nextB, oldestB) AND BuffsPreceedAliasProp(RAT, ROB, nextB, oldestB) IMPLIES activeResCorrectValProp(res_p, RF_p, ROB_p, nextB_p, oldestB_p, top_p) ROBnotBusyOpsNotBusy_issue: LEMMA rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBnotBusyOpsNotBusyProp(ROB, nextB, oldestB) IMPLIES ROBnotBusyOpsNotBusyProp(ROB_p, nextB_p, oldestB_p) ROBnotBusyOpsNotBusy_execute: LEMMA rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBnotBusyOpsNotBusyProp(ROB, nextB, oldestB) IMPLIES ROBnotBusyOpsNotBusyProp(ROB_p, nextB_p, oldestB_p) ROBnotBusyOpsNotBusy_writeb: LEMMA rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBnotBusyOpsNotBusyProp(ROB, nextB, oldestB) AND activeResOpsNotBusyProp(res, ROB, nextB, oldestB) AND activeResProp(res, RS, ROB, nextB, oldestB) IMPLIES ROBnotBusyOpsNotBusyProp(ROB_p, nextB_p, oldestB_p) ROBnotBusyOpsNotBusy_retire: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBnotBusyOpsNotBusyProp(ROB, nextB, oldestB) IMPLIES ROBnotBusyOpsNotBusyProp(ROB_p, nextB_p, oldestB_p) getOperandBuffConst_issue: LEMMA rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND numOccLessTopProp(nextB, oldestB, top) AND numBuffsOccProp(top, nextB, oldestB) IMPLIES getOperandBuffConstProp(RF, top, ROB, nextB, oldestB, RF_p, top_p, ROB_p, nextB_p, oldestB_p) getOperandBuffConst_execute: LEMMA rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND numOccLessTopProp(nextB, oldestB, top) IMPLIES getOperandBuffConstProp(RF, top, ROB, nextB, oldestB, RF_p, top_p, ROB_p, nextB_p, oldestB_p) getOperandBuffConst_writeb: LEMMA rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND activeResProp(res, RS, ROB, nextB, oldestB) AND numOccLessTopProp(nextB, oldestB, top) IMPLIES getOperandBuffConstProp(RF, top, ROB, nextB, oldestB, RF_p, top_p, ROB_p, nextB_p, oldestB_p) getOperandBuffConst_retire: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND numOccLessTopProp(nextB, oldestB, top) AND ROBoperandRecentProp(ROB, nextB, oldestB) AND numBuffsOccProp(top, nextB, oldestB) IMPLIES getOperandBuffConstProp(RF, top, ROB, nextB, oldestB, RF_p, top_p, ROB_p, nextB_p, oldestB_p) completedBuffCorrectVal_issue: LEMMA rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND completedBuffCorrectValProp(RF, ROB, nextB, oldestB, top) AND getOperandBuffConstProp(RF, top, ROB, nextB, oldestB, RF_p, top_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND numOccLessTopProp(nextB, oldestB, top) IMPLIES completedBuffCorrectValProp(RF_p, ROB_p, nextB_p, oldestB_p, top_p) completedBuffCorrectVal_execute: LEMMA rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND completedBuffCorrectValProp(RF, ROB, nextB, oldestB, top) AND getOperandBuffConstProp(RF, top, ROB, nextB, oldestB, RF_p, top_p, ROB_p, nextB_p, oldestB_p) IMPLIES completedBuffCorrectValProp(RF_p, ROB_p, nextB_p, oldestB_p, top_p) completedBuffCorrectVal_writeb: LEMMA rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND completedBuffCorrectValProp(RF, ROB, nextB, oldestB, top) AND getOperandBuffConstProp(RF, top, ROB, nextB, oldestB, RF_p, top_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND activeResProp(res, RS, ROB, nextB, oldestB) AND activeResCorrectValProp(res, RF, ROB, nextB, oldestB, top) AND activeResOpsNotBusyProp(res, ROB, nextB, oldestB) AND ROBnotBusyOpsNotBusyProp(ROB, nextB, oldestB) AND ROBoperandRecentProp(ROB, nextB, oldestB) IMPLIES completedBuffCorrectValProp(RF_p, ROB_p, nextB_p, oldestB_p, top_p) completedBuffCorrectVal_retire: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND completedBuffCorrectValProp(RF, ROB, nextB, oldestB, top) AND getOperandBuffConstProp(RF, top, ROB, nextB, oldestB, RF_p, top_p, ROB_p, nextB_p, oldestB_p) AND ROBoperandMatchProgProp(ROB, nextB, oldestB, top) AND numOccLessTopProp(nextB, oldestB, top) AND ROBoperandRecentProp(ROB, nextB, oldestB) IMPLIES completedBuffCorrectValProp(RF_p, ROB_p, nextB_p, oldestB_p, top_p) ROBtargetMatchProg_issue: LEMMA rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBtargetMatchProgProp(ROB, nextB, oldestB, top) AND numBuffsOccProp(top, nextB, oldestB) IMPLIES ROBtargetMatchProgProp(ROB_p, nextB_p, oldestB_p, top_p) ROBtargetMatchProg_execute: LEMMA rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBtargetMatchProgProp(ROB, nextB, oldestB, top) IMPLIES ROBtargetMatchProgProp(ROB_p, nextB_p, oldestB_p, top_p) ROBtargetMatchProg_writeb: LEMMA rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBtargetMatchProgProp(ROB, nextB, oldestB, top) IMPLIES ROBtargetMatchProgProp(ROB_p, nextB_p, oldestB_p, top_p) ROBtargetMatchProg_retire: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND ROBtargetMatchProgProp(ROB, nextB, oldestB, top) AND numBuffsOccProp(top, nextB, oldestB) IMPLIES ROBtargetMatchProgProp(ROB_p, nextB_p, oldestB_p, top_p) InOrderProps_Init: LEMMA Theta(top, res, RF, RS, RAT, ROB, nextB, oldestB) IMPLIES InOrderProps(top, res, RF, RS, RAT, ROB, nextB, oldestB) InOrderProps_issue: LEMMA rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND InOrderProps(top, res, RF, RS, RAT, ROB, nextB, oldestB) IMPLIES InOrderProps(top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) InOrderProps_execute: LEMMA rho_execute(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND InOrderProps(top, res, RF, RS, RAT, ROB, nextB, oldestB) IMPLIES InOrderProps(top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) InOrderProps_writeb: LEMMA rho_writeb(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND InOrderProps(top, res, RF, RS, RAT, ROB, nextB, oldestB) IMPLIES InOrderProps(top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) InOrderProps_retire: LEMMA rho_retire(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND InOrderProps(top, res, RF, RS, RAT, ROB, nextB, oldestB) IMPLIES InOrderProps(top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) END InOrderP2 $$$InOrderP2.prf (|InOrderP2| (|top_TCC1| "" (SAME-NAME-TCC) NIL) (|numBuffsOcc_issue| "" (EXPAND " numBuffsOccProp") (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (HIDE -7 -8 -9 -10 -11) (("" (CASE "Sn!1 > 0") (("1" (SIMP) (("1" (SPLIT 1) (("1" (EXPAND "numOccBuffers") (("1" (LIFT-IF) (("1" (REPLACE -6) (("1" (REPLACE -7) (("1" (HIDE -6 -7) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -2) (("1" (SIMP) (("1" (SPLIT -6) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))))))))))))) ("2" (SKOSIMP*) (("2" (INST? -4) (("2" (LEMMA "NewOcc") (("2" (REPLACE -8) (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (EXPAND "dispatch") (("2" (SIMP) (("2" (EXPAND "succ") (("2" (LIFT-IF) (("2" (CASE "rb!1 = nextB!1") (("1" (REPLACE -1) (("1" (HIDE -2 -6 -8 -9) (("1" (EXPAND "numOccBuffers") (("1" (EXPAND "bufferIndex") (("1" (SIMP) (("1" (SPLIT -5) (("1" (SIMP) (("1" (REPLACE -2) (("1" (SIMP) (("1" (LIFT-IF) (("1" (SPLIT 1) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) NIL))))))))))))) ("2" (SIMP) (("2" (EXPAND "numOccBuffers") (("2" (EXPAND "bufferIndex") (("2" (HIDE -4) (("2" (SPLIT -5) (("1" (SIMP) (("1" (LIFT-IF) (("1" (SPLIT 2) (("1" (SIMP) (("1" (LIFT-IF) (("1" (SPLIT 1) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))) ("2" (SIMP) (("2" (LIFT-IF) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))) ("2" (LIFT-IF) (("2" (SIMP) (("2" (LIFT-IF) (("2" (SPLIT 3) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP) (("2" (SKOSIMP*) (("2" (INST -2 "rb!1") (("2" (SIMP) NIL))))))))))))))))))) (|numBuffsOcc_execute| "" (GRIND) NIL) (|numBuffsOcc_writeb| "" (GRIND) NIL) (|numBuffsOcc_retire| "" (EXPAND " numBuffsOccProp") (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE -3) (("" (REPLACE -4) (("" (HIDE -3 -4 -7 -8 -9 -10 -11) (("" (CASE "retire!1") (("1" (SIMP) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT 2) (("1" (EXPAND "numOccBuffers") (("1" (LIFT-IF) (("1" (SPLIT 1) (("1" (SPLIT -4) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (HIDE -5) (("2" (SPLIT -4) (("1" (SIMP) (("1" (TYPEPRED "nextB!1") (("1" (SIMP) (("1" (CASE "NOT nextB!1 = B") (("1" (SIMP) NIL) ("2" (LEMMA "nextBfree") (("2" (INST?) (("2" (INST -1 "oldestB!1") (("2" (SIMP) NIL))))))))))))))) ("2" (SIMP) NIL))))))))) ("2" (SIMP) (("2" (SPLIT -4) (("1" (SIMP) (("1" (HIDE -5) (("1" (SPLIT -4) (("1" (SIMP) (("1" (CASE "nextB!1 = oldestB!1") (("1" (LEMMA "nextBfree") (("1" (INST -1 "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))) ("2" (SIMP) NIL))))))))))) ("2" (SKOSIMP*) (("2" (INST -4 "rb!1") (("2" (LEMMA "occAfterRetireIfBefore") (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (LEMMA "nextBfree") (("2" (INST -1 "nextB!1" "oldestB!1") (("2" (SPLIT -1) (("1" (EXPAND "numOccBuffers") (("1" (EXPAND "bufferIndex") (("1" (LIFT-IF) (("1" (SIMP) (("1" (LIFT-IF) (("1" (SPLIT 2) (("1" (SPLIT -6) (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) (("2" (SPLIT -7) (("1" (SIMP) (("1" (LEMMA "oldestBretired") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (SIMP) NIL))))))) ("2" (SIMP) NIL))))))) ("2" (SIMP) (("2" (SPLIT -6) (("1" (SIMP) (("1" (LEMMA "oldestBretired") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (SPLIT -7) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) NIL))))))))))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))) ("2" (REPLACE 1) (("2" (REPLACE -3) (("2" (SIMP) NIL))))))))))))))))))) (|numBuffsOcc_theta| "" (GRIND) NIL) (|RSoperandsMatchProg_issue| "" (EXPAND " RSoperandsMatchProgProp") (("" (SKOSIMP*) (("" (LEMMA "numBuffsOcc_issue") (("" (INST? -1) (("" (SIMP) (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE -7) (("" (REPLACE -13) (("" (SIMP) (("" (HIDE -7 -9 -10 -11 -12 -13) (("" (LIFT-IF) (("" (SPLIT -6) (("1" (SIMP) (("1" (REPLACE -8) (("1" (HIDE -8) (("1" (SPLIT 1) (("1" (EXPAND "getBuffOp") (("1" (EXPAND " getBuffSrc") (("1" (HIDE -4) (("1" (SIMP) (("1" (CASE "NOT instIndexOfBuff(nextB!1, nextB_p!1, oldestB!1, 1 + top!1) = top!1") (("1" (HIDE 2) (("1" (EXPAND "instIndexOfBuff") (("1" (LIFT-IF) (("1" (SPLIT 1) (("1" (SIMP) (("1" (EXPAND "bufferIndex") (("1" (EXPAND "numOccBuffers") (("1" (LIFT-IF) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT 1) (("1" (SPLIT -4) (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "dispatch") (("2" (PROPAX) NIL))))))))) ("2" (SIMP) (("2" (EXPAND "dispatch") (("2" (PROPAX) NIL))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SPLIT -4) (("1" (SIMP) NIL) ("2" (SIMP) NIL))) ("2" (SIMP) NIL))))))))))))))))))) ("2" (SIMP) (("2" (EXPAND "occ_buffer" 1) (("2" (EXPAND "dispatch") (("2" (SIMP) (("2" (SPLIT 1) (("1" (SIMP) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT -4) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))) ("2" (SIMP) (("2" (EXPAND "succ") (("2" (SIMP) NIL))))))))))))))))))))))) ("2" (REPLACE -1) (("2" (SIMP) NIL))))))))))))) ("2" (SIMP) (("2" (INST? -4) (("2" (SIMP) (("2" (SIMP) (("2" (EXPAND "succ" -2) (("2" (LIFT-IF) (("2" (EXPAND "getBuffOp") (("2" (CASE "NOT instIndexOfBuff(p(RS!1(S!1)), nextB_p!1, oldestB!1, 1 + top!1) = instIndexOfBuff(p(RS!1(S!1)), nextB!1, oldestB!1, top!1)") (("1" (HIDE 3) (("1" (EXPAND "instIndexOfBuff" 1) (("1" (LIFT-IF) (("1" (EXPAND "occRSprop") (("1" (INST? -8) (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (HIDE -10) (("1" (SIMP) (("1" (LEMMA "ROBremainsOcc") (("1" (INST -1 "p(RS!1(S!1))" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (EXPAND "numOccBuffers") (("1" (LIFT-IF) (("1" (EXPAND "bufferIndex") (("1" (LIFT-IF) (("1" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer" -10) (("1" (SIMP) NIL))) ("2" (SPLIT 2) (("1" (SIMP) (("1" (SPLIT -4) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (EXPAND " getBuffSrc") (("2" (SIMP) NIL))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (INST? -3) (("2" (SIMP) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))) (|RSoperandsMatchProg_execute| "" (GRIND) NIL) (|RSoperandsMatchProg_writeb| "" (GRIND) NIL) (|RSoperandsMatchProg_retire| "" (EXPAND "RSoperandsMatchProgProp") (("" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5) (("" (REVEAL -1 -2 -3 -4 -5) (("" (LEMMA "numBuffsOcc_retire") (("" (INST?) (("" (SIMP) (("" (HIDE -1) (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE -4) (("" (REPLACE -5) (("" (REPLACE -12) (("" (HIDE -4 -5 -8 -9 -10 -11 -12) (("" (INST?) (("" (SIMP) (("" (SIMP) (("" (EXPAND "getBuffOp") (("" (EXPAND "getBuffSrc") (("" (CASE "NOT instIndexOfBuff(p(RS!1(S!1)), nextB!1, oldestB_p!1, top!1) = instIndexOfBuff(p(RS!1(S!1)), nextB!1, oldestB!1, top!1)") (("1" (HIDE 2) (("1" (LIFT-IF) (("1" (SPLIT -6) (("1" (SIMP) (("1" (EXPAND "instIndexOfBuff" 1) (("1" (LIFT-IF) (("1" (EXPAND " occRSprop") (("1" (INST? -7) (("1" (SIMP) (("1" (HIDE -9) (("1" (SIMP) (("1" (LEMMA "oldestBretired") (("1" (INST -1 "p(RS!1(S!1))" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) (("1" (EXPAND "bufferIndex") (("1" (EXPAND "numOccBuffers") (("1" (LIFT-IF) (("1" (LIFT-IF) (("1" (EXPAND "succ") (("1" (LIFT-IF) (("1" (SPLIT 1) (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (LIFT-IF) (("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) (("1" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer" -14) (("1" (PROPAX) NIL))) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))))))))))) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) (("1" (LIFT-IF) (("1" (SPLIT -5) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT 2) (("1" (SIMP) (("1" (SIMP) (("1" (EXPAND "occ_buffer" -12) (("1" (PROPAX) NIL))))))) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (SPLIT -4) (("1" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (LIFT-IF) (("2" (SPLIT 2) (("1" (SIMP) (("1" (EXPAND "occ_buffer" -12) (("1" (PROPAX) NIL))))) ("2" (SIMP) NIL))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))) ("2" (SIMP) (("2" (REVEAL -11) (("2" (REVEAL -4 -5) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (SIMP) NIL))))))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))) (|RS_ROB_ProducerMatch_issue| "" (EXPAND "RS_ROB_ProducerMatchProp") (("" (SKOSIMP*) (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE -10) (("" (REPLACE -11) (("" (SIMP) (("" (HIDE -5 -10 -11 -9) (("" (HIDE -6 -7) (("" (CASE "Sn!1 > 0") (("1" (SIMP) (("1" (SPLIT -7) (("1" (INST? -3) (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (INST? -3) (("2" (SIMP) (("2" (SIMP) (("2" (LIFT-IF) (("2" (EXPAND "occRSprop") (("2" (INST? -5) (("2" (SIMP) (("2" (HIDE -7) (("2" (LEMMA "nextBfree") (("2" (INST -1 "nextB!1" "oldestB!1") (("2" (SPLIT 3) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))))))))))))))))))) ("2" (REPLACE 1) (("2" (INST? -1) (("2" (SIMP) NIL))))))))))))))))))))))))) (|RS_ROB_ProducerMatch_execute| "" (GRIND) NIL) (|RS_ROB_ProducerMatch_writeb| "" (GRIND) NIL) (|RS_ROB_ProducerMatch_retire| "" (GRIND) NIL) (|busyROBoccRSorActiveRes_issue| "" (EXPAND "busyROBoccRSorActiveResProp") (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE -9) (("" (REPLACE -10) (("" (SIMP) (("" (HIDE -8 -9 -10) (("" (REPLACE -4) (("" (REPLACE -6) (("" (HIDE -4 -5 -6 -7) (("" (LIFT-IF) (("" (SPLIT -3) (("1" (SIMP) (("1" (SPLIT -6) (("1" (SIMP) (("1" (INST 1 "Sn!1") (("1" (SIMP) NIL))))) ("2" (SIMP) (("2" (LEMMA "NewOcc") (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (EXPAND "dispatch") (("2" (SIMP) (("2" (INST? -5) (("2" (SIMP) (("2" (SPLIT -5) (("1" (SKOSIMP*) (("1" (INST? 4) (("1" (LIFT-IF) (("1" (SPLIT 4) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))) ("2" (PROPAX) NIL))))))))))))))))))))) ("2" (SIMP) (("2" (INST? -2) (("2" (SIMP) (("2" (SPLIT -2) (("1" (PROPAX) NIL) ("2" (PROPAX) NIL))))))))))))))))))))))))))))))))) (|busyROBoccRSorActiveRes_execute| "" (SKOSIMP*) (("" (EXPAND " busyROBoccRSorActiveResProp") (("" (EXPAND " rho_execute") (("" (SKOSIMP*) (("" (REPLACE -2) (("" (REPLACE -3) (("" (REPLACE -6) (("" (REPLACE -9) (("" (REPLACE -10) (("" (SIMP) (("" (HIDE -2 -3 -4 -6 -7 8 -9 -10 -11) (("" (INST? -1) (("" (SIMP) (("" (HIDE -3) (("" (SPLIT -1) (("1" (SKOSIMP*) (("1" (INST 1 "S!1") (("1" (LIFT-IF) (("1" (SPLIT 1) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (INST 3 "FU!1") (("1" (SIMP) NIL))))))) ("2" (SIMP) NIL))))))))) ("2" (SKOSIMP*) (("2" (INST? 2) (("2" (LIFT-IF) (("2" (INST? -3) (("2" (SPLIT 2) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))) (|busyROBoccRSorActiveRes_writeb| "" (SKOSIMP*) (("" (EXPAND "busyROBoccRSorActiveResProp") (("" (EXPAND "rho_writeb") (("" (SKOSIMP*) (("" (REPLACE -9) (("" (REPLACE -10) (("" (HIDE -9 -10) (("" (SIMP) (("" (REPLACE -2) (("" (REPLACE -3) (("" (REPLACE -6) (("" (HIDE -2 -3 -4 -6) (("" (SIMP) (("" (INST? -1) (("" (SIMP) (("" (SPLIT -6) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (SPLIT -2) (("1" (SKOSIMP*) (("1" (INST? 2) (("1" (SIMP) NIL))))) ("2" (SKOSIMP*) (("2" (INST? 3) (("2" (SIMP) (("2" (INST? 1) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))) (|busyROBoccRSorActiveRes_retire| "" (GRIND) NIL) (|numOccLessTop| "" (EXPAND " numBuffsOccProp") (("" (EXPAND "numOccLessTopProp") (("" (EXPAND "numOccBuffers") (("" (SKOSIMP*) (("" (SIMP-SPLIT) NIL))))))))) (|ROBoperandMatchProg_issue| "" (EXPAND "ROBoperandMatchProgProp") (("" (SKOSIMP*) (("" (HIDE -1 -2) (("" (REVEAL -1 -2) (("" (SIMPLIFY-WITH-REWRITES :DEFS T) (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -9 -8 -7 -6 -5 -4 -3 -2) (("" (EXPAND "numOccLessTopProp") (("" (EXPAND "instIndexOfBuff") (("" (SIMPLIFY-WITH-REWRITES :DEFS T) (("" (EXPAND "numOccBuffers") (("" (EXPAND "bufferIndex") (("" (EXPAND "occ_buffer") (("" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) NIL))))))))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) NIL))))))) ("2" (SIMP-SPLIT) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT) NIL))))))))))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (INST?) (("1" (INST?) (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) NIL))))))))) ("2" (SKOSIMP*) (("2" (SIMP-SPLIT) NIL))))) ("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (INST?) (("1" (INST?) (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (SPLIT) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))))) ("2" (INST?) (("2" (INST?) (("2" (SIMP) (("2" (SIMP-SPLIT -) (("2" (SIMP-SPLIT -3) NIL))))))))))))) ("2" (INST?) (("2" (SIMP-SPLIT) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) NIL))))))))))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (CASE "NOT rb!1 < nextB!1") (("1" (SIMP) NIL) ("2" (INST?) (("2" (INST?) (("2" (SIMP) (("2" (INST?) (("2" (SIMP) (("2" (HIDE -4 -8) (("2" (SIMP-SPLIT -) NIL))))))))))))))))) ("2" (INST? -7) (("2" (SIMP) (("2" (SIMP-SPLIT -) NIL))))))) ("2" (SKOSIMP*) (("2" (INST -8 "rb!2" "j!1") (("2" (SIMP) NIL))))))) ("2" (CASE " Sn!1 > 0") (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (INST? -8) (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) NIL))))))))) ("2" (SKOSIMP*) (("2" (SIMP-SPLIT) NIL))))))) ("2" (SIMP) (("2" (INST? -6) (("2" (SIMP) NIL))))))))) ("2" (CASE "Sn!1 > 0") (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) NIL))))))) ("2" (SIMP) (("2" (SIMP-SPLIT) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT) NIL))))))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (INST?) (("1" (INST?) (("1" (SIMP) (("1" (SPLIT -5) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT) NIL))) ("2" (PROPAX) NIL))))))))))) ("2" (SIMP-SPLIT) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) NIL))))))))) ("2" (SPLIT +) (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (INST?) (("1" (INST?) (("1" (SIMP-SPLIT) (("1" (HIDE -2 -3) (("1" (SIMP-SPLIT -) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) NIL))))))))) ("2" (HIDE -2) (("2" (SIMP-SPLIT -) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) NIL))))))))))))))))) ("2" (SIMP-SPLIT) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) NIL))))))))))) ("2" (SIMP) (("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (INST?) (("1" (INST?) (("1" (SIMP-SPLIT) (("1" (HIDE -2 -3 -4 -7) (("1" (SIMP-SPLIT -) NIL))) ("2" (SIMP-SPLIT -4) NIL))))))))) ("2" (SIMP-SPLIT) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))))))))))))))))))))))))))) (|ROBoperandMatchProg_execute| "" (EXPAND "rho_execute") (("" (EXPAND "ROBoperandMatchProgProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (INST? -10) (("" (SIMP) NIL))))))))))) (|ROBoperandMatchProg_writeb| "" (EXPAND "rho_writeb") (("" (EXPAND "ROBoperandMatchProgProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (INST? -10) (("" (SIMP) NIL))))))))))))) (|ROBoperandMatchProg_retire| "" (EXPAND "rho_retire") (("" (EXPAND "ROBoperandMatchProgProp") (("" (EXPAND "numOccLessTopProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -5 -6 -7 -8 -9) (("" (INST?) (("" (SIMP-SPLIT) (("" (LEMMA "occAfterRetireIfBefore") (("" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("" (SIMP) (("" (SPLIT -) (("1" (SIMP) (("1" (EXPAND "getBuffSrc") (("1" (EXPAND "instIndexOfBuff") (("1" (EXPAND "numBuffsOccProp") (("1" (EXPAND "numOccBuffers") (("1" (EXPAND " bufferIndex") (("1" (EXPAND "succ") (("1" (EXPAND "occ_buffer") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT -) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) NIL))))) ("2" (SKOSIMP*) (("2" (SIMP-SPLIT) NIL))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (HIDE -4) (("1" (SIMP-SPLIT -) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) NIL))))))))) ("2" (HIDE -3) (("2" (SIMP-SPLIT -) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) NIL))))))))))) ("2" (SKOSIMP*) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) NIL))))))))) ("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) (("1" (HIDE -3) (("1" (SIMP-SPLIT -) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) NIL))))))))) ("2" (SKOSIMP*) (("2" (HIDE -3) (("2" (SIMP-SPLIT -) NIL))))))))))))))))))))))))))) ("2" (SIMP) (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))))))))))))))))))))))) (|ROBoperandRecentProp_issue| "" (EXPAND " rho_issue") (("" (EXPAND "ROBoperandRecentProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -2 -3 -4 -5 -6 -7 -8 -9) (("" (SIMP) (("" (EXPAND "dispatch") (("" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "busyRATprop") (("1" (INSTBEST) (("1" (INSTBEST) (("1" (SIMP) (("1" (LEMMA "nextBfree") (("1" (INSTBEST) (("1" (INST -1 "oldestB!1") (("1" (SIMP) NIL))))))))))))))) ("2" (SKOSIMP*) (("2" (SIMP-SPLIT -) (("1" (EXPAND "weakPreceed") (("1" (PROPAX) NIL))) ("2" (EXPAND "weakPreceed") (("2" (EXPAND " OccBuffBusyRATprop") (("2" (HIDE -7) (("2" (INST?) (("2" (SIMP-SPLIT -) (("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))) ("2" (SIMP-SPLIT) (("1" (EXPAND " busyRATprop") (("1" (INST? -8) (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (REPLACE*) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT -) (("1" (EXPAND "weakPreceed" +) (("1" (PROPAX) NIL))) ("2" (EXPAND "OccBuffBusyRATprop") (("2" (INST? -14) (("2" (REPLACE*) (("2" (EXPAND "weakPreceed") (("2" (SIMP) (("2" (EXPAND " RATpointsNewestBuffProp") (("2" (HIDE -9) (("2" (INST? -14) (("2" (SIMP) (("2" (INST -14 "rb2!1") (("2" (SIMP) (("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP) (("2" (HIDE -14 4 -3 -12) (("2" (EXPAND "preceed") (("2" (LEMMA "ROBremainsOcc") (("2" (INST? :WHERE +) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))) ("2" (EXPAND "preceed" 1) (("2" (REPLACE*) (("2" (LEMMA "ROBremainsOcc") (("2" (INST?) (("2" (SIMP) (("2" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (SIMP-SPLIT) (("2" (EXPAND " occ_buffer") (("2" (SIMP-SPLIT) (("2" (SIMP) NIL))))))))))))))))))))))))))) ("2" (SKOSIMP*) (("2" (REPLACE*) (("2" (EXPAND "weakPreceed") (("2" (SIMP-SPLIT -) (("2" (HIDE -6) (("2" (EXPAND " OccBuffBusyRATprop") (("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP) (("2" (INST?) (("2" (SIMP) (("2" (EXPAND " busyRATprop") (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (SIMP-SPLIT) (("1" (INST?) (("1" (SIMP) (("1" (INST?) NIL))))) ("2" (CASE "Sn!1 > 0") (("1" (SIMP) (("1" (LEMMA "NewOcc") (("1" (INST?) (("1" (SIMP) (("1" (INST?) (("1" (SIMP) (("1" (INST?) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (REPLACE*) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (EXPAND "occ_buffer" -4) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) NIL))))))))))))))) ("2" (SIMP-SPLIT -) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (LEMMA "ROBremainsOcc") (("1" (INST?) (("1" (SIMP) NIL))))))))))) ("2" (SKOSIMP*) (("2" (INST -1 "rb2!1") (("2" (SIMP) (("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP) (("2" (REPLACE -5) (("2" (CASE "NOT occ_buffer(rb2!1, nextB!1, oldestB!1) ") (("1" (SIMP) (("1" (REPLACE*) (("1" (EXPAND "weakPreceed") (("1" (EXPAND "preceed" +) (("1" (HIDE 2) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) NIL))))))))))))))) ("2" (HIDE -2) (("2" (SIMP) (("2" (SIMP-SPLIT -4) (("1" (LEMMA "nextBfree") (("1" (INST?) (("1" (INST -1 "oldestB!1") (("1" (SIMP) NIL))))))) ("2" (HIDE 2 3) (("2" (EXPAND "weakPreceed") (("2" (SIMP) (("2" (EXPAND "preceed") (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT -) (("1" (SKOSIMP*) (("1" (INST -3 "rb2!1") (("1" (SIMP) (("1" (LEMMA "NewOcc") (("1" (INST?) (("1" (SIMP) (("1" (SIMP-SPLIT -8) (("1" (REPLACE*) (("1" (EXPAND "weakPreceed") (("1" (HIDE 1 -3) (("1" (EXPAND "preceed") (("1" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (SIMP-SPLIT) (("2" (EXPAND "occ_buffer" -9) (("2" (SIMP-SPLIT -9) (("2" (HIDE -3 -4 -5 -6 -7 -8) (("2" (SIMP-SPLIT -) NIL))))))))))))))))))) ("2" (EXPAND "weakPreceed") (("2" (HIDE -7) (("2" (EXPAND "preceed") (("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST? :WHERE +) (("2" (SIMP) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))))))))))) ("2" (HIDE 2 -1) (("2" (EXPAND "preceed") (("2" (LEMMA "NewOcc") (("2" (SIMP) (("2" (INST? :WHERE +) (("2" (SIMP) NIL))))))))))))) ("2" (SKOSIMP*) (("2" (SIMP-SPLIT -6) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (LEMMA "ROBremainsOcc") (("1" (INST?) (("1" (SIMP) NIL))))))))) ("2" (INST -1 "rb2!1") (("2" (SIMP) (("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP-SPLIT -4) (("1" (REPLACE -1) (("1" (EXPAND "weakPreceed" +) (("1" (EXPAND "preceed" 3) (("1" (HIDE 1 2) (("1" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (SIMP-SPLIT) (("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT) (("2" (SIMP) NIL))))))))))))))))) ("2" (EXPAND "weakPreceed") (("2" (HIDE 2 3) (("2" (EXPAND "preceed") (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (HIDE -1) (("2" (INST?) (("2" (SIMP-SPLIT) (("1" (INST?) (("1" (SIMP) NIL))) ("2" (SKOSIMP*) (("2" (INST?) (("2" (SIMP) (("2" (REPLACE*) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))) (|ROBoperandRecentProp_execute| "" (EXPAND "rho_execute") (("" (EXPAND "ROBoperandRecentProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -5 -6 -7 -8 -9 -1 -2 -3) (("" (INST? -2) (("" (SIMP) (("" (INST? -2) NIL))))))))))))))) (|ROBoperandRecentProp_writeb| "" (EXPAND "ROBoperandRecentProp") (("" (EXPAND "rho_writeb") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (INST? -2) (("" (SIMP) (("" (INST? -2) NIL))))))))))))))))) (|RetireMaintainsPreceed| "" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (GRIND) NIL))))))))) (|ROBoperandRecentProp_retire| "" (SKOSIMP*) (("" (LEMMA "RetireMaintainsPreceed") (("" (INST?) (("" (EXPAND "ROBoperandRecentProp") (("" (SIMP) (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -3 -2 -6 -7 -8 -9 -10) (("" (SIMP-SPLIT) (("1" (LEMMA "occAfterRetireIfBefore") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer") (("1" (SIMP) NIL))) ("2" (INST? -6) (("2" (SIMP) (("2" (INST? -6) (("2" (SIMP-SPLIT) (("1" (INST?) (("1" (SIMP) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (INST -12 "rb2!1") (("1" (SIMP) (("1" (LEMMA "occAfterRetireIfBefore") (("1" (INST -1 "rb2!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (EXPAND "weakPreceed") (("1" (SIMP) (("1" (REVEAL -2) (("1" (HIDE -9) (("1" (SPLIT) (("1" (INST -2 "rb2!1" "p(ss(ROB!1(rb!1))(j!1))") (("1" (SIMP) (("1" (EXPAND "occ_buffer") (("1" (EXPAND "succ") (("1" (REPLACE -2) (("1" (SIMP-SPLIT -6) (("1" (SIMP-SPLIT -) NIL))))))))))))) ("2" (INST -2 "rb!1" "rb2!1") (("2" (SIMP) (("2" (REPLACE -2) (("2" (EXPAND "succ") (("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT -16) (("2" (SIMP-SPLIT -) NIL))))))))))))))))))))))))))))))))))))))))) ("2" (SIMP-SPLIT -) (("1" (HIDE -4) (("1" (INST?) (("1" (SIMP) (("1" (REPLACE*) (("1" (REVEAL -2) (("1" (SKOSIMP*) (("1" (INST -1 "rb2!1") (("1" (LEMMA "occAfterRetireIfBefore") (("1" (INST?) (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (EXPAND "weakPreceed" -) (("1" (SIMP-SPLIT -) (("1" (REPLACE*) (("1" (EXPAND "succ") (("1" (EXPAND "occ_buffer" -5) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) NIL))))))))) ("2" (REPLACE*) (("2" (EXPAND "preceed" -1) (("2" (PROPAX) NIL))))))))) ("2" (EXPAND "weakPreceed") (("2" (SIMP) (("2" (REVEAL -1) (("2" (INST -1 "rb!1" "rb2!1") (("2" (SIMP) (("2" (EXPAND "succ") (("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT -17) (("2" (SIMP-SPLIT -) NIL))))))))))))))))))))))))))))))))))))))) ("2" (SKOSIMP*) (("2" (INST -1 "rb2!1") (("2" (SIMP) (("2" (LEMMA "occAfterRetireIfBefore") (("2" (INST?) (("2" (SIMP) (("2" (HIDE 1 2) (("2" (EXPAND "weakPreceed") (("2" (SIMP) (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "succ") (("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT -12) (("2" (SIMP-SPLIT -) NIL))))))))))))))))))))))))))))))))))))))))))))))) ("2" (INST? -4) (("2" (SIMP) (("2" (INST? -4) NIL))))))))))))))))))))))))) (|RSopsMatchGetOperandVal_issue| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11) (("" (REVEAL -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11) (("" (LEMMA "occRS_issue") (("" (INST?) (("" (SIMP) (("" (LEMMA " RetiredOperandsMatchRF_issue") (("" (INST?) (("" (SIMP) (("" (LEMMA "writtenBOperandsNearest_issue") (("" (INST?) (("" (SIMP) (("" (HIDE -9 -10 -11 -12 -13 -14) (("" (EXPAND "RSopsMatchGetOperandValProp") (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9 -10 -11 -12) (("" (EXPAND "getOperandVal") (("" (SIMP) (("" (SIMP-SPLIT) (("1" (EXPAND "dispatch") (("1" (SIMP-SPLIT) (("1" (HIDE -6 -7 -8 -9) (("1" (REVEAL -4) (("1" (EXPAND "occRSprop") (("1" (SIMP) (("1" (INST?) (("1" (SIMP) (("1" (INST?) (("1" (SIMP) (("1" (LIFT-SPLIT) (("1" (LIFT-SPLIT) NIL) ("2" (HIDE -3) (("2" (REVEAL -6) (("2" (EXPAND "RetiredOperandsMatchRFprop") (("2" (INST?) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))) ("2" (REPLACE*) NIL))))) ("2" (REPLACE*) (("2" (INST?) (("2" (SIMP) (("2" (SPLIT 3) (("1" (PROPAX) NIL) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (REPLACE*) (("1" (EXPAND "succ") (("1" (EXPAND "preceed") (("1" (HIDE -7) (("1" (SIMP) (("1" (SIMP-SPLIT -5) (("1" (SIMP-SPLIT -) (("1" (REPLACE*) (("1" (EXPAND "occ_buffer") (("1" (SIMP-SPLIT -) NIL))))) ("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT -4) (("2" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) NIL) ("2" (SIMP-SPLIT -) NIL))))))))))))))))))))) ("2" (SIMP-SPLIT -) (("2" (EXPAND "preceed") (("2" (SIMP) (("2" (LEMMA "NewOcc") (("2" (INST? :COPY? T) (("2" (SIMP) (("2" (EXPAND "dispatch") (("2" (SIMP) (("2" (INST? :WHERE +) (("2" (SIMP) (("2" (SIMP-SPLIT -) (("2" (REPLACE*) (("2" (EXPAND "occRSprop") (("2" (INST?) (("2" (REPLACE*) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))))))))))) ("2" (EXPAND "dispatch") (("2" (SIMP-SPLIT -) (("2" (EXPAND "preceed") (("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST? :COPY? T) (("2" (SIMP) (("2" (INST? :WHERE +) (("2" (SIMP) NIL))))))))))))))))))) ("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))) (|RSopsMatchGetOperandVal_execute| "" (SKOSIMP*) (("" (EXPAND "rho_execute") (("" (EXPAND "RSopsMatchGetOperandValProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (INST? -10) (("" (SIMP-SPLIT -) NIL))))))))))))))) (|RSopsMatchGetOperandVal_writeb| "" (SKOSIMP*) (("" (HIDE -3 -4 -5 -6 -7 -8 -9 -10 -11 -12) (("" (HIDE -1 -2) (("" (REVEAL -1 -2) (("" (EXPAND "RSopsMatchGetOperandValProp") (("" (EXPAND "rho_writeb") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT) (("" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "getOperandVal") (("1" (HIDE -1 -6) (("1" (REVEAL -15) (("1" (EXPAND "occRSprop") (("1" (INST?) (("1" (SIMP) (("1" (SIMP) (("1" (INST?) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (INST?) (("1" (SIMP) NIL))))) ("2" (EXPAND " busyOperandsNearestProp") (("2" (INSTBEST) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (HIDE 1) (("2" (INST? -3) (("2" (EXPAND "getOperandVal") (("2" (SIMP) (("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (HIDE -8) (("1" (REVEAL -22) (("1" (SKOSIMP*) (("1" (INST?) (("1" (EXPAND "activeResProp") (("1" (INST?) (("1" (SIMP) (("1" (REVEAL -16 -24) (("1" (EXPAND " activeResProp") (("1" (EXPAND "writtenBOperandsNearestProp") (("1" (INST?) (("1" (INST?) (("1" (SIMP) NIL))))))))))))))))))))))))))) ("2" (SIMP-SPLIT -) NIL))))))))))))))))))))))))))))))))))) (|RSopsMatchGetOperandVal_retire| "" (SKOSIMP*) (("" (LEMMA "RetireMaintainsPreceed") (("" (INST?) (("" (SIMP) (("" (EXPAND "RSopsMatchGetOperandValProp") (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -2 -3 -6 -7 -8 -9 -10) (("" (INST? -4) (("" (EXPAND "getOperandVal") (("" (SIMP) (("" (SIMP) (("" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT -) (("1" (INST?) (("1" (SIMP) NIL))))) ("2" (SIMP-SPLIT -) (("1" (INST?) (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (HIDE -6) (("1" (REPLACE*) (("1" (EXPAND "writtenBOperandsNearestProp") (("1" (INST?) (("1" (SIMP) NIL))))))))))))))) ("2" (SIMP-SPLIT 3) (("2" (EXPAND " RS_ROB_ProducerMatchProp") (("2" (EXPAND "occRSprop") (("2" (HIDE -4) (("2" (INST?) (("2" (SIMP) (("2" (INST?) (("2" (INST?) (("2" (SIMP) (("2" (HIDE -14) (("2" (EXPAND "RSoperandsMatchProgProp") (("2" (EXPAND "ROBoperandMatchProgProp") (("2" (INST?) (("2" (INST?) (("2" (SIMP) (("2" (INST?) (("2" (EXPAND "ROBoperandRecentProp") (("2" (INST -7 "p(RS!1(S!1))") (("2" (SIMP) (("2" (INST?) (("2" (REPLACE*) (("2" (REPLACE 2) (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "weakPreceed") (("2" (EXPAND "preceed" -) (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))))) (|activeResOpsNotBusy_issue| "" (SKOSIMP*) (("" (EXPAND "rho_issue") (("" (EXPAND " activeResOpsNotBusyProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -3 -4 -5 -6 -7 -8 -9) (("" (INST?) (("" (SIMP) (("" (SIMP) (("" (SKOSIMP*) (("" (INST?) (("" (SIMP) (("" (LIFT-IF) (("" (SIMP-SPLIT -7) (("1" (EXPAND "dispatch") (("1" (REPLACE*) (("1" (SIMP-SPLIT -10) (("1" (EXPAND "activeResProp") (("1" (INST?) (("1" (SIMP) (("1" (LEMMA "nextBfree") (("1" (INSTBEST) (("1" (REPLACE*) (("1" (INST?) NIL))))))))))))) ("2" (REPLACE*) NIL))))))) ("2" (REPLACE*) (("2" (EXPAND "activeResProp") (("2" (INST?) (("2" (CASE "Sn!1 > 0") (("1" (SIMP) (("1" (EXPAND "dispatch") (("1" (SIMP-SPLIT -12) (("1" (REPLACE*) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (SIMP-SPLIT -14) (("1" (EXPAND "occ_buffer") (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -9) NIL))))))))))))))) ("2" (EXPAND "preceed") (("2" (SIMP) (("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP) NIL))))))))))))))) ("2" (REPLACE*) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))) (|activeResOpsNotBusy_execute| "" (EXPAND "activeResOpsNotBusyProp") (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT -5) (("" (INST?) (("" (EXPAND "enabled") (("" (SIMP) (("" (EXPAND "writtenBOperandsNearestProp") (("" (SIMP-SPLIT -6) (("" (EXPAND "occRSprop") (("" (SIMP) (("" (SIMP-SPLIT) (("1" (HIDE -4) (("1" (INST? -6) (("1" (EXPAND "RS_ROB_ProducerMatchProp") (("1" (INST? -7) (("1" (SIMP) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (INST -14 "j!1") (("1" (HIDE -6) (("1" (INST -7 "iex!1(FU!1)" "j!1") (("1" (SIMP) (("1" (ASSERT) (("1" (ASSERT :FLUSH? T) NIL))))))))))))))))))))))))) ("2" (REPLACE*) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))) (|activeResOpsNotBusy_writeb| "" (EXPAND "activeResOpsNotBusyProp") (("" (EXPAND "rho_writeb") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (INST?) (("" (INST?) (("" (SIMP) (("" (SIMP) (("" (SKOSIMP*) (("" (INST?) (("" (SIMP) NIL))))))))))))))))))))))))) (|activeResOpsNotBusy_retire| "" (SKOSIMP*) (("" (LEMMA "RetireMaintainsPreceed") (("" (INST?) (("" (SIMP) (("" (EXPAND "rho_retire") (("" (EXPAND "activeResOpsNotBusyProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (INST? -11) (("" (SIMP) (("" (SIMP) (("" (SKOSIMP*) (("" (INST? -12) (("" (SIMP) (("" (SIMP-SPLIT -) (("" (INST?) (("" (SIMP) NIL))))))))))))))))))))))))))))))))) (|activeResCorrectVal_issue| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14) (("" (REVEAL -1 -2) (("" (EXPAND "rho_issue") (("" (EXPAND "activeResCorrectValProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -3 -4 -5 -6 -7 -8 -9) (("" (INST?) (("" (SIMP) (("" (SIMP) (("" (EXPAND "dispatch") (("" (SIMP-SPLIT) (("1" (HIDE 1) (("1" (CASE "NOT instIndexOfBuff(p(res!1(FU!1)), nextB!1, oldestB!1, top!1) = instIndexOfBuff(p(res!1(FU!1)), succ(nextB!1), oldestB!1, 1 + top!1)") (("1" (EXPAND "instIndexOfBuff") (("1" (EXPAND " bufferIndex") (("1" (EXPAND "numBuffsOccProp") (("1" (EXPAND "numOccBuffers") (("1" (EXPAND "bufferIndex") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (LEMMA "ROBremainsOcc") (("1" (INST?) (("1" (SIMP) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) (("1" (HIDE -11) (("1" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer" -1) (("1" (SIMP) NIL))))))))))) ("2" (SIMP-SPLIT) (("2" (HIDE -10) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT) (("2" (EXPAND "occ_buffer") (("2" (SIMP) NIL))))))))))))))))))))) ("2" (HIDE -6) (("2" (REVEAL -13) (("2" (EXPAND "activeResProp") (("2" (INST?) (("2" (SIMP) (("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "succ") (("2" (SIMP-SPLIT 4) (("1" (SIMP-SPLIT 4) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT 4) (("1" (INST?) (("1" (SIMP) (("1" (LEMMA "ROBremainsOcc") (("1" (INST?) (("1" (SIMP) (("1" (EXPAND "occ_buffer") (("1" (SIMP) NIL))))))))))))))))))) ("2" (SIMP-SPLIT 5) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT 5) (("2" (INST?) (("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT -) NIL))))))))))))))))))))))))))))))))))) ("2" (HIDE -5) (("2" (SIMP-SPLIT) (("1" (LEMMA "ROBremainsOcc") (("1" (INST?) (("1" (SIMP) (("1" (EXPAND "succ") (("1" (EXPAND "occ_buffer" (-1 -2)) (("1" (FLATTEN) (("1" (ASSERT :FLUSH? T) (("1" (SPLIT -2) (("1" (SPLIT 2) (("1" (SIMPLIFY) (("1" (LIFT-IF) (("1" (SPLIT 1) (("1" (SIMPLIFY) (("1" (PROPAX) NIL))) ("2" (FLATTEN) (("2" (SKOSIMP*) (("2" (INST? -6) (("2" (LEMMA "ROBremainsOcc") (("2" (LIFT-IF) (("2" (ASSERT :FLUSH? T) NIL))))))))))))))))) ("2" (FLATTEN) (("2" (LIFT-IF) (("2" (SPLIT 2) (("1" (FLATTEN) (("1" (PROPAX) NIL))) ("2" (FLATTEN) (("2" (SKOSIMP*) (("2" (LIFT-IF) (("2" (ASSERT :FLUSH? T) (("2" (SPLIT 1) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))))))))))))))))) ("2" (SIMP-SPLIT) (("2" (SKOSIMP*) (("2" (SIMP-SPLIT) (("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))) ("2" (REVEAL -13) (("2" (EXPAND "activeResProp") (("2" (INST?) (("2" (SIMP) (("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "occ_buffer" -) (("2" (LIFT-IF) (("2" (SPLIT 3) (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (INST -2 "p(res!1(FU!1))") (("1" (SIMP) NIL))))))))) ("2" (SIMP) (("2" (SIMP-SPLIT) (("2" (EXPAND "succ") (("2" (ASSERT :FLUSH? T) (("2" (SKOSIMP*) (("2" (LIFT-IF) (("2" (ASSERT :FLUSH? T) (("2" (SPLIT 4) (("1" (SIMP) NIL) ("2" (FLATTEN) (("2" (EXPAND "occ_buffer" -) (("2" (SPLIT -7) (("1" (ASSERT :FLUSH? T) NIL) ("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (CASE "NOT getBuffOp(p(res!1(FU!1)), nextB!1, oldestB!1, top!1) = getBuffOp(p(res!1(FU!1)), succ(nextB!1), oldestB!1, 1 + top!1)") (("1" (EXPAND "getBuffOp" +) (("1" (ASSERT) NIL))) ("2" (REVEAL 1) (("2" (REPLACE*) (("2" (HIDE 1) (("2" (CASE "NOT (FORALL (j: TWO): getOperandVal(RF!1, (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF rb = nextB!1 THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): (# p := IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF, r := src(prog(top!1))(j) #)) #) ELSE ROB!1(rb) ENDIF), IF p(res!1(FU!1)) = nextB!1 THEN IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF ELSE p(ss(ROB!1(p(res!1(FU!1))))(j)) ENDIF, p(res!1(FU!1)), getBuffSrc(j, p(res!1(FU!1)), succ(nextB!1), oldestB!1, 1 + top!1), succ(nextB!1), oldestB!1) = getOperandVal(RF!1, ROB!1, p(ss(ROB!1(p(res!1(FU!1))))(j)), p(res!1(FU!1)), getBuffSrc(j, p(res!1(FU!1)), nextB!1, oldestB!1, top!1), nextB!1, oldestB!1))") (("1" (HIDE -7 -1) (("1" (SKOSIMP*) (("1" (EXPAND "getBuffSrc") (("1" (REPLACE*) (("1" (EXPAND "getOperandVal") (("1" (REVEAL -14) (("1" (EXPAND "activeResProp") (("1" (INST?) (("1" (SIMP) (("1" (HIDE -3 1) (("1" (SIMP-SPLIT) (("1" (LEMMA "nextBfree") (("1" (INSTBEST) (("1" (REPLACE*) (("1" (INST?) NIL))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (REPLACE*) (("1" (EXPAND "preceed") (("1" (LEMMA "nextBfree") (("1" (INSTBEST) (("1" (SIMP) NIL))))))))))) ("2" (EXPAND "preceed") (("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP) (("2" (SIMP-SPLIT 2) (("2" (REPLACE*) (("2" (HIDE -2) (("2" (SIMP-SPLIT -) (("2" (SIMP-SPLIT -) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT -) (("2" (SIMP-SPLIT -6) (("2" (SIMP-SPLIT -7) NIL))))))))))))))))))))))))))) ("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) (("2" (EXPAND "preceed") (("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST? :COPY? T) (("2" (SIMP) (("2" (INST? :WHERE +) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))) ("2" (REVEAL 1) (("2" (INST? :COPY? T) (("2" (REPLACE*) (("2" (INST? :WHERE +) (("2" (REPLACE*) NIL))))))))) ("3" (SIMP) NIL) ("4" (SKOSIMP*) NIL) ("5" (SKOSIMP*) NIL) ("6" (SIMP) NIL) ("7" (SKOSIMP*) NIL) ("8" (SKOSIMP*) NIL) ("9" (SKOSIMP*) NIL))))))))) ("3" (SIMP) NIL))) ("3" (ASSERT) NIL))))) ("2" (SIMP) (("2" (CASE "NOT ROB!1 = (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): ROB!1(rb))") (("1" (APPLY-EXTENSIONALITY 1 :HIDE? T) NIL) ("2" (REPLACE*) NIL))))))))))))))))))))))))))))))))) (|activeResCorrectVal_execute| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14) (("" (REVEAL -1 -2) (("" (EXPAND "rho_execute") (("" (EXPAND "activeResCorrectValProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT -) (("1" (INST?) (("1" (EXPAND "enabled") (("1" (SIMP) (("1" (HIDE -3 -4) (("1" (REVEAL -19) (("1" (EXPAND "occRSprop") (("1" (INST?) (("1" (SIMP) (("1" (SIMP) (("1" (REVEAL -15) (("1" (EXPAND "RSopsMatchGetOperandValProp") (("1" (REVEAL -21) (("1" (EXPAND "RSoperandsMatchProgProp") (("1" (INST?) (("1" (SIMP) (("1" (REPLACE*) (("1" (INST-CP -3 "iex!1(FU!1)" "1") (("1" (SIMP) (("1" (INST -3 "iex!1(FU!1)" "2") (("1" (SIMP) (("1" (INST-CP -2 "1") (("1" (INST -2 "2") (("1" (REPLACE*) (("1" (REVEAL -21) (("1" (EXPAND "RS_ROB_ProducerMatchProp") (("1" (INST?) (("1" (SIMP) (("1" (INST? :COPY? T) (("1" (INST -1 "1") (("1" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (REPLACE*) (("2" (INST?) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))) (|activeResCorrectVal_writeb| "" (SKOSIMP*) (("" (HIDE -7 -8 -9 -10 -11 -12 -13 -14) (("" (EXPAND "rho_writeb") (("" (EXPAND "activeResCorrectValProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (EXPAND "activeResProp") (("" (INST? -4) (("" (INST? -2) (("" (SIMP) (("" (CASE "(FORALL (j: TWO): getOperandVal(RF!1, (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF (EXISTS (FU: FU_ID[N, R, U, Z, B]): writeback!1(FU) AND p(res!1(FU)) = rb) THEN (# rt := (# b := FALSE, v := v(res!1(chooseFU(rb, res!1))) #), t := t(ROB!1(rb)), ss := ss(ROB!1(rb)) #) ELSE ROB!1(rb) ENDIF), p(ss(ROB!1(p(res!1(FU!1))))(j)), p(res!1(FU!1)), getBuffSrc(j, p(res!1(FU!1)), nextB!1, oldestB!1, top!1), nextB!1, oldestB!1) = getOperandVal(RF!1, ROB!1, p(ss(ROB!1(p(res!1(FU!1))))(j)), p(res!1(FU!1)), getBuffSrc(j, p(res!1(FU!1)), nextB!1, oldestB!1, top!1), nextB!1, oldestB!1))") (("1" (INST? :COPY? T) (("1" (INST -1 "2") (("1" (ASSERT) NIL))))) ("2" (HIDE 4) (("2" (SKOSIMP*) (("2" (EXPAND "getOperandVal") (("2" (HIDE -3) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) (("2" (SKOSIMP*) (("2" (INST?) (("2" (REVEAL -4) (("2" (SIMP) (("2" (INST -1 "FU!2") (("2" (SIMP) (("2" (REPLACE*) (("2" (EXPAND "activeResOpsNotBusyProp") (("2" (INST? -10) (("2" (SIMP) (("2" (INST? -10) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))) ("3" (SIMP) NIL) ("4" (HIDE 2 3 4) (("4" (SKOSIMP*) (("4" (EXPAND "chooseFU") (("4" (LIFT-IF) (("4" (SIMP-SPLIT -) (("4" (INST?) (("4" (INST?) (("4" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))) (|activeResCorrectVal_retire| "" (EXPAND "activeResCorrectValProp") (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -5 -6 -7 -8 -9) (("" (INST?) (("" (SIMP) (("" (SIMP) (("" (SIMP-SPLIT) (("1" (EXPAND "getBuffSrc") (("1" (CASE "NOT instIndexOfBuff(p(res!1(FU!1)), nextB!1, oldestB!1, top!1) = (instIndexOfBuff(p(res!1(FU!1)), nextB!1, succ(oldestB!1), top!1))") (("1" (HIDE -5 2) (("1" (EXPAND "instIndexOfBuff") (("1" (EXPAND "activeResProp") (("1" (INST?) (("1" (SIMP) (("1" (LEMMA "oldestBretired") (("1" (INST?) (("1" (SIMP) (("1" (CASE "NOT (numBuffsOccProp(top!1, nextB!1, oldestB!1) IMPLIES numBuffsOccProp(top!1, nextB!1, succ(oldestB!1)))") (("1" (HIDE 2) (("1" (EXPAND "numBuffsOccProp") (("1" (SIMP) (("1" (EXPAND "numOccBuffers") (("1" (SIMP-SPLIT -) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) (("1" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer") (("1" (SIMP) NIL))) ("2" (SIMP) (("2" (SKOSIMP*) (("2" (INST -5 "rb!1") (("2" (LEMMA "occAfterRetireIfBefore") (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (EXPAND "bufferIndex") (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT -) (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))))))))))))))))) ("2" (TYPEPRED "nextB!1") (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (INST -4 "rb!1") (("1" (LEMMA "occAfterRetireIfBefore") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (HIDE -15 -16 -17 -18 -19 -20 -21 -22 -23 -24) (("1" (HIDE -11 4 -14) (("1" (ASSERT :FLUSH? T) (("1" (EXPAND "succ") (("1" (EXPAND "bufferIndex") (("1" (ASSERT :FLUSH? T) (("1" (LIFT-IF) (("1" (SPLIT 1) (("1" (SIMPLIFY) (("1" (PROPAX) NIL))) ("2" (FLATTEN) (("2" (SPLIT -) (("1" (FLATTEN) (("1" (EXPAND "occ_buffer") (("1" (SPLIT -5) (("1" (ASSERT :FLUSH? T) NIL) ("2" (PROPAX) NIL))))))) ("2" (FLATTEN) (("2" (ASSERT :FLUSH? T) NIL))))))))))))))))))))))))))))))) ("2" (SKOSIMP*) (("2" (INST -3 "rb!1") (("2" (LEMMA "occAfterRetireIfBefore") (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (HIDE -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 5 -13) (("2" (SIMP) (("2" (EXPAND "bufferIndex") (("2" (LIFT-IF) (("2" (SPLIT -4) (("1" (EXPAND "occ_buffer") (("1" (SPLIT -3) (("1" (FLATTEN) (("1" (ASSERT :FLUSH? T) NIL))) ("2" (ASSERT) NIL))))) ("2" (FLATTEN) (("2" (ASSERT :FLUSH? T) NIL))))))))))))))))))))))))))))))))))) ("2" (HIDE -11 -12 -13 -14 -15 -16 -17 -18 -19 -10) (("2" (SIMP-SPLIT) (("1" (EXPAND "bufferIndex") (("1" (EXPAND "numOccBuffers") (("1" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT -) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))))))) ("2" (SIMP-SPLIT) (("2" (EXPAND "succ") (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))) ("2" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT -) NIL))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))))))))))) ("2" (REVEAL -2) (("2" (EXPAND "numOccLessTopProp") (("2" (SIMP-SPLIT) (("2" (EXPAND "bufferIndex") (("2" (EXPAND "numOccBuffers") (("2" (EXPAND "succ") (("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (EXPAND "numBuffsOccProp") (("1" (EXPAND "numOccBuffers") (("1" (SKOSIMP*) (("1" (INST -4 "rb!1") (("1" (LEMMA "oldestBretired") (("1" (EXPAND "bufferIndex") (("1" (SIMP) (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (CASE "rb!1 = oldestB!1") (("1" (SIMP) NIL) ("2" (REPLACE 1) (("2" (SIMP) (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))) ("2" (EXPAND "numBuffsOccProp") (("2" (EXPAND " numOccBuffers") (("2" (LIFT-IF) (("2" (SPLIT +) (("1" (FLATTEN) (("1" (EXPAND "occ_buffer") (("1" (SIMP) NIL))))) ("2" (FLATTEN) (("2" (REVEAL -2) (("2" (EXPAND "numOccLessTopProp") (("2" (REPLACE 1) (("2" (ASSERT :FLUSH? T) (("2" (SKOSIMP*) (("2" (INST -6 "rb!1") (("2" (LEMMA "oldestBretired") (("2" (INST?) (("2" (SIMPLIFY) (("2" (HIDE -9 -15 -18 -19 -10 -11 -12 6 -6) (("2" (ASSERT :FLUSH? T) (("2" (CASE "rb!1 = oldestB!1") (("1" (EXPAND "bufferIndex") (("1" (LIFT-IF) (("1" (SPLIT +) (("1" (FLATTEN) (("1" (HIDE -3 -4 -9) (("1" (EXPAND "occ_buffer") (("1" (REPLACE*) (("1" (ASSERT) NIL))))))))) ("2" (REPLACE*) (("2" (ASSERT :FLUSH? T) NIL))))))))) ("2" (REPLACE 1) (("2" (ASSERT :FLUSH? T) (("2" (EXPAND "succ") (("2" (ASSERT :FLUSH? T) (("2" (EXPAND "bufferIndex") (("2" (LIFT-IF) (("2" (SPLIT +) (("1" (FLATTEN) (("1" (ASSERT :FLUSH? T) NIL))) ("2" (FLATTEN) (("2" (ASSERT :FLUSH? T) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (EXPAND "numBuffsOccProp") (("2" (EXPAND "numOccBuffers") (("2" (REVEAL -2) (("2" (EXPAND "numOccLessTopProp") (("2" (HIDE -5 -11 -14 -15) (("2" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (INST -4 "rb!1") (("1" (EXPAND "bufferIndex") (("1" (LEMMA "oldestBretired") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) NIL))))))))))))))) ("2" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (SKOSIMP*) (("2" (INST -5 "rb!1") (("2" (LEMMA "oldestBretired") (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (CASE "rb!1 = oldestB!1") (("1" (REPLACE*) (("1" (EXPAND "bufferIndex") (("1" (HIDE -2 -7 -14 7 6 -13 -9) (("1" (ASSERT) NIL))))))) ("2" (REPLACE 1) (("2" (HIDE -9 -8 -13 -14 -12 5 6 7 8) (("2" (EXPAND "bufferIndex") (("2" (SIMP) (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))))))))))) ("2" (EXPAND "numBuffsOccProp") (("2" (EXPAND "numOccBuffers") (("2" (REVEAL -2) (("2" (EXPAND "numOccLessTopProp") (("2" (HIDE -10 -13 -14) (("2" (SIMP) (("2" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (INST -4 "rb!1") (("1" (HIDE 5) (("1" (EXPAND "bufferIndex") (("1" (SIMP) (("1" (CASE "rb!1 = oldestB!1") (("1" (REPLACE*) (("1" (SIMP) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))))))) ("2" (LEMMA "oldestBretired") (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "succ") (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))))))))))))))))) ("2" (SKOSIMP*) (("2" (INST -4 "rb!1") (("2" (EXPAND "bufferIndex") (("2" (SIMP) (("2" (CASE "rb!1 = oldestB!1") (("1" (REPLACE*) (("1" (EXPAND "occ_buffer") (("1" (SIMP) NIL))))) ("2" (LEMMA "oldestBretired") (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (REPLACE*) (("2" (CASE "NOT getBuffOp(p(res!1(FU!1)), nextB!1, oldestB!1, top!1) = getBuffOp(p(res!1(FU!1)), nextB!1, succ(oldestB!1), top!1)") (("1" (HIDE 2) (("1" (EXPAND "getBuffOp") (("1" (ASSERT) NIL))))) ("2" (REPLACE*) (("2" (CASE "NOT (FORALL (j:TWO): getOperandVal(RF!1, ROB!1, p(ss(ROB!1(p(res!1(FU!1))))(j)), p(res!1(FU!1)), src(prog((instIndexOfBuff(p(res!1(FU!1)), nextB!1, succ(oldestB!1), top!1))))(j), nextB!1, oldestB!1) = getOperandVal((LAMBDA (r: REG_ID[N, R]): IF r = t(ROB!1(oldestB!1)) THEN (# v := v (rt(ROB!1(oldestB!1))) #) ELSE RF!1(r) ENDIF), ROB!1, p(ss(ROB!1(p(res!1(FU!1))))(j)), p(res!1(FU!1)), src(prog(instIndexOfBuff(p(res!1(FU!1)), nextB!1, succ(oldestB!1), top!1)))(j), nextB!1, succ(oldestB!1)))") (("1" (HIDE 2) (("1" (SKOSIMP*) (("1" (EXPAND "getOperandVal" +) (("1" (EXPAND "ROBoperandRecentProp") (("1" (HIDE -7) (("1" (EXPAND "activeResProp") (("1" (INST?) (("1" (SIMP) (("1" (HIDE -10 3) (("1" (INST?) (("1" (SIMP) (("1" (INST?) (("1" (SIMP-SPLIT) (("1" (REPLACE -4 :DIR RL) (("1" (REPLACE -18 :DIR RL) (("1" (HIDE -3 -4 -18) (("1" (HIDE -16) (("1" (SIMP-SPLIT) (("1" (EXPAND "preceed") (("1" (LEMMA "oldestBretired") (("1" (INST?) (("1" (SIMP) (("1" (SIMP-SPLIT -5) (("1" (SIMP-SPLIT) (("1" (REPLACE*) (("1" (EXPAND "ROBoperandMatchProgProp") (("1" (EXPAND "getBuffSrc") (("1" (INST?) (("1" (SIMP) (("1" (REPLACE -12 :DIR RL) (("1" (REVEAL -6) (("1" (REPLACE*) (("1" (SIMP) NIL))))))))))))))))))) ("2" (REVEAL -5) (("2" (EXPAND " ROBoperandMatchProgProp") (("2" (INST?) (("2" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (EXPAND "succ") (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -11) NIL))))))) ("2" (LEMMA "oldestBretired") (("2" (INST -1 "p(res!1(FU!1))" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT -) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT -) NIL))))) ("2" (EXPAND "succ") (("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))) ("2" (REPLACE 1) (("2" (REPLACE -2 :DIR RL) (("2" (EXPAND "ROBoperandMatchProgProp") (("2" (EXPAND "getBuffSrc") (("2" (INST?) (("2" (SIMP) (("2" (REPLACE -11 :DIR RL) (("2" (HIDE -1 -2 -11) (("2" (SIMP-SPLIT 2) (("1" (LEMMA "occAfterRetireIfBefore") (("1" (EXPAND "preceed") (("1" (INST -1 "p(ss(ROB!1(p(res!1(FU!1))))(j!1))" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer") (("1" (SIMP) NIL))) ("2" (SIMP-SPLIT -) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT -5) (("2" (SIMP-SPLIT -) (("1" (REPLACE*) (("1" (EXPAND "occ_buffer") (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) NIL))))))) ("2" (SIMP-SPLIT -) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT -) NIL))))) ("2" (EXPAND "succ") (("2" (SIMP) NIL))))))))))))))))))))))) ("2" (SIMP-SPLIT 2) (("2" (REPLACE -1) (("2" (INST?) (("2" (EXPAND "weakPreceed") (("2" (EXPAND "preceed" -) (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (INST-CP -1 "1") (("2" (INST -1 "2") (("2" (REPLACE*) NIL))))))))))))))))) ("2" (REPLACE*) (("2" (EXPAND "getOperandVal") (("2" (PROPAX) NIL))))))))))))))))))))))) (|ROBnotBusyOpsNotBusy_issue| "" (EXPAND "ROBnotBusyOpsNotBusyProp") (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (SIMP-SPLIT) (("" (REPLACE 1) (("" (HIDE -3 -5 -6 -7 -8 -9) (("" (CASE "Sn!1 > 0") (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (INST?) (("1" (REPLACE 2) (("1" (LEMMA "NewOcc") (("1" (INST?) (("1" (SIMP) (("1" (INST?) (("1" (SIMP) (("1" (CASE "p(ss(ROB!1(rb!1))(j!1)) = nextB!1") (("1" (REPLACE*) (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (SIMP-SPLIT -10) (("1" (SIMP-SPLIT -) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT -) (("2" (SIMP-SPLIT -) NIL))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP-SPLIT -) (("2" (EXPAND "preceed") (("2" (LEMMA "NewOcc") (("2" (INST? :WHERE +) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP) (("2" (INST?) (("2" (SIMP) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))) (|ROBnotBusyOpsNotBusy_execute| "" (EXPAND "rho_execute") (("" (EXPAND " ROBnotBusyOpsNotBusyProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -3 -4 -5 -6 -7 -8 -9) (("" (INST?) (("" (SIMP) (("" (INST?) (("" (SIMP) NIL))))))))))))))))) (|ROBnotBusyOpsNotBusy_writeb| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4) (("" (REVEAL -1 -2 -3 -4) (("" (EXPAND " rho_writeb") (("" (EXPAND " ROBnotBusyOpsNotBusyProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT -) (("" (INST? -3) (("" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (INST?) (("1" (INST?) (("1" (SIMP) (("1" (EXPAND "activeResProp") (("1" (INST?) (("1" (SIMP) (("1" (EXPAND "activeResOpsNotBusyProp") (("1" (INST?) (("1" (SIMP) (("1" (INSTBEST) (("1" (SIMP) NIL))))))))))))))))))))))) ("2" (INST? -3) (("2" (SIMP) NIL))))))))))))))))))))))))))) (|ROBnotBusyOpsNotBusy_retire| "" (SKOSIMP*) (("" (HIDE -1 -2) (("" (REVEAL -1 -2) (("" (EXPAND "rho_retire") (("" (EXPAND "ROBnotBusyOpsNotBusyProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT -) (("1" (INST -4 "rb!1") (("1" (SIMP) (("1" (LEMMA "occAfterRetireIfBefore") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer") (("1" (SIMP) NIL))) ("2" (SIMP-SPLIT -) (("2" (INST?) (("2" (SIMP) (("2" (LEMMA "RetireMaintainsPreceed") (("2" (REVEAL -11) (("2" (INST?) (("2" (SIMP) (("2" (HIDE -1) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (INST -3 "rb!1") (("2" (SIMP) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))) (|getOperandBuffConst_issue| "" (SKOSIMP*) (("" (LEMMA "numBuffsOcc_issue") (("" (INST?) (("" (SIMP) (("" (LEMMA "numOccLessTop") (("" (INST -1 "nextB_p!1" "oldestB_p!1" "top_p!1") (("" (SIMP) (("" (HIDE -2 -5) (("" (HIDE -1 -2 -3) (("" (REVEAL -1 -2 -3) (("" (EXPAND "getOperandBuffConstProp") (("" (EXPAND " rho_issue") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -4 -6 -7 -8 -9 -10) (("" (CASE " Sn!1 > 0 ") (("1" (SIMP) (("1" (SPLIT 1) (("1" (SIMP) (("1" (EXPAND "getOperandVal") (("1" (SIMP-SPLIT) (("1" (EXPAND "dispatch") (("1" (SIMP-SPLIT) (("1" (LEMMA "nextBfree") (("1" (EXPAND "preceed") (("1" (SIMP) (("1" (INST?) (("1" (REPLACE*) (("1" (INST?) NIL))))))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (REPLACE*) (("1" (EXPAND "preceed") (("1" (LEMMA "nextBfree") (("1" (INST?) (("1" (SIMP) NIL))))))))))) ("2" (LEMMA "ROBremainsOcc") (("2" (EXPAND "preceed") (("2" (INST? :COPY? T) (("2" (SIMP) (("2" (INST? :WHERE +) (("2" (SIMP) NIL))))))))))))))))) ("2" (SIMP-SPLIT 2) (("1" (REPLACE*) (("1" (LEMMA "nextBfree") (("1" (INST?) NIL))))) ("2" (SIMP-SPLIT) (("2" (EXPAND "preceed") (("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP) (("2" (SIMP-SPLIT -5) (("2" (EXPAND "dispatch") (("2" (CASE "NOT occ_buffer(p(ss(ROB!1(tb!1))(j!1)), nextB!1, oldestB!1)") (("1" (REPLACE 1) (("1" (SIMP) (("1" (REPLACE*) (("1" (EXPAND "occ_buffer") (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) NIL))))))))))))) ("2" (SIMP) NIL))))))))))))))))))))))))) ("2" (EXPAND "getBuffOp") (("2" (SIMP) (("2" (CASE "NOT instIndexOfBuff(tb!1, nextB!1, oldestB!1, top!1) = instIndexOfBuff(tb!1, succ(nextB!1), oldestB!1, 1 + top!1)") (("1" (HIDE 2) (("1" (EXPAND "instIndexOfBuff") (("1" (EXPAND "numOccLessTopProp") (("1" (EXPAND "dispatch") (("1" (EXPAND "bufferIndex") (("1" (EXPAND "numOccBuffers") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT -) NIL))) ("2" (EXPAND "occ_buffer") (("2" (ASSERT :FLUSH? T) (("2" (SIMP-SPLIT -10) (("2" (HIDE -4 -5 -7) (("2" (ASSERT :FLUSH? T) (("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))))))))))))) ("2" (ASSERT :FLUSH? T) (("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT) (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (ASSERT :FLUSH? T) (("1" (EXPAND "succ") (("1" (ASSERT :FLUSH? T) NIL))))))))) ("2" (EXPAND "succ") (("2" (PROPAX) NIL))))))))))))))))))))))))))))) ("2" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (EXPAND "occ_buffer") (("2" (SIMP) (("2" (HIDE -1 -2) (("2" (SIMP-SPLIT -) (("1" (EXPAND "getOperandVal") (("1" (PROPAX) NIL))) ("2" (EXPAND "getOperandVal") (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))) (|getOperandBuffConst_execute| "" (SKOSIMP*) (("" (EXPAND "getOperandBuffConstProp") (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP-SPLIT) NIL))))))))))) (|getOperandBuffConst_writeb| "" (SKOSIMP*) (("" (HIDE -1 -2 -3) (("" (REVEAL -1 -2 -3) (("" (EXPAND "getOperandBuffConstProp") (("" (EXPAND " rho_writeb") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SPLIT 1) (("1" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("1" (SIMP) (("1" (EXPAND "getOperandVal") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (INSTBEST) (("1" (EXPAND "activeResProp") (("1" (INSTBEST) (("1" (SIMP) NIL))))))))))))) ("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) (("2" (SKOSIMP*) (("2" (INSTBEST) (("2" (EXPAND "activeResProp") (("2" (INSTBEST) (("2" (SIMP) NIL))))))))))))))))))))) ("2" (SIMP) NIL))))))))))))))))) (|getOperandBuffConst_retire| "" (SKOSIMP*) (("" (LEMMA "numBuffsOcc_retire") (("" (INST?) (("" (LEMMA "numOccLessTop") (("" (INST -1 "nextB_p!1" "oldestB_p!1" "top_p!1") (("" (SIMP) (("" (HIDE -2 -6) (("" (HIDE -1) (("" (HIDE -1 -2 -3) (("" (REVEAL -1 -2 -3 -4) (("" (EXPAND "rho_retire") (("" (EXPAND "getOperandBuffConstProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT -) (("1" (SIMP-SPLIT) (("1" (EXPAND "getOperandVal") (("1" (SIMP-SPLIT) (("1" (HIDE -1) (("1" (REVEAL -9 -2) (("1" (LEMMA "RetireMaintainsPreceed ") (("1" (INST?) (("1" (SIMP) (("1" (HIDE -2 -3) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (INST?) (("1" (SIMP) NIL))))))) ("2" (SIMP-SPLIT) (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "ROBoperandRecentProp") (("2" (INST?) (("2" (SIMP) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT -) NIL))))))) ("2" (EXPAND "getBuffOp") (("2" (EXPAND "instIndexOfBuff") (("2" (EXPAND "numBuffsOccProp") (("2" (REVEAL -8) (("2" (SIMP) (("2" (SIMP-SPLIT) (("1" (EXPAND "bufferIndex") (("1" (EXPAND " numOccBuffers") (("1" (INST?) (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (ASSERT :FLUSH? T) (("1" (EXPAND "succ") (("1" (LEMMA "nextBfree") (("1" (INST?) (("1" (INST -1 "oldestB!1") (("1" (SIMP) NIL))))))))))))) ("2" (SIMP-SPLIT -) NIL))) ("2" (SIMP-SPLIT -3) (("2" (SIMP-SPLIT -) NIL))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (ASSERT :FLUSH? T) (("1" (EXPAND "succ") (("1" (SIMP) (("1" (EXPAND "numOccLessTopProp") (("1" (HIDE -4) (("1" (SIMP-SPLIT -) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))))))))))))))) ("2" (SIMP-SPLIT -) (("2" (ASSERT :FLUSH? T) (("2" (EXPAND "succ") (("2" (LEMMA "nextBfree") (("2" (INST?) (("2" (INST -1 "oldestB!1") (("2" (SIMP) NIL))))))))))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))))) ("2" (SIMP-SPLIT -2) NIL))))))))))))))) ("2" (EXPAND "numOccLessTopProp") (("2" (CASE "NOT top!1 > numOccBuffers(nextB!1, succ(oldestB!1))") (("1" (HIDE 2) (("1" (EXPAND "numOccBuffers") (("1" (REVEAL -2 -3) (("1" (REPLACE*) (("1" (SIMP-SPLIT) NIL))))))))) ("2" (SIMP) (("2" (SKOSIMP*) (("2" (LEMMA "occAfterRetireIfBefore") (("2" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("2" (SIMP) (("2" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer") (("1" (SIMP) NIL))) ("2" (SIMP-SPLIT -) (("2" (EXPAND " numOccBuffers") (("2" (EXPAND " bufferIndex") (("2" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT -7) (("1" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))) ("2" (SIMP-SPLIT -) (("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT -) (("1" (ASSERT :FLUSH? T) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))))))) ("2" (HIDE -4) (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))))))) ("2" (SIMP-SPLIT 2) (("2" (HIDE -4) (("2" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))) ("2" (EXPAND "getOperandVal") (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))) (|completedBuffCorrectVal_issue| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16) (("" (REVEAL -1 -2 -3 -4) (("" (EXPAND "completedBuffCorrectValProp") (("" (EXPAND "getOperandBuffConstProp") (("" (SKOSIMP*) (("" (INST -2 "rb!1") (("" (INST? -3 :COPY? T) (("" (INST -3 "rb!1" "2") (("" (EXPAND "rho_issue") (("" (SKOSIMP*) (("" (SIMP-SPLIT -2) (("1" (REPLACE -2) (("1" (REPLACE -4) (("1" (REPLACE -5) (("1" (EXPAND "dispatch") (("1" (HIDE -10) (("1" (SIMP) (("1" (REPLACE -7) (("1" (LEMMA "NewOcc") (("1" (INST?) (("1" (SIMP) (("1" (CASE "occ_buffer(rb!1, nextB!1, oldestB!1)") (("1" (SIMP) (("1" (REPLACE*) (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (HIDE -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -12 -14) (("1" (CASE "NOT (forall (j: TWO): getOperandVal(RF!1, (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF rb = nextB!1 THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): (# p := IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF, r := src(prog(top!1))(j) #)) #) ELSE ROB!1(rb) ENDIF), p(ss(ROB!1(rb!1))(j)), rb!1, getBuffSrc(j, rb!1, succ(nextB!1), oldestB!1, 1 + top!1), succ(nextB!1), oldestB!1) = getOperandVal(RF!1, ROB!1, p(ss(ROB!1(rb!1))(j)), rb!1, getBuffSrc(j, rb!1, nextB!1, oldestB!1, top!1), nextB!1, oldestB!1))") (("1" (HIDE 6) (("1" (SKOSIMP*) (("1" (CASE "getBuffSrc(j!1, rb!1, succ(nextB!1), oldestB!1, 1 + top!1) = getBuffSrc(j!1, rb!1, nextB!1, oldestB!1, top!1)") (("1" (REPLACE*) (("1" (EXPAND "getOperandVal") (("1" (HIDE -2) (("1" (SIMP-SPLIT) (("1" (LEMMA "nextBfree") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "preceed") (("1" (REPLACE*) (("1" (INST?) (("1" (SIMP) NIL))))))))) ("2" (SIMP-SPLIT) (("1" (EXPAND "preceed") (("1" (REPLACE*) (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (EXPAND "occ_buffer") (("1" (EXPAND "succ") (("1" (SIMP-SPLIT -9) (("1" (SIMP-SPLIT -8) NIL))))))) ("2" (EXPAND "occ_buffer") (("2" (EXPAND "succ") (("2" (HIDE 4) (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT -9) (("2" (SIMP-SPLIT) NIL))))))))))))))))))))) ("2" (EXPAND "preceed") (("2" (SIMP) (("2" (SIMP-SPLIT -) (("2" (LEMMA "NewOcc") (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))) ("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) (("2" (LEMMA "NewOcc") (("2" (EXPAND "preceed") (("2" (SIMP) (("2" (LEMMA "ROBremainsOcc") (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))) ("2" (HIDE -1 2) (("2" (REVEAL -18 -22) (("2" (LEMMA "ROBoperandMatchProg_issue") (("2" (INST?) (("2" (SIMP) (("2" (HIDE -2) (("2" (EXPAND "ROBoperandMatchProgProp") (("2" (INST -1 "rb!1" "j!1") (("2" (INST?) (("2" (SIMP) (("2" (REVEAL -8 -9 -10 -14) (("2" (REPLACE*) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (INST-CP -1 "1") (("2" (INST -1 "2") (("2" (SIMP) NIL))))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP) (("2" (HIDE -10 -11 -12) (("2" (REPLACE*) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (REPLACE*) (("2" (SIMP) (("2" (EXPAND "getOperandVal") (("2" (PROPAX) NIL))))))))))))))))))))))))))))))) (|completedBuffCorrectVal_execute| "" (SKOSIMP*) (("" (HIDE -1 -2 -3) (("" (REVEAL -1 -2 -3) (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (REPLACE*) NIL))))))))))) (|completedBuffCorrectVal_writeb| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5 -6) (("" (REVEAL -1 -2 -3 -4 -5 -6) (("" (EXPAND "rho_writeb") (("" (EXPAND "completedBuffCorrectValProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (SIMP-SPLIT) (("1" (EXPAND "activeResCorrectValProp") (("1" (CASE "(chooseFU(rb!1, res!1) = 0)") (("1" (HIDE 1) (("1" (HIDE -6 -7 -10) (("1" (EXPAND "chooseFU") (("1" (SIMP-SPLIT -) (("1" (INST?) (("1" (SIMP) (("1" (INST?) (("1" (SIMP) NIL))))))))))))))) ("2" (INST? -9) (("2" (CASE "NOT a(res!1(chooseFU(rb!1, res!1)))") (("1" (HIDE 3) (("1" (EXPAND "chooseFU" 1) (("1" (SIMP-SPLIT) (("1" (INST -4 "FU!1") (("1" (INST 1 "FU!1") (("1" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (REPLACE*) (("2" (CASE "NOT p(res!1(chooseFU(rb!1, res!1))) = rb!1") (("1" (HIDE 3) (("1" (EXPAND "chooseFU" 1) (("1" (SIMP-SPLIT) (("1" (INSTBEST 1) (("1" (SIMP) (("1" (INST? -5) (("1" (SIMP) NIL))))))))))))) ("2" (REPLACE*) (("2" (CASE "(forall (j:TWO):getOperandVal(RF!1, (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF (EXISTS (FU: FU_ID[N, R, U, Z, B]): writeback!1(FU) AND p(res!1(FU)) = rb) THEN (# rt := (# b := FALSE, v := v (res!1(chooseFU(rb, res!1))) #), t := t(ROB!1(rb)), ss := ss(ROB!1(rb)) #) ELSE ROB!1(rb) ENDIF), p(ss(ROB!1(rb!1))(j)), rb!1, getBuffSrc(j, rb!1, nextB!1, oldestB!1, top!1), nextB!1, oldestB!1) = getOperandVal(RF!1, ROB!1, p(ss(ROB!1(rb!1))(j)), rb!1, getBuffSrc(j, rb!1, nextB!1, oldestB!1, top!1), nextB!1, oldestB!1))") (("1" (HIDE -8 -9 -13) (("1" (INST? :COPY? T) (("1" (REPLACE*) (("1" (INST? :WHERE +) (("1" (SIMP) NIL))))))))) ("2" (HIDE 3) (("2" (SKOSIMP*) (("2" (HIDE -13) (("2" (EXPAND " getOperandBuffConstProp") (("2" (INST? -9) (("2" (SIMP) (("2" (EXPAND "ROBoperandMatchProgProp") (("2" (INST? -10) (("2" (SIMP) (("2" (HIDE -8) (("2" (EXPAND "activeResOpsNotBusyProp") (("2" (INST? -13) (("2" (SIMP) (("2" (REPLACE*) (("2" (INST?) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))))))) ("3" (HIDE 3) (("3" (HIDE -12 -7 -8) (("3" (SKOSIMP*) (("3" (EXPAND "chooseFU" -3) (("3" (SIMP-SPLIT -) (("3" (INST?) (("3" (INST?) (("3" (SIMP) NIL))))))))))))))))))))))))) ("3" (PROPAX) NIL))))))))))))) ("2" (REPLACE 1) (("2" (INST? -2) (("2" (EXPAND "getOperandBuffConstProp") (("2" (SIMP) (("2" (REPLACE*) (("2" (HIDE -2) (("2" (CASE "NOT (forall (j:TWO):getOperandVal(RF!1, (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF (EXISTS (FU: FU_ID[N, R, U, Z, B]): writeback!1(FU) AND p(res!1(FU)) = rb) THEN (# rt := (# b := FALSE, v := v (res!1(chooseFU(rb, res!1))) #), t := t(ROB!1(rb)), ss := ss(ROB!1(rb)) #) ELSE ROB!1(rb) ENDIF), p(ss(ROB!1(rb!1))(j)), rb!1, getBuffSrc(j, rb!1, nextB!1, oldestB!1, top!1), nextB!1, oldestB!1) = getOperandVal(RF!1, ROB!1, p(ss(ROB!1(rb!1))(j)), rb!1, getBuffSrc(j, rb!1, nextB!1, oldestB!1, top!1), nextB!1, oldestB!1))") (("1" (HIDE 4) (("1" (SKOSIMP*) (("1" (INST -2 "rb!1" "j!1") (("1" (SIMP) (("1" (EXPAND "ROBoperandMatchProgProp") (("1" (INST? -3) (("1" (SIMP) (("1" (HIDE 1) (("1" (EXPAND "ROBnotBusyOpsNotBusyProp") (("1" (INST? -8) (("1" (SIMP) (("1" (INST? -8) (("1" (SIMP) NIL))))))))))))))))))))))))) ("2" (HIDE -3) (("2" (INST? :COPY? T) (("2" (REPLACE*) (("2" (INST? :WHERE +) (("2" (SIMP) NIL))))))))) ("3" (SKOSIMP*) (("3" (HIDE -5 3) (("3" (INST? -) (("3" (EXPAND "chooseFU") (("3" (SIMP) (("3" (SIMP-SPLIT -) (("3" (INST?) (("3" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))) (|completedBuffCorrectVal_retire| "" (SKOSIMP*) (("" (HIDE -1 -2 -3 -4 -5) (("" (REVEAL -1 -2 -3 -4 -5) (("" (EXPAND " completedBuffCorrectValProp") (("" (EXPAND "rho_retire") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -1 -2 -5 -6 -7 -8 -9) (("" (SIMP-SPLIT -) (("1" (HIDE -1 -2) (("1" (LEMMA "occAfterRetireIfBefore") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (CASE "nextB!1 = oldestB!1") (("1" (EXPAND "occ_buffer") (("1" (SIMP) NIL))) ("2" (SIMP-SPLIT -) (("2" (INST -3 "rb!1") (("2" (SIMP) (("2" (LEMMA "ROBoperandMatchProg_retire") (("2" (REVEAL -12) (("2" (INST?) (("2" (SIMP) (("2" (HIDE -1) (("2" (REVEAL -5 -6 -7 -11) (("2" (REPLACE*) (("2" (HIDE -1 -2 -3 -4 -8) (("2" (EXPAND " getOperandBuffConstProp") (("2" (CASE "(forall (j:TWO): getOperandVal((LAMBDA (r: REG_ID[N, R]): IF r = t(ROB!1(oldestB!1)) THEN (# v := v (rt(ROB!1(oldestB!1))) #) ELSE RF!1(r) ENDIF), ROB!1, p(ss(ROB!1(rb!1))(j)), rb!1, getBuffSrc(j, rb!1, nextB!1, succ(oldestB!1), top!1), nextB!1, succ(oldestB!1)) = getOperandVal(RF!1, ROB!1, p(ss(ROB!1(rb!1))(j)), rb!1, getBuffSrc(j, rb!1, nextB!1, oldestB!1, top!1), nextB!1, oldestB!1))") (("1" (INST? :COPY? T) (("1" (INST -1 "2") (("1" (REPLACE*) (("1" (INST?) (("1" (SIMP) NIL))))))))) ("2" (HIDE 5) (("2" (SKOSIMP*) (("2" (INST?) (("2" (EXPAND "ROBoperandMatchProgProp") (("2" (INST?) (("2" (INST?) (("2" (SIMP) (("2" (SIMP) (("2" (REPLACE -1 :DIR RL) (("2" (REPLACE -5 :DIR RL) (("2" (HIDE -1 -4 -5) (("2" (EXPAND "getOperandVal") (("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (LEMMA "RetireMaintainsPreceed") (("1" (REVEAL -20) (("1" (INST?) (("1" (SIMP) (("1" (HIDE -1) (("1" (REVEAL -13) (("1" (INST?) (("1" (REPLACE*) (("1" (SIMP) NIL))))))))))))))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (REPLACE*) (("1" (EXPAND "ROBoperandRecentProp") (("1" (INST?) (("1" (SIMP) (("1" (INST?) (("1" (SIMP) (("1" (INST -6 "oldestB!1") (("1" (SIMP) (("1" (EXPAND "weakPreceed") (("1" (SIMP-SPLIT -) (("1" (REPLACE*) (("1" (EXPAND "occ_buffer") (("1" (EXPAND "succ") (("1" (SIMP) (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) NIL))))))))))) ("2" (EXPAND "preceed") (("2" (PROPAX) NIL))))))))))))))))))))))))) ("2" (LEMMA "RetireMaintainsPreceed") (("2" (REVEAL -12 -20) (("2" (INST?) (("2" (SIMP) (("2" (REPLACE*) (("2" (HIDE -1 -2) (("2" (SIMP-SPLIT) (("1" (INST?) (("1" (SIMP) NIL))) ("2" (SIMP-SPLIT 2) (("2" (HIDE 6) (("2" (REPLACE*) (("2" (EXPAND " ROBoperandRecentProp") (("2" (HIDE -2) (("2" (INST?) (("2" (SIMP) (("2" (INST?) (("2" (REPLACE 2) (("2" (INST -5 "oldestB!1") (("2" (SIMP) (("2" (EXPAND "weakPreceed") (("2" (SIMP-SPLIT -) (("1" (EXPAND "occ_buffer") (("1" (EXPAND "succ") (("1" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) NIL))))))) ("2" (EXPAND "preceed") (("2" (PROPAX) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ("2" (HIDE -1 -2) (("2" (INST?) (("2" (SIMP) (("2" (EXPAND "getOperandVal") (("2" (PROPAX) NIL))))))))))))))))))))))))))))) (|ROBtargetMatchProg_issue| "" (SKOSIMP*) (("" (HIDE -1 -2 -3) (("" (REVEAL -1 -2 -3) (("" (EXPAND " rho_issue") (("" (EXPAND "ROBtargetMatchProgProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (SIMP) (("" (HIDE -3 -5 -6 -7 -8 -9) (("" (EXPAND "getBuffTarget") (("" (SIMP-SPLIT) (("1" (EXPAND "dispatch") (("1" (HIDE -6) (("1" (EXPAND "instIndexOfBuff") (("1" (REVEAL -8) (("1" (LEMMA "numBuffsOcc_issue") (("1" (INST?) (("1" (SIMP) (("1" (HIDE -2) (("1" (EXPAND "bufferIndex") (("1" (EXPAND "numOccBuffers") (("1" (REPLACE*) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) NIL))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))) ("2" (INST?) (("2" (CASE "Sn!1 > 0") (("1" (EXPAND "dispatch") (("1" (SIMP) (("1" (LEMMA "NewOcc") (("1" (INST?) (("1" (SIMP) (("1" (REPLACE*) (("1" (HIDE -5) (("1" (EXPAND "instIndexOfBuff") (("1" (REVEAL -10) (("1" (LEMMA "numBuffsOcc_issue") (("1" (INST?) (("1" (SIMP) (("1" (HIDE -2) (("1" (EXPAND "bufferIndex") (("1" (EXPAND "numOccBuffers") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (SIMP-SPLIT) NIL))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))) ("2" (EXPAND "succ") (("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP) NIL))))))))))))))))))))))))))))) (|ROBtargetMatchProg_execute| "" (SKOSIMP*) (("" (EXPAND "rho_execute") (("" (SKOSIMP*) (("" (SIMP) NIL))))))) (|ROBtargetMatchProg_writeb| "" (EXPAND "rho_writeb") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -1 -2 -3 -5 -6 -7 -8 -9) (("" (EXPAND " ROBtargetMatchProgProp") (("" (SKOSIMP*) (("" (INST? -2) (("" (SIMP) NIL))))))))))))))) (|ROBtargetMatchProg_retire| "" (SKOSIMP*) (("" (LEMMA "numBuffsOcc_retire") (("" (INST?) (("" (SIMP) (("" (HIDE -1 -2 -3 -4) (("" (REVEAL -1 -2 -3 -4) (("" (EXPAND " rho_retire") (("" (EXPAND " ROBtargetMatchProgProp") (("" (SKOSIMP*) (("" (REPLACE*) (("" (HIDE -2 -3 -6 -7 -8 -9 -10) (("" (SIMP-SPLIT) (("1" (LEMMA "occAfterRetireIfBefore") (("1" (INST -1 "rb!1" "nextB!1" "oldestB!1") (("1" (SIMP) (("1" (CASE " nextB!1 /= oldestB!1") (("1" (SIMP) (("1" (INST?) (("1" (SIMP) (("1" (REPLACE*) (("1" (EXPAND " getBuffTarget" +) (("1" (EXPAND "instIndexOfBuff") (("1" (EXPAND "bufferIndex") (("1" (EXPAND "numOccBuffers") (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (PROPAX) NIL))) ("2" (SIMP-SPLIT) (("2" (EXPAND "succ") (("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT -) NIL))))))))) ("2" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "succ") (("1" (EXPAND "occ_buffer") (("1" (SIMP-SPLIT -) NIL))))))) ("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))) ("2" (EXPAND "occ_buffer") (("2" (SIMP-SPLIT) (("2" (EXPAND "succ") (("2" (SIMP-SPLIT) NIL))))))))))))))))))))))))) ("2" (SIMP) (("2" (EXPAND "occ_buffer") (("2" (PROPAX) NIL))))))))))))) ("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))) (|InOrderProps_Init| "" (EXPAND "Theta") (("" (EXPAND "InOrderProps") (("" (SKOSIMP*) (("" (SPLIT 1) (("1" (GRIND :IF-MATCH NIL) (("1" (INSTBEST) (("1" (SIMP) (("1" (INSTBEST) (("1" (SIMP) NIL))))) ("2" (SIMP) (("2" (INSTBEST) (("2" (SIMP) NIL))))))))) ("2" (GRIND :IF-MATCH NIL) NIL) ("3" (GRIND :IF-MATCH NIL) (("3" (INSTBEST) (("1" (SIMP) (("1" (INSTBEST) (("1" (SIMP) NIL))))) ("2" (SIMP) (("2" (INSTBEST) (("2" (SIMP) NIL))))))))) ("4" (GRIND :IF-MATCH NIL) NIL) ("5" (GRIND :IF-MATCH NIL) (("5" (INST? -12) (("5" (SIMP) (("5" (SIMP) NIL))))))) ("6" (GRIND :IF-MATCH NIL) (("6" (INSTBEST) (("6" (SIMP) (("6" (INSTBEST) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))) ("7" (GRIND :IF-MATCH NIL) (("7" (INST? -9) (("7" (SIMP) (("7" (SIMP) NIL))))))) ("8" (GRIND :IF-MATCH NIL) (("8" (INST? -11) (("8" (SIMP) (("8" (SIMP) NIL))))))) ("9" (GRIND :IF-MATCH NIL) NIL) ("10" (GRIND :IF-MATCH NIL) (("1" (INST? -12) (("1" (SIMP) NIL))) ("2" (INST? -12) (("2" (SIMP) NIL))) ("3" (INST? -12) (("3" (SIMP) NIL))) ("4" (INST? -12) (("4" (SIMP) NIL))))) ("11" (GRIND :IF-MATCH NIL) NIL) ("12" (GRIND :IF-MATCH NIL) (("1" (INST? -10) (("1" (SIMP) (("1" (SIMP) NIL))))) ("2" (INST? -9) (("2" (SIMP) (("2" (SIMP) NIL))))) ("3" (INST? -9) (("3" (SIMP) (("3" (SIMP) NIL))))))) ("13" (GRIND :IF-MATCH NIL) (("1" (INST? -10) (("1" (SIMP) (("1" (SIMP) NIL))))) ("2" (INST? -9) (("2" (SIMP) (("2" (SIMP) NIL))))))) ("14" (GRIND :IF-MATCH NIL) NIL) ("15" (GRIND :IF-MATCH NIL) (("1" (INSTBEST) (("1" (SIMP) (("1" (INSTBEST) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))) ("2" (INSTBEST) (("2" (SIMP) (("2" (INSTBEST) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))) ("16" (GRIND :IF-MATCH NIL) NIL) ("17" (GRIND :IF-MATCH NIL) NIL) ("18" (GRIND :IF-MATCH NIL) NIL) ("19" (GRIND :IF-MATCH NIL) NIL) ("20" (GRIND :IF-MATCH NIL) (("1" (INST? -11) (("1" (SIMP) NIL))) ("2" (INST? -11) (("2" (SIMP) NIL))))) ("21" (GRIND :IF-MATCH NIL) (("21" (INSTBEST) (("21" (SIMP) (("21" (INSTBEST) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))) ("22" (GRIND :IF-MATCH NIL) NIL) ("23" (GRIND :IF-MATCH NIL) NIL))))))))) (|InOrderProps_issue| "" (EXPAND "InOrderProps") (("" (SKOSIMP*) (("" (AUTO-REWRITE-THEORY "InOrderP2") (("" (SIMP) (("" (LEMMA "busyRAT_issue") (("" (INST?) (("" (SIMP) (("" (LEMMA "OccBuffBusyRAT_issue") (("" (INST?) (("" (SIMP) (("" (LEMMA "RATpointsNewestBuffProp_issue") (("" (INST?) (("" (SIMP) (("" (LEMMA "BuffsPreceedAlias") (("" (SIMP) (("" (INST? :WHERE +) (("" (SIMP) (("" (LEMMA "RSprodUnique_issue") (("" (INST?) (("" (SIMP) (("" (LEMMA " ActiveRes_issue") (("" (INST?) (("" (SIMP) (("" (LEMMA "occRS_issue") (("" (LEMMA "busyOperandsNearest_issue") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA " writtenBOperandsNearest_issue") (("" (LEMMA " RetiredOperandsMatchRF_issue") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "numBuffsOcc_issue") (("" (LEMMA "RSoperandsMatchProg_issue") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA " RS_ROB_ProducerMatch_issue") (("" (LEMMA "busyROBoccRSorActiveRes_issue") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "activeResCorrectVal_issue") (("" (LEMMA "completedBuffCorrectVal_issue") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "ROBoperandMatchProg_issue") (("" (LEMMA "ROBtargetMatchProg_issue") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "ROBoperandRecentProp_issue") (("" (LEMMA "RSopsMatchGetOperandVal_issue") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "activeResOpsNotBusy_issue") (("" (INST?) (("" (SIMP) (("" (LEMMA "getOperandBuffConst_issue") (("" (LEMMA "ROBnotBusyOpsNotBusy_issue") (("" (INST?) (("" (INST?) (("" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (|InOrderProps_execute| "" (EXPAND "InOrderProps") (("" (SKOSIMP*) (("" (AUTO-REWRITE-THEORY "InOrderP2") (("" (SIMP) (("" (LEMMA "busyRAT_execute") (("" (INST?) (("" (SIMP) (("" (LEMMA "OccBuffBusyRAT_execute") (("" (INST?) (("" (SIMP) (("" (LEMMA "RATpointsNewestBuffProp_execute") (("" (INST?) (("" (SIMP) (("" (LEMMA "BuffsPreceedAlias") (("" (SIMP) (("" (INST? :WHERE +) (("" (SIMP) (("" (LEMMA "RSprodUnique_execute") (("" (INST?) (("" (SIMP) (("" (LEMMA " ActiveRes_execute") (("" (INST?) (("" (SIMP) (("" (LEMMA "occRS_execute") (("" (LEMMA "busyOperandsNearest_execute") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA " writtenBOperandsNearest_execute") (("" (LEMMA " RetiredOperandsMatchRF_execute") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "numBuffsOcc_execute") (("" (LEMMA "RSoperandsMatchProg_execute") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA " RS_ROB_ProducerMatch_execute") (("" (LEMMA "busyROBoccRSorActiveRes_execute") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "activeResCorrectVal_execute") (("" (LEMMA "completedBuffCorrectVal_execute") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "ROBoperandMatchProg_execute") (("" (LEMMA "ROBtargetMatchProg_execute") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "ROBoperandRecentProp_execute") (("" (LEMMA "RSopsMatchGetOperandVal_execute") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "activeResOpsNotBusy_execute") (("" (INST?) (("" (SIMP) (("" (LEMMA "getOperandBuffConst_execute") (("" (LEMMA "ROBnotBusyOpsNotBusy_execute") (("" (INST?) (("" (INST?) (("" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (|InOrderProps_writeb| "" (EXPAND "InOrderProps") (("" (SKOSIMP*) (("" (AUTO-REWRITE-THEORY "InOrderP2") (("" (SIMP) (("" (LEMMA "busyRAT_writeb") (("" (INST?) (("" (SIMP) (("" (LEMMA "OccBuffBusyRAT_writeb") (("" (INST?) (("" (SIMP) (("" (LEMMA "RATpointsNewestBuffProp_writeb") (("" (INST?) (("" (SIMP) (("" (LEMMA "BuffsPreceedAlias") (("" (SIMP) (("" (INST? :WHERE +) (("" (SIMP) (("" (LEMMA "RSprodUnique_writeb") (("" (INST?) (("" (SIMP) (("" (LEMMA " ActiveRes_writeb") (("" (INST?) (("" (SIMP) (("" (LEMMA "occRS_writeb") (("" (LEMMA "busyOperandsNearest_writeb") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA " writtenBOperandsNearest_writeb") (("" (LEMMA " RetiredOperandsMatchRF_writeb") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "numBuffsOcc_writeb") (("" (LEMMA "RSoperandsMatchProg_writeb") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA " RS_ROB_ProducerMatch_writeb") (("" (LEMMA "busyROBoccRSorActiveRes_writeb") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "activeResCorrectVal_writeb") (("" (LEMMA "completedBuffCorrectVal_writeb") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "ROBoperandMatchProg_writeb") (("" (LEMMA "ROBtargetMatchProg_writeb") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "ROBoperandRecentProp_writeb") (("" (LEMMA "RSopsMatchGetOperandVal_writeb") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "activeResOpsNotBusy_writeb") (("" (INST?) (("" (SIMP) (("" (LEMMA "getOperandBuffConst_writeb") (("" (LEMMA "ROBnotBusyOpsNotBusy_writeb") (("" (INST?) (("" (INST?) (("" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (|InOrderProps_retire| "" (EXPAND "InOrderProps") (("" (SKOSIMP*) (("" (AUTO-REWRITE-THEORY "InOrderP2") (("" (SIMP) (("" (LEMMA "busyRAT_retire") (("" (INST?) (("" (SIMP) (("" (LEMMA "OccBuffBusyRAT_retire") (("" (INST?) (("" (SIMP) (("" (LEMMA "RATpointsNewestBuffProp_retire") (("" (INST?) (("" (SIMP) (("" (LEMMA "BuffsPreceedAlias") (("" (SIMP) (("" (INST? :WHERE +) (("" (SIMP) (("" (LEMMA "RSprodUnique_retire") (("" (INST?) (("" (SIMP) (("" (LEMMA " ActiveRes_retire") (("" (INST?) (("" (SIMP) (("" (LEMMA "occRS_retire") (("" (LEMMA "busyOperandsNearest_retire") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA " writtenBOperandsNearest_retire") (("" (LEMMA " RetiredOperandsMatchRF_retire") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "numBuffsOcc_retire") (("" (LEMMA "RSoperandsMatchProg_retire") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA " RS_ROB_ProducerMatch_retire") (("" (LEMMA "busyROBoccRSorActiveRes_retire") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "activeResCorrectVal_retire") (("" (LEMMA "completedBuffCorrectVal_retire") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "ROBoperandMatchProg_retire") (("" (LEMMA "ROBtargetMatchProg_retire") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "ROBoperandRecentProp_retire") (("" (LEMMA "RSopsMatchGetOperandVal_retire") (("" (INST?) (("" (INST?) (("" (SIMP) (("" (LEMMA "activeResOpsNotBusy_retire") (("" (INST?) (("" (SIMP) (("" (LEMMA "getOperandBuffConst_retire") (("" (LEMMA "ROBnotBusyOpsNotBusy_retire") (("" (INST?) (("" (INST?) (("" (SIMP) NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) $$$SplitEqual.pvs SplitEqual[N, R, U, Z: posnat, (IMPORTING more_nat_types[1]) B: greater_one_nat]: THEORY BEGIN IMPORTING InOrderP2[N, R, U, Z, B] RF, RF_p: VAR [REG_ID -> RF_TYPE] RAT, RAT_p, RAT_I: VAR [REG_ID -> RAT_TYPE] ROB, ROB_p, ROB_I: VAR [ROB_ID -> ROB_TYPE] nextB, nextB_p: VAR ROB_ID oldestB, oldestB_p: VAR ROB_ID RS, RS_I, RS_E, RS_W, RS_p: VAR [SLOT_ID -> RS_TYPE] res, res_E, res_p: VAR [FU_ID -> result_TYPE] top, top_p: VAR upto_nz[N + 1] FU: VAR FU_ID S: VAR SLOT_ID r: VAR REG_ID rb, rb2: VAR ROB_ID chosenFUunique: LEMMA (FORALL res, FU: a(res(FU)) AND activeResProp(res, RS, ROB, nextB, oldestB) IMPLIES chooseFU(p(res(FU)), res) = FU) chosenFUnonzero: LEMMA (FORALL res, FU: a(res(FU)) AND p(res(FU)) > 0 IMPLIES chooseFU(p(res(FU)), res) > 0 AND a(res(chooseFU(p(res(FU)), res)))) neededInv(top, res, RF, RS, RAT, ROB, nextB, oldestB): boolean = activeResProp(res, RS, ROB, nextB, oldestB) splitEquiv: LEMMA rho(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) AND InOrderProps(top, res, RF, RS, RAT, ROB, nextB, oldestB) IMPLIES (EXISTS RS_I, RAT_I, ROB_I: rho_issue(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res, RF, RS_I, RAT_I, ROB_I, nextB_p, oldestB) AND neededInv(top_p, res, RF, RS_I, RAT_I, ROB_I, nextB_p, oldestB) AND occRSprop(RS_I, ROB_I, nextB_p, oldestB) AND RSprodUniqueProp(RS_I) AND (EXISTS res_E, RS_E: rho_execute(top_p, res, RF, RS_I, RAT_I, ROB_I, nextB_p, oldestB, top_p, res_E, RF, RS_E, RAT_I, ROB_I, nextB_p, oldestB) AND neededInv(top_p, res_E, RF, RS_E, RAT_I, ROB_I, nextB_p, oldestB) AND rho_writeb(top_p, res_E, RF, RS_E, RAT_I, ROB_I, nextB_p, oldestB, top_p, res_p, RF, RS_p, RAT_I, ROB_p, nextB_p, oldestB) AND neededInv(top_p, res_p, RF, RS_p, RAT_I, ROB_p, nextB_p, oldestB) AND rho_retire(top_p, res_p, RF, RS_p, RAT_I, ROB_p, nextB_p, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p))) InOrderPropsInv: LEMMA InOrderProps(top, res, RF, RS, RAT, ROB, nextB, oldestB) AND rho(top, res, RF, RS, RAT, ROB, nextB, oldestB, top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) IMPLIES InOrderProps(top_p, res_p, RF_p, RS_p, RAT_p, ROB_p, nextB_p, oldestB_p) END SplitEqual $$$SplitEqual.prf (|SplitEqual| (|top_TCC1| "" (SAME-NAME-TCC) NIL) (|chosenFUunique_TCC1| "" (SUBTYPE-TCC) NIL) (|chosenFUunique| "" (EXPAND "activeResProp") (("" (EXPAND "chooseFU") (("" (SKOSIMP*) (("" (LIFT-IF) (("" (INST? -2) (("" (SPLIT +) (("1" (SIMP) (("1" (SKOSIMP*) (("1" (EXPAND "choose") (("1" (USE "epsilon_ax[FU_ID[N, R, U, Z, B]]") (("1" (SIMP) (("1" (SPLIT -1) (("1" (SIMP) (("1" (INST -9 "epsilon(LAMBDA (FU_2813: FU_ID[N, R, U, Z, B]): a(res!1(FU_2813)) AND p(res!1(FU_2813)) = p(res!1(FU!1)))") (("1" (SIMP) NIL))))) ("2" (INST?) (("2" (SIMP) NIL))))))))))))))) ("2" (SIMP) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))) (|chosenFUnonzero_TCC1| "" (SUBTYPE-TCC) NIL) (|chosenFUnonzero_TCC2| "" (SUBTYPE-TCC) NIL) (|chosenFUnonzero| "" (EXPAND "chooseFU") (("" (SKOSIMP*) (("" (LIFT-IF) (("" (SPLIT) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST? :WHERE -) (("2" (SIMP) NIL))))))))))))) (|splitEquiv| "" (SKOSIMP*) (("" (HIDE -1 -2) (("" (REVEAL -1 -2) (("" (EXPAND "rho") (("" (SKOSIMP*) (("" (HIDE -9 -10 -11 -12) (("" (HIDE -8) (("" (INST 1 "(LAMBDA (S: SLOT_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND S = Sn!1 THEN (# oc := TRUE, p := nextB!1, op := op(prog(top!1)), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN (# b := b(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), p := al(RAT!1(src(prog(top!1))(j))), v := v(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), r := src(prog(top!1))(j) #) ELSE (# b := FALSE, v := v(RF!1(src(prog(top!1))(j))), r := src(prog(top!1))(j), p := 0 #) ENDIF) #) ELSE RS!1(S) ENDIF)" "(LAMBDA (r: REG_ID[N, R]): IF Sn!1 > 0 AND r = t(prog(top!1)) THEN (# b := TRUE, al := nextB!1 #) ELSE RAT!1(r) ENDIF)" "(LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND rb = nextB!1 THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): (# p:= IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF, r:= src(prog(top!1))(j) #)) #) ELSE ROB!1(rb) ENDIF)") (("1" (CASE "NOT rho_issue(top!1, res!1, RF!1, RS!1, RAT!1, ROB!1, nextB!1, oldestB!1, top_p!1, res!1, RF!1, (LAMBDA (S: SLOT_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND S = Sn!1 THEN (# oc := TRUE, p := nextB!1, op := op(prog(top!1)), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN (# b := b(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), p := al(RAT!1(src(prog(top!1))(j))), v := v(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), r := src(prog(top!1))(j) #) ELSE (# b := FALSE, v := v(RF!1(src(prog(top!1))(j))), r := src(prog(top!1))(j), p := 0 #) ENDIF) #) ELSE RS!1(S) ENDIF), (LAMBDA (r: REG_ID[N, R]): IF Sn!1 > 0 AND r = t(prog(top!1)) THEN (# b := TRUE, al := nextB!1 #) ELSE RAT!1(r) ENDIF), (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND rb = nextB!1 THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): (# p:= IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF, r:= src(prog(top!1))(j) #)) #) ELSE ROB!1(rb) ENDIF), nextB_p!1, oldestB!1)") (("1" (HIDE 2) (("1" (EXPAND "rho_issue") (("1" (INST 1 "Sn!1") (("1" (SIMP) (("1" (EXPAND "dispatch") (("1" (CASE "Sn!1 > 0") (("1" (SIMP) NIL) ("2" (REPLACE 1) (("2" (SIMP) NIL))))))))))))))) ("2" (SIMP) (("2" (CASE "NOT(neededInv(top_p!1, res!1, RF!1, (LAMBDA (S: SLOT_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND S = Sn!1 THEN (# oc := TRUE, p := nextB!1, op := op(prog(top!1)), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN (# b := b(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), p := al(RAT!1(src(prog(top!1))(j))), v := v(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), r := src(prog(top!1))(j) #) ELSE (# b := FALSE, v := v(RF!1(src(prog(top!1))(j))), r := src(prog(top!1))(j), p := 0 #) ENDIF) #) ELSE RS!1(S) ENDIF), (LAMBDA (r: REG_ID[N, R]): IF Sn!1 > 0 AND r = t(prog(top!1)) THEN (# b := TRUE, al := nextB!1 #) ELSE RAT!1(r) ENDIF), (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND rb = nextB!1 THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): (# p := IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF, r := src(prog(top!1))(j) #)) #) ELSE ROB!1(rb) ENDIF), nextB_p!1, oldestB!1) AND occRSprop((LAMBDA (S: SLOT_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND S = Sn!1 THEN (# oc := TRUE, p := nextB!1, op := op(prog(top!1)), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN (# b := b(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), p := al(RAT!1(src(prog(top!1))(j))), v := v(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), r := src(prog(top!1))(j) #) ELSE (# b := FALSE, v := v(RF!1(src(prog(top!1))(j))), r := src(prog(top!1))(j), p := 0 #) ENDIF) #) ELSE RS!1(S) ENDIF), (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND rb = nextB!1 THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): (# p := IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF, r := src(prog(top!1))(j) #)) #) ELSE ROB!1(rb) ENDIF), nextB_p!1, oldestB!1) AND RSprodUniqueProp((LAMBDA (S: SLOT_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND S = Sn!1 THEN (# oc := TRUE, p := nextB!1, op := op(prog(top!1)), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN (# b := b(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), p := al(RAT!1(src(prog(top!1))(j))), v := v(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), r := src(prog(top!1))(j) #) ELSE (# b := FALSE, v := v(RF!1(src(prog(top!1))(j))), r := src(prog(top!1))(j), p := 0 #) ENDIF) #) ELSE RS!1(S) ENDIF)))") (("1" (HIDE 2) (("1" (EXPAND "neededInv") (("1" (LEMMA " ActiveRes_issue") (("1" (INST?) (("1" (LEMMA "occRS_issue") (("1" (LEMMA "RSprodUnique_issue") (("1" (INST?) (("1" (INST?) (("1" (EXPAND "InOrderProps") (("1" (SIMP) NIL))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))))) ("2" (SIMP) (("2" (SKOSIMP*) (("2" (SIMP) NIL))))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (HIDE -2 -3) (("2" (HIDE -1 -2) (("2" (INST 1 "(LAMBDA (FU: FU_ID): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op(op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" " (LAMBDA S: IF Sn!1 > 0 AND S = Sn!1 THEN (# oc := TRUE, p := nextB!1, op := op(prog(top!1)), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN (# b := b(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), p := al(RAT!1(src(prog(top!1))(j))), v := v(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), r := src(prog(top!1))(j) #) ELSE (# b := FALSE, v := v(RF!1(src(prog(top!1))(j))), r := src(prog(top!1))(j), p := 0 #) ENDIF) #) ELSIF (EXISTS FU : NOT delay!1(FU) AND iex!1(FU) > 0 AND S = iex!1(FU)) THEN (# oc := FALSE, p := p(RS!1(S)), op := op(RS!1(S)), t := t(RS!1(S)), ss := ss(RS!1(S)) #) ELSE RS!1(S) ENDIF )") (("1" (CASE "NOT rho_execute(top_p!1, res!1, RF!1, (LAMBDA (S: SLOT_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND S = Sn!1 THEN (# oc := TRUE, p := nextB!1, op := op(prog(top!1)), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN (# b := b(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), p := al(RAT!1(src(prog(top!1))(j))), v := v(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), r := src(prog(top!1))(j) #) ELSE (# b := FALSE, v := v(RF!1(src(prog(top!1))(j))), r := src(prog(top!1))(j), p := 0 #) ENDIF) #) ELSE RS!1(S) ENDIF), (LAMBDA (r: REG_ID[N, R]): IF Sn!1 > 0 AND r = t(prog(top!1)) THEN (# b := TRUE, al := nextB!1 #) ELSE RAT!1(r) ENDIF), (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND rb = nextB!1 THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): (# p:= IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF, r:= src(prog(top!1))(j) #)) #) ELSE ROB!1(rb) ENDIF), nextB_p!1, oldestB!1, top_p!1, (LAMBDA (FU: FU_ID): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op(op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF), RF!1, (LAMBDA S: IF Sn!1 > 0 AND S = Sn!1 THEN (# oc := TRUE, p := nextB!1, op := op(prog(top!1)), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN (# b := b(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), p := al(RAT!1(src(prog(top!1))(j))), v := v(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), r := src(prog(top!1))(j) #) ELSE (# b := FALSE, v := v(RF!1(src(prog(top!1))(j))), r := src(prog(top!1))(j), p := 0 #) ENDIF) #) ELSIF (EXISTS FU: NOT delay!1(FU) AND iex!1(FU) > 0 AND S = iex!1(FU)) THEN (# oc := FALSE, p := p(RS!1(S)), op := op(RS!1(S)), t := t(RS!1(S)), ss := ss(RS!1(S)) #) ELSE RS!1(S) ENDIF), (LAMBDA (r: REG_ID[N, R]): IF Sn!1 > 0 AND r = t(prog(top!1)) THEN (# b := TRUE, al := nextB!1 #) ELSE RAT!1(r) ENDIF), (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND rb = nextB!1 THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): (# p:= IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF, r:= src(prog(top!1))(j) #)) #) ELSE ROB!1(rb) ENDIF), nextB_p!1, oldestB!1)") (("1" (HIDE 2) (("1" (EXPAND "rho_execute") (("1" (INST 1 "(lambda FU: iex!1(FU))" "(lambda FU: delay!1(FU))") (("1" (SIMP) (("1" (SPLIT 1) (("1" (SKOSIMP*) (("1" (INST? -5) (("1" (EXPAND "enabled") (("1" (SIMP) (("1" (CASE "Sn!1 > 0 AND iex!1(FU!1) = Sn!1") (("1" (SIMP) (("1" (LIFT-IF) (("1" (EXPAND "dispatch") (("1" (PROPAX) NIL))))))) ("2" (REPLACE 1) (("2" (SIMP) NIL))))))))))))) ("2" (EXPAND "enabled") (("2" (APPLY-EXTENSIONALITY 1 :HIDE? T) (("1" (LIFT-IF) (("1" (SPLIT +) (("1" (INST?) (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (EXPAND "dispatch") (("1" (PROPAX) NIL))))))))) ("2" (SIMP) NIL))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))) ("11" (SKOSIMP*) (("11" (SIMP) NIL))) ("12" (SKOSIMP*) (("12" (SIMP) NIL))))))) ("3" (EXPAND "enabled") (("3" (APPLY-EXTENSIONALITY 1 :HIDE? T) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (INST?) (("1" (EXPAND "dispatch") (("1" (SIMP) NIL))))))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))) ("11" (SKOSIMP*) (("11" (SIMP) NIL))) ("12" (SKOSIMP*) (("12" (SIMP) NIL))) ("13" (SKOSIMP*) (("13" (SIMP) NIL))) ("14" (SKOSIMP*) (("14" (SIMP) NIL))) ("15" (SKOSIMP*) (("15" (SIMP) NIL))) ("16" (SKOSIMP*) (("16" (SIMP) NIL))))))))))))))))) ("2" (SIMP) (("2" (CASE "NOT neededInv(top_p!1, (LAMBDA (FU: FU_ID): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op(op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF), RF!1, (LAMBDA S: IF Sn!1 > 0 AND S = Sn!1 THEN (# oc := TRUE, p := nextB!1, op := op(prog(top!1)), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN (# b := b(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), p := al(RAT!1(src(prog(top!1))(j))), v := v(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), r := src(prog(top!1))(j) #) ELSE (# b := FALSE, v := v(RF!1(src(prog(top!1))(j))), r := src(prog(top!1))(j), p := 0 #) ENDIF) #) ELSIF (EXISTS FU: NOT delay!1(FU) AND iex!1(FU) > 0 AND S = iex!1(FU)) THEN (# oc := FALSE, p := p(RS!1(S)), op := op(RS!1(S)), t := t(RS!1(S)), ss := ss(RS!1(S)) #) ELSE RS!1(S) ENDIF), (LAMBDA (r: REG_ID[N, R]): IF Sn!1 > 0 AND r = t(prog(top!1)) THEN (# b := TRUE, al := nextB!1 #) ELSE RAT!1(r) ENDIF), (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND rb = nextB!1 THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): (# p:= IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF, r:= src(prog(top!1))(j) #)) #) ELSE ROB!1(rb) ENDIF), nextB_p!1, oldestB!1)") (("1" (HIDE 2) (("1" (LEMMA "ActiveRes_execute") (("1" (INST?) (("1" (REVEAL -2) (("1" (SIMP) (("1" (EXPAND "neededInv") (("1" (HIDE -3) (("1" (SIMP) NIL))))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))) ("11" (SIMP) NIL))))))) ("2" (SIMP) (("2" (HIDE -1 -2) (("2" (CASE "NOT rho_writeb(top_p!1, (LAMBDA (FU: FU_ID): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op(op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF), RF!1, (LAMBDA S: IF Sn!1 > 0 AND S = Sn!1 THEN (# oc := TRUE, p := nextB!1, op := op(prog(top!1)), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN (# b := b(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), p := al(RAT!1(src(prog(top!1))(j))), v := v(rt(ROB!1(al(RAT!1(src(prog(top!1))(j)))))), r := src(prog(top!1))(j) #) ELSE (# b := FALSE, v := v(RF!1(src(prog(top!1))(j))), r := src(prog(top!1))(j), p := 0 #) ENDIF) #) ELSIF (EXISTS FU: NOT delay!1(FU) AND iex!1(FU) > 0 AND S = iex!1(FU)) THEN (# oc := FALSE, p := p(RS!1(S)), op := op(RS!1(S)), t := t(RS!1(S)), ss := ss(RS!1(S)) #) ELSE RS!1(S) ENDIF), (LAMBDA (r: REG_ID[N, R]): IF Sn!1 > 0 AND r = t(prog(top!1)) THEN (# b := TRUE, al := nextB!1 #) ELSE RAT!1(r) ENDIF), (LAMBDA (rb: ROB_ID[N, R, U, Z, B]): IF Sn!1 > 0 AND rb = nextB!1 THEN (# rt := (# b := TRUE, v := 0 #), t := t(prog(top!1)), ss := (LAMBDA (j: TWO[N, R]): (# p:= IF b(RAT!1(src(prog(top!1))(j))) AND al(RAT!1(src(prog(top!1))(j))) > 0 THEN al(RAT!1(src(prog(top!1))(j))) ELSE 0 ENDIF, r:= src(prog(top!1))(j) #)) #) ELSE ROB!1(rb) ENDIF), nextB_p!1, oldestB!1, top_p!1, res_p!1, RF!1, RS_p!1, (LAMBDA (r: REG_ID[N, R]): IF Sn!1 > 0 AND r = t(prog(top!1)) THEN (# b := TRUE, al := nextB!1 #) ELSE RAT!1(r) ENDIF), ROB_p!1, nextB_p!1, oldestB!1)") (("1" (HIDE 2) (("1" (EXPAND "rho_writeb") (("1" (EXPAND "enabled") (("1" (INST 1 "(lambda FU : writeback!1(FU))") (("1" (SPLIT 1) (("1" (SKOSIMP*) (("1" (SPLIT 1) (("1" (SIMP) NIL) ("2" (SIMP) (("2" (INST? -6) (("2" (SIMP) NIL))))))))) ("2" (APPLY-EXTENSIONALITY 1 :HIDE? T) (("1" (INST? -5) (("1" (LIFT-IF) (("1" (REVEAL -9) (("1" (REPLACE*) (("1" (HIDE -1) (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (INST?) (("1" (SIMP) NIL))))))))))))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))) ("3" (REVEAL -10) (("3" (REPLACE -1) (("3" (HIDE -1 -2 -3) (("3" (LIFT-IF) (("3" (CASE "(EXISTS FU: writeback!1(FU) AND iex!1(FU)> 0)") (("1" (HIDE 1) (("1" (SKOSIMP*) (("1" (INST?) (("1" (INST?) (("1" (SIMP) NIL))))))))) ("2" (SIMP) (("2" (APPLY-EXTENSIONALITY 2 :HIDE? T) (("1" (SIMP-SPLIT) (("1" (LIFT-IF) (("1" (REVEAL -2) (("1" (EXPAND "dispatch") (("1" (SPLIT 1) (("1" (SKOSIMP*) (("1" (INST? -7 :COPY? T) (("1" (INST? 4 :COPY? T) (("1" (SIMP) (("1" (LEMMA "nextBfree") (("1" (INSTBEST) (("1" (INST - "oldestB!1") (("1" (EXPAND "InOrderProps") (("1" (EXPAND "activeResProp") (("1" (SIMP) (("1" (INST? -16) (("1" (SIMP) NIL))))))))))))))))))))))) ("2" (SIMP) NIL))))))))) ("2" (SIMP-SPLIT 2) (("1" (SKOSIMP*) (("1" (INST? 3 :COPY? T) (("1" (INST? -5 :COPY? T) (("1" (SIMP) (("1" (CASE "NOT chooseFU(x!1, (LAMBDA (FU: FU_ID): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op (op(RS!1(iex!1(FU))), v (ss(RS!1(iex!1(FU))) (1)), v (ss(RS!1(iex!1(FU))) (2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)) > 0") (("1" (HIDE 2) (("1" (REPLACE -2 :DIR RL) (("1" (EXPAND "chooseFU") (("1" (SIMP-SPLIT) (("1" (INST?) (("1" (SIMP) NIL))))))))))) ("2" (CASE "NOT (EXISTS FU : chooseFU(x!1, (LAMBDA (FU: FU_ID): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op(op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)) = FU)") (("1" (HIDE 2) (("1" (INST 1 "chooseFU(x!1, (LAMBDA (FU: FU_ID): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op(op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF))") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))) ("2" (SKOSIMP*) (("2" (REPLACE -1) (("2" (SPLIT +) (("1" (INST? -) (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (APPLY-EXTENSIONALITY 1 :HIDE? T) (("1" (APPLY-EXTENSIONALITY 1 :HIDE? T) (("1" (REPLACE -2) (("1" (EXPAND "InOrderProps") (("1" (EXPAND "activeResProp") (("1" (SIMP) (("1" (INST? -20) (("1" (SIMP) NIL))))))))))))))) ("2" (SPLIT 2) (("1" (SKOSIMP*) (("1" (EXPAND "InOrderProps") (("1" (EXPAND "activeResProp") (("1" (SIMP) (("1" (INST? -) (("1" (INST? -) (("1" (SIMP) (("1" (INST -22 "FU!1") (("1" (SIMP) (("1" (REPLACE -22) (("1" (HIDE -15 -16 -17 -18 -19 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33) (("1" (HIDE -11 -2 -10 -1) (("1" (INST? 10) (("1" (SIMP) (("1" (REPLACE -5 :DIR RL) (("1" (REPLACE -2 (-1 3 10) :DIR RL) (("1" (EXPAND "chooseFU" (-1 -2 3 10)) (("1" (LIFT-IF) (("1" (SIMP) (("1" (SPLIT 3) (("1" (SPLIT 10) (("1" (SIMP) (("1" (EXPAND "choose") (("1" (LEMMA "epsilon_ax[FU_ID]") (("1" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN TRUE ELSE a(res!1(FU)) ENDIF AND IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN p(RS!1(iex!1(FU))) ELSE p(res!1(FU)) ENDIF = p(res!1(FU!1)))") (("1" (SPLIT -) (("1" (SIMP) (("1" (LIFT-IF) (("1" (HIDE -1 -6) (("1" (SPLIT -4) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))) ("2" (SKOSIMP*) (("2" (INST?) (("2" (SIMP) (("2" (SIMP-SPLIT) (("2" (REPLACE 1) (("2" (SIMP) NIL))))))))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))) ("2" (SKOSIMP*) NIL))) ("2" (SKOSIMP*) (("2" (SPLIT -2) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))))))))) ("2" (SIMP) (("2" (INST? +) (("2" (SIMP) NIL))))))))))))) ("2" (SIMP) (("2" (CASE "NOT a(res!1(FU!2))") (("1" (HIDE 3) (("1" (REPLACE -1 :DIR RL) (("1" (EXPAND "chooseFU") (("1" (EXPAND "choose") (("1" (SIMP-SPLIT) (("1" (LEMMA "epsilon_ax[FU_ID]") (("1" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN TRUE ELSE a(res!1(FU)) ENDIF AND IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN p(RS!1(iex!1(FU))) ELSE p(res!1(FU)) ENDIF = x!1)") (("1" (SPLIT -) (("1" (SIMP) (("1" (SPLIT -1) (("1" (SIMP) (("1" (SPLIT -) (("1" (SIMP) (("1" (SPLIT +) (("1" (SIMP) NIL) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))) ("2" (SIMP) NIL))))) ("2" (SKOSIMP*) (("2" (HIDE 2 3) (("2" (INST? +) (("2" (SIMP) (("2" (SIMP-SPLIT) (("2" (REPLACE 1) (("2" (SIMP) NIL))))))))))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))) ("2" (SIMP-SPLIT -) NIL))))))))))) ("2" (HIDE -7) (("2" (SIMP-SPLIT 2) (("1" (REPLACE -2) (("1" (EXPAND "InOrderProps") (("1" (EXPAND "activeResProp") (("1" (SIMP) (("1" (INST -18 "FU!1") (("1" (SIMP) NIL))))))))))) ("2" (SIMP-SPLIT 2) (("1" (LEMMA "chosenFUunique") (("1" (INST -1 "ROB!1" "RS!1" "nextB!1" "oldestB!1" "res!1" "FU!1") (("1" (SIMP) (("1" (EXPAND "InOrderProps") (("1" (SIMP) (("1" (EXPAND " activeResProp") (("1" (INST? -18) (("1" (SIMP) (("1" (INST -20 "FU!2") (("1" (SIMP) (("1" (HIDE -13 -14 -15 -16 -17 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30) (("1" (HIDE -2) (("1" (REPLACE -6 :DIR RL) (("1" (HIDE 1 -8) (("1" (REPLACE -3 :DIR RL) (("1" (EXPAND "chooseFU") (("1" (LIFT-IF) (("1" (SIMP) (("1" (SPLIT -3) (("1" (SPLIT 7) (("1" (EXPAND "choose") (("1" (SIMP) (("1" (HIDE 3) (("1" (LEMMA "epsilon_ax[FU_ID]") (("1" (SKOSIMP*) (("1" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN TRUE ELSE a(res!1(FU)) ENDIF AND IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN p(RS!1(iex!1(FU))) ELSE p(res!1(FU)) ENDIF = p(res!1(FU!1)))") (("1" (SIMP-SPLIT -) (("1" (REVEAL 1) (("1" (SIMP-SPLIT +) (("1" (SIMP-SPLIT -) NIL))))))) ("2" (INST? +) (("2" (SIMP) (("2" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (SIMP) NIL))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))) ("2" (SIMP) NIL))) ("2" (SIMP) NIL))))))))))))))))))))))))))))))))))))))) ("2" (INST? +) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (SIMP-SPLIT) (("2" (SIMP-SPLIT 2) (("2" (SKOSIMP*) (("2" (INST? +) (("2" (INST? +) (("2" (SIMP) NIL))))))))))))))) ("2" (SKOSIMP*) (("2" (TYPEPRED "top!1") (("2" (SIMP) NIL))))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) (("8" (LEMMA "chosenFUnonzero") (("8" (HIDE 1) (("8" (INST? -7) (("8" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) (("1" (LIFT-IF) (("1" (INST? 1) (("1" (SIMP) (("1" (REPLACE -3) (("1" (SIMP) NIL))))))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))) ("11" (SKOSIMP*) (("11" (SIMP) (("11" (INST? +) (("11" (SIMP) (("11" (LEMMA "chosenFUnonzero") (("11" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) (("1" (INST? -7) (("1" (SIMP) NIL))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))) ("12" (SKOSIMP*) (("12" (SIMP) NIL))) ("13" (SKOSIMP*) (("13" (SIMP) (("13" (INST?) (("13" (INST? -7) (("13" (SIMP) (("13" (LEMMA "chosenFUnonzero") (("13" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v (ss(RS!1(iex!1(FU))) (1)), v (ss(RS!1(iex!1(FU))) (2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP) (("2" (SIMP) NIL))))))))))))))))) ("14" (SKOSIMP) (("14" (SIMP) (("14" (SKOSIMP*) (("14" (SIMP) NIL))))))) ("15" (SKOSIMP*) (("15" (SIMP) (("15" (INST? +) (("15" (INST? -6) (("15" (SIMP) (("15" (LEMMA "chosenFUnonzero") (("15" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))) ("16" (SKOSIMP*) (("16" (SIMP) NIL))) ("17" (SKOSIMP*) (("17" (SIMP) NIL))) ("18" (SKOSIMP*) (("18" (SIMP) (("18" (INST? +) (("18" (INST? -6) (("18" (SIMP) (("18" (LEMMA "chosenFUnonzero") (("18" (INST?) (("18" (SIMP) NIL))))))))))))))) ("19" (SKOSIMP*) (("19" (TYPEPRED "top_p!1") (("19" (SIMP) NIL))))) ("20" (SKOSIMP*) (("20" (SIMP) NIL))) ("21" (SKOSIMP*) (("21" (SIMP) NIL))))))))))))))))) ("4" (REVEAL -11) (("4" (REPLACE*) (("4" (HIDE -1) (("4" (SIMP) (("4" (APPLY-EXTENSIONALITY 1 :HIDE? T) (("1" (SIMP-SPLIT) (("1" (APPLY-EXTENSIONALITY 1 :HIDE? T) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (HIDE 1) (("1" (SKOSIMP*) (("1" (INST?) (("1" (INST?) (("1" (SIMP) (("1" (SIMP) (("1" (CASE "NOT (chooseFU(al(RAT!1(src(prog(top!1))(x!2))), (LAMBDA (FU: FU_ID): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op(op(RS!1(iex!1(FU))), v (ss(RS!1(iex!1(FU))) (1)), v (ss(RS!1(iex!1(FU))) (2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)) = FU!1)") (("1" (LEMMA "chosenFUunique") (("1" (REVEAL -5) (("1" (EXPAND "neededInv") (("1" (SIMP) (("1" (INST?) (("1" (SIMP) (("1" (HIDE -1) (("1" (INST?) (("1" (SIMP) NIL))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))))))))))))) ("2" (REVEAL 1) (("2" (REPLACE*) (("2" (SIMP) (("2" (SIMP-SPLIT) (("1" (LEMMA "chosenFUunique") (("1" (EXPAND "InOrderProps") (("1" (SIMP) (("1" (INST?) (("1" (INST?) (("1" (SIMP) NIL))))))))))) ("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))) ("2" (SIMP-SPLIT 2) (("2" (SKOSIMP*) (("2" (INST?) (("2" (INST?) (("2" (SIMP) (("2" (REPLACE*) (("2" (EXPAND "InOrderProps") (("2" (EXPAND "activeResProp") (("2" (SIMP) (("2" (INST?) (("2" (SIMP) (("2" (SIMP) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))))))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP-SPLIT -) (("3" (INST?) (("3" (INST?) (("3" (SIMP) (("3" (SIMP) (("3" (REPLACE*) (("3" (LEMMA "chosenFUnonzero") (("3" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))) ("4" (SKOSIMP*) (("4" (SIMP-SPLIT -) NIL))) ("5" (SKOSIMP*) (("5" (SIMP-SPLIT -) NIL))) ("6" (SKOSIMP*) (("6" (SIMP-SPLIT -) NIL))) ("7" (SKOSIMP*) (("7" (SIMP-SPLIT -) NIL))) ("8" (SKOSIMP*) (("8" (SIMP-SPLIT -) (("8" (HIDE 1 -6) (("8" (INST?) (("8" (INST?) (("8" (SIMP) (("8" (SIMP) (("8" (REPLACE*) (("8" (LEMMA "chosenFUnonzero") (("8" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))))) ("9" (SKOSIMP*) (("9" (SIMP-SPLIT) NIL))) ("10" (SKOSIMP*) (("10" (SIMP-SPLIT -) NIL))) ("11" (SKOSIMP*) (("11" (SIMP-SPLIT -) NIL))) ("12" (SKOSIMP*) (("12" (SIMP-SPLIT -) (("12" (HIDE -6) (("12" (INST?) (("12" (INST?) (("12" (SIMP) (("12" (LEMMA "chosenFUnonzero") (("12" (SIMP) (("12" (REPLACE*) (("12" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))))) ("13" (SKOSIMP*) (("13" (SIMP-SPLIT -) NIL))) ("14" (SKOSIMP*) (("14" (SIMP-SPLIT -) NIL))) ("15" (SKOSIMP*) (("15" (SIMP-SPLIT -) NIL))) ("16" (SKOSIMP*) (("16" (SIMP-SPLIT -) (("16" (INST?) (("16" (INST?) (("16" (SIMP) (("16" (SIMP) (("16" (REPLACE*) (("16" (LEMMA "chosenFUnonzero") (("16" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))) ("17" (SKOSIMP*) (("17" (SIMP-SPLIT -) NIL))) ("18" (SKOSIMP*) (("18" (SIMP-SPLIT -) NIL))) ("19" (SKOSIMP*) (("19" (SIMP-SPLIT -) NIL))) ("20" (SKOSIMP*) (("20" (SIMP-SPLIT -) NIL))) ("21" (SKOSIMP*) (("21" (SIMP) NIL))) ("22" (SKOSIMP*) (("22" (SIMP) NIL))) ("23" (SKOSIMP*) (("23" (SIMP) (("23" (INST?) (("23" (INST?) (("23" (SIMP) (("23" (LEMMA "chosenFUnonzero") (("23" (INST?) (("23" (SIMP) NIL))))))))))))))) ("24" (SKOSIMP*) (("24" (SIMP) NIL))))) ("2" (SIMP-SPLIT 2) (("2" (SIMP-SPLIT 2) (("2" (APPLY-EXTENSIONALITY 1 :HIDE? T) (("1" (SIMP-SPLIT) (("1" (SKOSIMP*) (("1" (HIDE 1) (("1" (INST? -) (("1" (INST? -) (("1" (SIMP) (("1" (REVEAL 1) (("1" (SIMP-SPLIT) (("1" (HIDE 1) (("1" (HIDE -1) (("1" (CASE "NOT chooseFU(p(ss(RS!1(x!1))(x!2)), (LAMBDA (FU: FU_ID): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op(op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)) = FU!1") (("1" (LEMMA "chosenFUunique") (("1" (REVEAL -6) (("1" (EXPAND "neededInv") (("1" (INST?) (("1" (SIMP) (("1" (INST?) (("1" (SIMP) NIL))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))))))))))) ("2" (REVEAL 1) (("2" (REPLACE*) (("2" (SIMP) (("2" (LEMMA "chosenFUunique") (("2" (EXPAND "InOrderProps") (("2" (SIMP) (("2" (INST?) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))))))) ("2" (INST?) (("2" (SIMP) NIL))))))))))))))))) ("2" (SIMP-SPLIT 2) (("2" (HIDE 1) (("2" (SKOSIMP*) (("2" (INST? -) (("2" (INST? -) (("2" (SIMP) (("2" (SIMP) (("2" (INST?) (("2" (SIMP) NIL))))))))))))))))))) ("2" (SKOSIMP*) (("2" (HIDE 1) (("2" (INST? -) (("2" (INST? -) (("2" (SIMP) (("2" (SIMP) (("2" (REPLACE*) (("2" (LEMMA "chosenFUnonzero") (("2" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (REVEAL -6) (("1" (EXPAND " neededInv") (("1" (INST?) (("1" (SIMP) NIL))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) (("6" (HIDE 1) (("6" (INST? -) (("6" (INST? -) (("6" (SIMP) (("6" (HIDE -5) (("6" (SIMP) (("6" (LEMMA "chosenFUnonzero") (("6" (REVEAL -6) (("6" (EXPAND "neededInv") (("6" (SIMP) (("6" (INST -2 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))))))))))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) (("9" (HIDE -5) (("9" (INST? -) (("9" (INST? -) (("9" (SIMP) (("9" (SIMP) (("9" (REVEAL -6) (("9" (EXPAND "neededInv") (("9" (LEMMA "chosenFUnonzero") (("9" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))))))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))) ("11" (SKOSIMP*) (("11" (SIMP) NIL))) ("12" (SKOSIMP*) (("12" (SIMP) (("12" (INST? -) (("12" (INST? -) (("12" (SIMP) (("12" (SIMP) (("12" (HIDE 1) (("12" (REVEAL -5) (("12" (EXPAND "neededInv") (("12" (LEMMA "chosenFUnonzero") (("12" (SIMP) (("12" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))))))))) ("13" (SKOSIMP*) (("13" (SIMP) NIL))) ("14" (SKOSIMP*) (("14" (SIMP) NIL))) ("15" (SKOSIMP*) (("15" (SIMP) NIL))) ("16" (SKOSIMP*) (("16" (SIMP) (("16" (INST? -) (("16" (INST? -) (("16" (SIMP) (("16" (SIMP) (("16" (LEMMA "chosenFUnonzero") (("16" (INST?) (("16" (SIMP) NIL))))))))))))))))) ("17" (SKOSIMP*) (("17" (SIMP) NIL))))))))))) ("2" (SKOSIMP*) (("2" (SIMP-SPLIT) NIL))) ("3" (SKOSIMP*) (("3" (SIMP-SPLIT) NIL))) ("4" (SKOSIMP*) (("4" (SIMP-SPLIT) NIL))) ("5" (SKOSIMP*) (("5" (SIMP-SPLIT) NIL))) ("6" (SKOSIMP*) (("6" (SIMP-SPLIT) NIL))) ("7" (SKOSIMP*) (("7" (SIMP-SPLIT) NIL))) ("8" (SKOSIMP*) (("8" (SIMP-SPLIT) NIL))) ("9" (SKOSIMP*) (("9" (SIMP-SPLIT) NIL))) ("10" (SKOSIMP*) (("10" (SIMP-SPLIT) NIL))) ("11" (SKOSIMP*) (("11" (SIMP-SPLIT) NIL))) ("12" (SKOSIMP*) (("12" (SIMP-SPLIT) (("1" (SIMP-SPLIT -) (("1" (HIDE 1) (("1" (INST?) (("1" (INST?) (("1" (SIMP) (("1" (SIMP) (("1" (LEMMA "chosenFUnonzero") (("1" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))) ("2" (HIDE 2) (("2" (REPLACE 1) (("2" (INST?) (("2" (INST?) (("2" (SIMP) (("2" (SIMP) (("2" (LEMMA "chosenFUnonzero") (("2" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))))) ("13" (SKOSIMP*) (("13" (HIDE 1) (("13" (SIMP-SPLIT -) NIL))))) ("14" (SKOSIMP*) (("14" (HIDE 1) (("14" (REPLACE 1) (("14" (INST?) (("14" (INST?) (("14" (SIMP) NIL))))))))))) ("15" (SKOSIMP*) (("15" (HIDE 1) (("15" (SIMP) (("15" (SIMP-SPLIT -) NIL))))))) ("16" (SKOSIMP*) (("16" (HIDE 1) (("16" (SIMP) NIL))))) ("17" (SKOSIMP*) (("17" (HIDE 1) (("17" (SIMP) NIL))))) ("18" (SKOSIMP*) (("18" (HIDE 1) (("18" (SIMP) NIL))))) ("19" (SKOSIMP*) (("19" (SIMP) NIL))) ("20" (SKOSIMP*) (("20" (SIMP) (("20" (HIDE 1) (("20" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) NIL) ("2" (REPLACE 1) (("2" (SIMP) NIL))))))))))) ("21" (SKOSIMP*) (("21" (SIMP) (("21" (ASSERT :FLUSH? T) (("21" (HIDE 1) (("21" (HIDE -6) (("21" (INST?) (("21" (INST?) (("21" (SIMP) (("21" (SIMP) (("21" (LEMMA "chosenFUnonzero") (("21" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (LEMMA "chosenFUnonzero") (("1" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))) ("2" (REPLACE 1) (("2" (INST -2 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))))))))))) ("22" (SKOSIMP*) (("22" (SIMP) NIL))) ("23" (SKOSIMP*) (("23" (HIDE -6 1) (("23" (REPLACE 1) (("23" (SIMP) NIL))))))) ("24" (SKOSIMP*) (("24" (HIDE -6 1) (("24" (SIMP) (("24" (SIMP-SPLIT -) NIL))))))) ("25" (SKOSIMP*) (("25" (SIMP) NIL))) ("26" (SKOSIMP*) (("26" (SIMP) NIL))) ("27" (SKOSIMP*) (("27" (SIMP) NIL))) ("28" (SKOSIMP*) (("28" (SIMP) NIL))) ("29" (SKOSIMP*) (("29" (SIMP) (("29" (HIDE -6) (("29" (INST?) (("29" (INST?) (("29" (SIMP) (("29" (SIMP) (("29" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (LEMMA "chosenFUnonzero") (("1" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))) ("2" (REPLACE 1) (("2" (LEMMA "chosenFUnonzero") (("2" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))))))) ("30" (SKOSIMP*) (("30" (SIMP) NIL))) ("31" (SKOSIMP*) (("31" (SIMP) (("31" (REPLACE 1) (("31" (INST?) (("31" (INST?) (("31" (SIMP) NIL))))))))))) ("32" (SKOSIMP*) (("32" (SIMP) (("32" (INST?) (("32" (INST?) (("32" (SIMP) (("32" (SIMP-SPLIT -) NIL))))))))))) ("33" (SKOSIMP*) (("33" (SIMP) NIL))) ("34" (SKOSIMP*) (("34" (SIMP) NIL))) ("35" (SKOSIMP*) (("35" (SIMP) NIL))) ("36" (SKOSIMP*) (("36" (SIMP) NIL))) ("37" (SKOSIMP*) (("37" (SIMP) (("37" (INST?) (("37" (INST?) (("37" (SIMP) (("37" (SIMP) (("37" (SIMP-SPLIT -) (("1" (SIMP-SPLIT -) (("1" (LEMMA "chosenFUnonzero") (("1" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))) ("2" (REPLACE 1) (("2" (LEMMA "chosenFUnonzero") (("2" (INST -1 "(LAMBDA (FU: FU_ID[N, R, U, Z, B]): IF iex!1(FU) > 0 AND NOT delay!1(FU) THEN (# a := TRUE, p := p(RS!1(iex!1(FU))), v := do_op[N, R](op(RS!1(iex!1(FU))), v(ss(RS!1(iex!1(FU)))(1)), v(ss(RS!1(iex!1(FU)))(2))), t := t(RS!1(iex!1(FU))) #) ELSE res!1(FU) ENDIF)" "FU!1") (("1" (SIMP) NIL) ("2" (SKOSIMP*) (("2" (SIMP) NIL))))))))))))))))))))))) ("38" (SKOSIMP*) (("38" (SIMP) NIL))) ("39" (SKOSIMP*) (("39" (SIMP) (("39" (REPLACE 1) (("39" (SIMP) NIL))))))) ("40" (SKOSIMP*) (("40" (SIMP) (("40" (SIMP-SPLIT -) NIL))))) ("41" (SKOSIMP*) (("41" (SIMP) NIL))) ("42" (SKOSIMP*) (("42" (SIMP) NIL))) ("43" (SKOSIMP*) (("43" (SIMP) NIL))) ("44" (SKOSIMP*) (("44" (SIMP) NIL))) ("45" (SKOSIMP*) (("45" (SIMP) NIL))) ("46" (SKOSIMP*) (("46" (SIMP) NIL))) ("47" (SKOSIMP*) (("47" (SIMP) NIL))) ("48" (SKOSIMP*) (("48" (SIMP) NIL))) ("49" (SKOSIMP*) (("49" (SIMP) NIL))) ("50" (SKOSIMP*) (("50" (SIMP) NIL))) ("51" (SKOSIMP*) (("51" (SIMP) NIL))) ("52" (SKOSIMP*) (("52" (SIMP) NIL))) ("53" (SKOSIMP*) (("53" (SIMP) NIL))) ("54" (SKOSIMP*) (("54" (SIMP) NIL))) ("55" (SKOSIMP*) (("55" (SIMP) NIL))) ("56" (SKOSIMP*) (("56" (SIMP) NIL))) ("57" (SKOSIMP*) (("57" (SIMP) (("57" (LEMMA "chosenFUnonzero") (("57" (INST?) (("57" (INST? -) (("57" (INST? -) (("57" (SIMP) NIL))))))))))))) ("58" (SKOSIMP*) (("58" (SIMP) NIL))) ("59" (SKOSIMP*) (("59" (SIMP) NIL))) ("60" (SKOSIMP*) (("60" (SIMP) NIL))) ("61" (SKOSIMP*) (("61" (SIMP) NIL))) ("62" (SKOSIMP*) (("62" (SIMP) (("62" (INST?) (("62" (INST?) (("62" (SIMP) (("62" (LEMMA "chosenFUnonzero") (("62" (INST?) (("62" (SIMP) NIL))))))))))))))) ("63" (SKOSIMP*) (("63" (SIMP) NIL))) ("64" (SKOSIMP*) (("64" (SIMP) NIL))) ("65" (SKOSIMP*) (("65" (SIMP) NIL))) ("66" (SKOSIMP*) (("66" (SIMP) NIL))) ("67" (SKOSIMP*) (("67" (SIMP) NIL))))))))))))))))))))))) ("2" (SIMP) (("2" (CASE "NOT neededInv(top_p!1, res_p!1, RF!1, RS_p!1, (LAMBDA (r: REG_ID[N, R]): IF Sn!1 > 0 AND r = t(prog(top!1)) THEN (# b := TRUE, al := nextB!1 #) ELSE RAT!1(r) ENDIF), ROB_p!1, nextB_p!1, oldestB!1)") (("1" (HIDE 2) (("1" (EXPAND "neededInv") (("1" (LEMMA " ActiveRes_writeb") (("1" (INST?) (("1" (SIMP) (("1" (REVEAL -2) (("1" (EXPAND "neededInv") (("1" (PROPAX) NIL))))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))) ("11" (SKOSIMP*) (("11" (SIMP) NIL))))))))))) ("2" (SIMP) (("2" (HIDE -1 -2) (("2" (EXPAND "rho_retire") (("2" (INST? +) (("2" (REVEAL -9 -10 -11 -12) (("2" (REPLACE*) (("2" (SIMP) (("2" (HIDE -1 -2 -3 -4) (("2" (CASE "retire!1") (("1" (SIMP) (("1" (SIMP-SPLIT) (("1" (SIMP-SPLIT) (("1" (EXPAND "occ_buffer") (("1" (PROPAX) NIL))) ("2" (EXPAND "dispatch") (("2" (EXPAND "occ_buffer") (("2" (SIMP) (("2" (APPLY-EXTENSIONALITY 2 :HIDE? T) (("2" (SIMP-SPLIT) NIL))))))))))))))) ("2" (REPLACE 1) (("2" (SIMP) NIL))))))))))))))))))))) ("3" (SIMP) NIL))))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))))))))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))))))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))) ("11" (SKOSIMP*) (("11" (SIMP) NIL))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))))))))))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))) ("11" (SKOSIMP*) (("11" (SIMP) NIL))) ("12" (SKOSIMP*) (("12" (SIMP) NIL))) ("13" (SKOSIMP*) (("13" (SIMP) NIL))) ("14" (SKOSIMP*) (("14" (SIMP) NIL))) ("15" (SKOSIMP*) (("15" (SIMP) NIL))) ("16" (SKOSIMP*) (("16" (SIMP) NIL))) ("17" (SKOSIMP*) (("17" (SIMP) NIL))) ("18" (SKOSIMP*) (("18" (SIMP) NIL))) ("19" (SKOSIMP*) (("19" (SIMP) NIL))) ("20" (SKOSIMP*) (("20" (SIMP) NIL))) ("21" (SKOSIMP*) (("21" (SIMP) NIL))) ("22" (SKOSIMP*) (("22" (SIMP) NIL))) ("23" (SKOSIMP*) (("23" (SIMP) NIL))))))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))) ("11" (SKOSIMP*) (("11" (SIMP) NIL))))) ("2" (SKOSIMP*) (("2" (SIMP) NIL))) ("3" (SKOSIMP*) (("3" (SIMP) NIL))) ("4" (SKOSIMP*) (("4" (SIMP) NIL))) ("5" (SKOSIMP*) (("5" (SIMP) NIL))) ("6" (SKOSIMP*) (("6" (SIMP) NIL))) ("7" (SKOSIMP*) (("7" (SIMP) NIL))) ("8" (SKOSIMP*) (("8" (SIMP) NIL))) ("9" (SKOSIMP*) (("9" (SIMP) NIL))) ("10" (SKOSIMP*) (("10" (SIMP) NIL))))))))))))))))))) (|InOrderPropsInv| "" (LEMMA "splitEquiv") (("" (SKOSIMP*) (("" (INST?) (("" (SIMP) (("" (SKOSIMP*) (("" (LEMMA "InOrderProps_issue") (("" (INST?) (("" (SIMP) (("" (LEMMA "InOrderProps_execute") (("" (LEMMA "InOrderProps_writeb") (("" (LEMMA "InOrderProps_retire") (("" (INST?) (("" (INST?) (("" (INST?) (("" (SIMP) NIL)))))))))))))))))))))))))))))) $$$more_nat_types.pvs more_nat_types[m: posnat]: THEORY BEGIN upto_nz : TYPE = {i: upto[m] | NOT i = 0} CONTAINING m greater_one_nat : TYPE = {i : posnat | NOT i = 1} containing 2 END more_nat_types $$$more_nat_types.prf (|more_nat_types| (|upto_nz_TCC1| "" (SUBTYPE-TCC) NIL) (|upto_nz_TCC2| "" (SUBTYPE-TCC) NIL) (|greater_one_nat_TCC1| "" (SUBTYPE-TCC) NIL))