1
如何添加兩個理性..我正在嘗試這個,但這是不正確的。因爲我無法證明這個coprime部分。如何在agda中添加兩個理性?
open import Data.Rational
open import Data.Integer
open import Data.Nat
_add_ : ℚ -> ℚ -> ℚ
x add y = (nx Data.Integer.* dy Data.Integer.+ dx Data.Integer.* ny) ÷
(dx′ Data.Nat.* dy′)
where
nx = ℚ.numerator x
dx = ℚ.denominator x
dx′ = ℕ.suc (ℚ.denominator-1 x)
ny = ℚ.numerator y
dy = ℚ.denominator y
dy′ = ℕ.suc (ℚ.denominator-1 y)
非常感謝:)但你能解釋一下簡單的功能多一點請。 – ajayv
@ajayv:我的建議是離開'simp'的簽名,但刪除右邊,所以你只剩下'simp x y-1 | Bézout.resultd(GCD.is(除以x'x-eq,除y'y-eq)最大)bézout=?',然後繼續檢查目標和上下文(在Emacs中爲'Cc C-,')爲你添加了更多的代碼 - 這應該告訴你你需要在不同的地方證明什麼,以及哪個位置會做什麼。 – Cactus