mirror of
https://github.com/Smaug123/agdaproofs
synced 2025-10-13 23:58:38 +00:00
28 lines
1.2 KiB
Agda
28 lines
1.2 KiB
Agda
{-# OPTIONS --safe --warning=error --without-K #-}
|
||
|
||
open import LogicalFormulae
|
||
open import Setoids.Orders
|
||
open import Setoids.Setoids
|
||
open import Sets.EquivalenceRelations
|
||
open import Rings.IntegralDomains.Definition
|
||
open import Rings.Definition
|
||
|
||
open import Agda.Primitive using (Level; lzero; lsuc; _⊔_)
|
||
|
||
module Rings.Irreducibles.Lemmas {a b : _} {A : Set a} {S : Setoid {a} {b} A} {_+_ _*_ : A → A → A} {R : Ring S _+_ _*_} (intDom : IntegralDomain R) where
|
||
|
||
open import Rings.Irreducibles.Definition intDom
|
||
open import Rings.Divisible.Definition R
|
||
open import Rings.Units.Definition R
|
||
open import Rings.Associates.Definition intDom
|
||
|
||
open Setoid S
|
||
open Equivalence eq
|
||
open Ring R
|
||
|
||
dividesIrreducibleImpliesUnit : {r c : A} → Irreducible r → c ∣ r → (r ∣ c → False) → Unit c
|
||
dividesIrreducibleImpliesUnit {r} {c} irred (x , cx=r) notAssoc = Irreducible.irreducible irred x c (transitive *Commutative cx=r) nonunit
|
||
where
|
||
nonunit : Unit x → False
|
||
nonunit (a , xa=1) = notAssoc (a , transitive (transitive (transitive (transitive (*WellDefined (symmetric cx=r) reflexive) (symmetric *Associative)) *Commutative) (*WellDefined xa=1 reflexive)) identIsIdent)
|