123456789101112131415161718192021222324252627282930313233343536373839-------------------------------------------------------------------------- The Agda standard library---- Coprimality------------------------------------------------------------------------ {-# OPTIONS --cubical-compatible --safe #-} module Data.Integer.Coprimality where open import Data.Integer.Baseopen import Data.Integer.Divisibilityopen import Data.Integer.Propertiesimport Data.Nat.Coprimality as ℕimport Data.Nat.Divisibility as ℕopen import Function.Base using (_on_)open import Level using (0ℓ)open import Relation.Binary.Core using (Rel)open import Relation.Binary.Definitions using (Decidable; Symmetric)open import Relation.Binary.PropositionalEquality.Core using (subst) -------------------------------------------------------------------------- Definition Coprime : Rel ℤ 0ℓCoprime = ℕ.Coprime on ∣_∣ -------------------------------------------------------------------------- Properties of coprimality sym : Symmetric Coprimesym = ℕ.sym coprime? : Decidable Coprimecoprime? x y = ℕ.coprime? ∣ x ∣ ∣ y ∣ coprime-divisor : ∀ i j k → Coprime i j → i ∣ j * k → i ∣ kcoprime-divisor i j k c eq = ℕ.coprime-divisor c (subst (∣ i ∣ ℕ.∣_ ) (abs-* j k) eq)