diff --git a/src/Data/Digit.agda b/src/Data/Digit.agda index 49370776da..1fde8d22d4 100644 --- a/src/Data/Digit.agda +++ b/src/Data/Digit.agda @@ -9,20 +9,24 @@ module Data.Digit where open import Data.Nat.Base -open import Data.Nat.Properties using (_≤?_; _) @@ -669,12 +668,14 @@ toℕ-combine {suc m} {n} i@0F j = begin n ℕ.* toℕ i ℕ.+ toℕ j ∎ where open ≡-Reasoning toℕ-combine {suc m} {n} (suc i) j = begin - toℕ (combine (suc i) j) ≡⟨⟩ - toℕ (n ↑ʳ combine i j) ≡⟨ toℕ-↑ʳ n (combine i j) ⟩ - n ℕ.+ toℕ (combine i j) ≡⟨ cong (n ℕ.+_) (toℕ-combine i j) ⟩ - n ℕ.+ (n ℕ.* toℕ i ℕ.+ toℕ j) ≡⟨ solve 3 (λ n i j → n :+ (n :* i :+ j) := n :* (con 1 :+ i) :+ j) refl n (toℕ i) (toℕ j) ⟩ - n ℕ.* toℕ (suc i) ℕ.+ toℕ j ∎ - where open ≡-Reasoning; open +-*-Solver + toℕ (combine (suc i) j) ≡⟨⟩ + toℕ (n ↑ʳ combine i j) ≡⟨ toℕ-↑ʳ n (combine i j) ⟩ + n ℕ.+ toℕ (combine i j) ≡⟨ cong (n ℕ.+_) (toℕ-combine i j) ⟩ + n ℕ.+ (n ℕ.* toℕ i ℕ.+ toℕ j) ≡⟨ ℕ.+-assoc n _ (toℕ j) ⟨ + n ℕ.+ n ℕ.* toℕ i ℕ.+ toℕ j ≡⟨ cong (λ z → z ℕ.+ n ℕ.* toℕ i ℕ.+ toℕ j) (ℕ.*-identityʳ n) ⟨ + n ℕ.* 1 ℕ.+ n ℕ.* toℕ i ℕ.+ toℕ j ≡⟨ cong (ℕ._+ toℕ j) (ℕ.*-distribˡ-+ n 1 (toℕ i) ) ⟨ + n ℕ.* toℕ (suc i) ℕ.+ toℕ j ∎ + where open ≡-Reasoning combine-monoˡ-< : ∀ {i j : Fin m} (k l : Fin n) → i < j → combine i k < combine j l @@ -688,7 +689,7 @@ combine-monoˡ-< {m} {n} {i} {j} k l i