summaryrefslogtreecommitdiff
path: root/src/Helium/Algebra/Field.agda
blob: 20f13f62b32a0ef81bc3ff15a7b8c4c5be41763d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{-# OPTIONS --without-K --safe #-}

module Helium.Algebra.Field where

open import Algebra
open import Level
open import Relation.Binary
open import Relation.Nullary

module _
  {a ℓ} {A : Set a}
  (_≈_ : Rel A ℓ)
  where

  record IsField (+ _*_ : Op₂ A) (- : Op₁ A) (0# 1# : A) (_⁻¹ : ∀ x {≢0 : ¬ x ≈ 0#} → A) : Set (a ⊔ ℓ) where
    field
      isCommutativeRing : IsCommutativeRing _≈_ + _*_ - 0# 1#
      ⁻¹-cong           : ∀ x y {x≢0 y≢0}→ x ≈ y → (x ⁻¹) {x≢0} ≈ (y ⁻¹) {y≢0}
      ⁻¹-inverseˡ       : ∀ x {x≢0#} → ((x ⁻¹) {x≢0#} * x) ≈ 1#
      ⁻¹-inverseʳ       : ∀ x {x≢0#} → (x * (x ⁻¹) {x≢0#}) ≈ 1#

    open IsCommutativeRing isCommutativeRing public