src/HOL/Library/Char_nat.thy
changeset 27651 16a26996c30e
parent 27487 c8a6ce181805
child 28562 4e74209f113e
equal deleted inserted replaced
27650:7a4baad05495 27651:16a26996c30e
   154   have 256: "(256 :: nat) = 16 * 16" by auto
   154   have 256: "(256 :: nat) = 16 * 16" by auto
   155   have l_256: "l mod 256 = l" using l by auto
   155   have l_256: "l mod 256 = l" using l by auto
   156   have l_div_256: "l div 16 * 16 mod 256 = l div 16 * 16"
   156   have l_div_256: "l div 16 * 16 mod 256 = l div 16 * 16"
   157     using l by auto
   157     using l by auto
   158   have aux2: "(k * 256 mod 16 + l mod 16) div 16 = 0"
   158   have aux2: "(k * 256 mod 16 + l mod 16) div 16 = 0"
   159     unfolding 256 mult_assoc [symmetric] mod_mult_self_is_0 by simp
   159     unfolding 256 mult_assoc [symmetric] mod_mult_self2_is_0 by simp
   160   have aux3: "(k * 256 + l) div 16 = k * 16 + l div 16"
   160   have aux3: "(k * 256 + l) div 16 = k * 16 + l div 16"
   161     unfolding div_add1_eq [of "k * 256" l 16] aux2 256
   161     unfolding div_add1_eq [of "k * 256" l 16] aux2 256
   162       mult_assoc [symmetric] div_mult_self_is_m [OF 16] by simp
   162       mult_assoc [symmetric] div_mult_self_is_m [OF 16] by simp
   163   have aux4: "(k * 256 + l) mod 16 = l mod 16"
   163   have aux4: "(k * 256 + l) mod 16 = l mod 16"
   164     unfolding 256 mult_assoc [symmetric] mod_mult_self3 ..
   164     unfolding 256 mult_assoc [symmetric] mod_mult_self3 ..