OAI/Computability/WLIdentification/BinaryAddresses.lean
37 declarations, 0 contain sorry, 0 declared as axioms
- abbrev
OAI.WLIdentification.BinaryAddress.Bitsline 9 - def
OAI.WLIdentification.BinaryAddress.valueline 11 - theorem
OAI.WLIdentification.BinaryAddress.value_nilline 15 - theorem
OAI.WLIdentification.BinaryAddress.value_consline 16 - theorem
OAI.WLIdentification.BinaryAddress.value_zeroline 19 - theorem
OAI.WLIdentification.BinaryAddress.value_oneline 24 - theorem
OAI.WLIdentification.BinaryAddress.value_ltline 29 - theorem
OAI.WLIdentification.BinaryAddress.value_injectiveline 37 - theorem
OAI.WLIdentification.BinaryAddress.value_surjectiveline 51 - def
OAI.WLIdentification.BinaryAddress.equivline 61 - def
OAI.WLIdentification.BinaryAddress.negateline 67 - theorem
OAI.WLIdentification.BinaryAddress.negate_negateline 69 - theorem
OAI.WLIdentification.BinaryAddress.value_negateline 72 - def
OAI.WLIdentification.BinaryAddress.advanceline 83Source documentation
Little-endian carry without converting or enumerating the address space.
def advance : {d : ℕ} → Bits d → Bits d | 0, v => v | _ + 1, v => Fin.cons (!(v 0)) (if v 0 then advance (fun i => v i.succ) else fun i => v i.succ)Mentions: OAI.WLIdentification.BinaryAddress.Bits
- theorem
OAI.WLIdentification.BinaryAddress.advance_oneline 88 - theorem
OAI.WLIdentification.BinaryAddress.value_advanceline 97 - theorem
OAI.WLIdentification.BinaryAddress.value_eq_lastline 114 - theorem
OAI.WLIdentification.BinaryAddress.advance_modline 122 - def
OAI.WLIdentification.BinaryAddress.Carryline 132Source documentation
Each carry case fixes just the low prefix, including its first noncarry bit.
def Carry {d : ℕ} (h : Fin d) (b : Bool) (v : Bits d) : Prop := …Mentions: OAI.WLIdentification.BinaryAddress.Bits
- def
OAI.WLIdentification.BinaryAddress.flipPrefixline 135 - theorem
OAI.WLIdentification.BinaryAddress.advance_carryline 138 - theorem
OAI.WLIdentification.BinaryAddress.carry_existsline 159 - theorem
OAI.WLIdentification.BinaryAddress.carry_not_lastline 179 - def
OAI.WLIdentification.BinaryAddress.ofNatline 193Source documentation
The executable little-endian digit map; no search through 2^d addresses.
def ofNat : (d : ℕ) → ℕ → Bits d | 0, _ => Fin.elim0 | d + 1, n => Fin.cons (decide (n % 2 = 1)) (ofNat d (n / 2))
Mentions: OAI.WLIdentification.BinaryAddress.Bits
- theorem
OAI.WLIdentification.BinaryAddress.value_ofNatline 197 - theorem
OAI.WLIdentification.BinaryAddress.ofNat_valueline 205 - theorem
OAI.WLIdentification.BinaryAddress.ofNat_zeroline 208 - def
OAI.WLIdentification.ProductMap.Relline 217Source documentation
The relation described by a table, without enumerating its product points.
def Rel (D : ProductMap r) (x y : Fin r → Bool) : Prop := …
Mentions: OAI.WLIdentification.ProductMap
- theorem
OAI.WLIdentification.ProductMap.rel_pointline 220 - theorem
OAI.WLIdentification.ProductMap.rel_iffline 223 - def
OAI.WLIdentification.ProductMap.singletonline 230 - theorem
OAI.WLIdentification.ProductMap.singleton_relline 236 - theorem
OAI.WLIdentification.ProductMap.identity_relline 241 - def
OAI.WLIdentification.ProductMap.concatline 244 - theorem
OAI.WLIdentification.ProductMap.concat_relline 256 - def
OAI.WLIdentification.ProductMap.inverseline 264 - theorem
OAI.WLIdentification.ProductMap.inverse_relline 276