Documentation

AlgebraicWheelTheory.Basic

class Wheel (α : Type u) extends AddCommMonoid α, CommMonoid α :

A Wheel is an algebraic structure which has two binary operations (+,*), like a ring. Similarly to a commutative ring, a Wheel is a commutative monoid in both operations. Additionally, there is a multiplicative unary map wDiv which is an involution, as well as a few idiosyncratic properties in the interactions of the +,* and wDiv.

Instances
    @[simp]
    theorem Wheel.wdiv_one {α : Type u} [Wheel α] :
    \ₐ1 = 1

    We have that wDiv 1 is one, in general

    @[simp]
    theorem Wheel.zero_mul_add {α : Type u} [Wheel α] (a b : α) :
    0 * a + 0 * b = 0 * a * b

    For any two terms a b :α with [Wheel α] , we have that 0*a + 0*b = 0*a*b.

    @[simp]
    theorem Wheel.zero_wdiv_mul {α : Type u} [Wheel α] (a : α) :
    0 * \ₐ0 * a = 0 * \ₐ0

    For any a :α and [Wheel α] , (0* \ₐ 0)*a = 0* \ₐ 0. Morally, this is like saying infinity times anything is infinity, complementing the axiom wDiv_zero_add.

    @[simp]
    theorem Wheel.wdiv_self {α : Type u} [Wheel α] (a : α) :
    a * \ₐa = 1 + 0 * (a * \ₐa)

    For any a :α and [Wheel α] , a*\ₐa = 1 + 0*(a*\ₐa) .

    theorem Wheel.wdiv_right_cancel' {α : Type u} [Wheel α] (a b c : α) :
    a * c = b * ca + 0 * c * \ₐc = b + 0 * c * \ₐc

    For any a b c :α and [Wheel α] , a*c = b*c → a + 0*c*\ₐc = b + 0*c*\ₐc. This is the version of cancellation that wheels enjoy.

    theorem Wheel.isUnit_add_eq_div_add {α : Type u} [Wheel α] (c : α) (hc : IsUnit c) :
    ∃ (b : α), c * b = 1 b * c = 1 b + 0 * \ₐc = \ₐc + 0 * b

    If c :α is a unit and [Wheel α] , then the inverse and Wheel self-division are related