OAI/Computability/RationalHitting/BinaryDivision.lean
20 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.RationalHitting.StackLanguage.subtractBodyline 8 - def
OAI.RationalHitting.StackLanguage.subtractLoopline 11 - def
OAI.RationalHitting.StackLanguage.subStepline 13 - def
OAI.RationalHitting.StackLanguage.subFinishline 18 - lemma
OAI.RationalHitting.StackLanguage.eval_subtractLoopline 23 - def
OAI.RationalHitting.StackLanguage.subtractline 79Source documentation
Subtract and compare, destructively. Output register 2 has the little-endian fixed-width modular difference; singleton register 3 is exactly the comparison bit (true iff the first number was smaller).
def subtract : Program (Fin 5) := …
- lemma
OAI.RationalHitting.StackLanguage.eval_subtractline 83 - lemma
OAI.RationalHitting.StackLanguage.bitNat_le_oneline 114 - def
OAI.RationalHitting.StackLanguage.reduceWordline 116 - lemma
OAI.RationalHitting.StackLanguage.normalize_length_of_ltline 120 - lemma
OAI.RationalHitting.StackLanguage.reduceWord_specline 125 - def
OAI.RationalHitting.StackLanguage.divideDigitsline 143Source documentation
Long division, scanning the original numerator most-significant-bit first. The quotient and remainder registers remain ordinary little-endian words.
def divideDigits (b : List Bool) : List Bool → List Bool → List Bool → List Bool × List Bool | [],r,q => (r,q) | x::l,r,q => let v := reduceWord (x::r) b … - lemma
OAI.RationalHitting.StackLanguage.divideDigits_specline 149 - lemma
OAI.RationalHitting.StackLanguage.divideDigits_quotient_remainderline 171 - def
OAI.RationalHitting.StackLanguage.Program.renameline 188 - lemma
OAI.RationalHitting.StackLanguage.extend_update_storeline 197 - lemma
OAI.RationalHitting.StackLanguage.extend_transfer_storeline 211 - theorem
OAI.RationalHitting.StackLanguage.Eval.renameline 225Source documentation
Uniform register allocation: renaming injectively never changes time and preserves every register outside its finite image.
theorem Eval.rename {p : Program K} {s v : Store K} {t : ℕ} (h : Eval p s v t) (f : K → L) (hf : Injective f) (S : Store L) : Eval (p.rename f) (extend f s S) (extend f v S) t := by …Mentions: OAI.RationalHitting.StackLanguage.Program, OAI.RationalHitting.StackLanguage.Store, OAI.RationalHitting.StackLanguage.Eval
- lemma
OAI.RationalHitting.StackLanguage.extend_pull_storeline 246 - lemma
OAI.RationalHitting.StackLanguage.eval_rename_fromline 255