Documentation

LeanPool.Duality.ExtendedFields

This entire file is inspired by: https://github.com/leanprover-community/mathlib4/blob/333e2d79fdaee86489af73dee919bc4b66957a52/Mathlib/Data/Real/EReal.lean

def Extend (F : Type u_1) :
Type u_1

Extend F is the type of values in F ∪ {⊥, ⊤} where, informally speaking, (negative infinity) is stronger than (positive infinity).

Equations
Instances For
    @[implicit_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[implicit_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[implicit_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[implicit_reducible]
    Equations
    @[implicit_reducible]
    instance instDecidableRelExtendLt {F : Type u_1} [LinearOrder F] :
    DecidableRel fun (x1 x2 : Extend F) => x1 < x2
    Equations
    def toE {F : Type u_1} :
    FExtend F

    The canonical inclusion from F to Extend F is registered as a coercion.

    Equations
    Instances For
      @[implicit_reducible]
      instance instCoeExtend {F : Type u_1} :
      Coe F (Extend F)
      Equations

      Coercion #

      @[simp]
      theorem EF.coe_le_coe_iff {F : Type u_1} [LinearOrder F] {x y : F} :
      x y x y
      theorem EF.coe_le_coe_iff_F (F : Type) [Field F] [LinearOrder F] [IsStrictOrderedRing F] {x y : F} :
      x y x y
      @[simp]
      theorem EF.coe_lt_coe_iff {F : Type u_1} [LinearOrder F] {x y : F} :
      x < y x < y
      @[simp]
      theorem EF.coe_eq_coe_iff {F : Type u_1} [LinearOrder F] {x y : F} :
      x = y x = y
      theorem EF.coe_neq_coe_iff {F : Type u_1} [LinearOrder F] {x y : F} :
      x y x y
      @[simp]
      theorem EF.coe_zero {F : Type u_1} [Field F] :
      0 = 0
      @[simp]
      theorem EF.coe_one {F : Type u_1} [Field F] :
      1 = 1
      @[simp]
      theorem EF.bot_lt_coe {F : Type u_1} [LinearOrder F] (x : F) :
      < x
      @[simp]
      theorem EF.coe_neq_bot {F : Type u_1} [LinearOrder F] (x : F) :
      x
      @[simp]
      theorem EF.bot_neq_coe {F : Type u_1} [LinearOrder F] (x : F) :
      x
      @[simp]
      theorem EF.coe_lt_top {F : Type u_1} [LinearOrder F] (x : F) :
      x <
      @[simp]
      theorem EF.coe_neq_top {F : Type u_1} [LinearOrder F] (x : F) :
      x
      @[simp]
      theorem EF.top_neq_coe {F : Type u_1} [LinearOrder F] (x : F) :
      x
      @[simp]
      theorem EF.bot_lt_zero {F : Type u_1} [Field F] [LinearOrder F] :
      < 0
      @[simp]
      theorem EF.bot_neq_zero {F : Type u_1} [Field F] [LinearOrder F] :
      @[simp]
      theorem EF.zero_neq_bot {F : Type u_1} [Field F] [LinearOrder F] :
      @[simp]
      theorem EF.zero_lt_top {F : Type u_1} [Field F] [LinearOrder F] :
      0 <
      @[simp]
      theorem EF.zero_neq_top {F : Type u_1} [Field F] [LinearOrder F] :
      @[simp]
      theorem EF.top_neq_zero {F : Type u_1} [Field F] [LinearOrder F] :
      @[simp]
      theorem EF.coe_add {F : Type u_1} [Field F] (x y : F) :
      ↑(x + y) = x + y
      @[simp]
      theorem EF.coe_eq_zero {F : Type u_1} [Field F] [LinearOrder F] {x : F} :
      x = 0 x = 0
      @[simp]
      theorem EF.coe_eq_one {F : Type u_1} [Field F] [LinearOrder F] {x : F} :
      x = 1 x = 1
      theorem EF.coe_neq_zero {F : Type u_1} [Field F] [LinearOrder F] {x : F} :
      x 0 x 0
      theorem EF.coe_neq_one {F : Type u_1} [Field F] [LinearOrder F] {x : F} :
      x 1 x 1
      @[simp]
      theorem EF.coe_nonneg {F : Type u_1} [Field F] [LinearOrder F] {x : F} :
      0 x 0 x
      @[simp]
      theorem EF.coe_nonpos {F : Type u_1} [Field F] [LinearOrder F] {x : F} :
      x 0 x 0
      @[simp]
      theorem EF.coe_pos {F : Type u_1} [Field F] [LinearOrder F] {x : F} :
      0 < x 0 < x
      @[simp]
      theorem EF.coe_neg' {F : Type u_1} [Field F] [LinearOrder F] {x : F} :
      x < 0 x < 0

      Addition #

      @[simp]
      theorem EF.add_bot {F : Type u_1} [Field F] [LinearOrder F] (x : Extend F) :
      @[simp]
      theorem EF.bot_add {F : Type u_1} [Field F] [LinearOrder F] (x : Extend F) :
      @[simp]
      theorem EF.add_eq_bot_iff {F : Type u_1} [Field F] [LinearOrder F] {x y : Extend F} :
      x + y = x = y =
      @[simp]
      theorem EF.top_add_top {F : Type u_1} [Field F] [LinearOrder F] :
      @[simp]
      theorem EF.top_add_coe {F : Type u_1} [Field F] [LinearOrder F] (x : F) :
      + x =
      @[simp]
      theorem EF.coe_add_top {F : Type u_1} [Field F] [LinearOrder F] (x : F) :
      x + =

      Negation #

      def EF.neg {F : Type u_1} [Field F] [LinearOrder F] :
      Extend FExtend F

      Negation on Extend F.

      Equations
      Instances For
        @[implicit_reducible]
        instance EF.instNegExtend {F : Type u_1} [Field F] [LinearOrder F] :
        Equations
        @[implicit_reducible]
        Equations
        • One or more equations did not get rendered due to their size.
        @[simp]
        theorem EF.neg_top {F : Type u_1} [Field F] [LinearOrder F] :
        @[simp]
        theorem EF.neg_bot {F : Type u_1} [Field F] [LinearOrder F] :
        @[simp]
        theorem EF.coe_neg {F : Type u_1} [Field F] [LinearOrder F] (x : F) :
        ↑(-x) = -x
        @[implicit_reducible]
        Equations
        @[simp]
        theorem EF.neg_eq_top_iff {F : Type u_1} [Field F] [LinearOrder F] {x : Extend F} :
        -x = x =
        @[simp]
        theorem EF.neg_eq_bot_iff {F : Type u_1} [Field F] [LinearOrder F] {x : Extend F} :
        -x = x =
        @[simp]
        theorem EF.neg_eq_zero_iff {F : Type u_1} [Field F] [LinearOrder F] {x : Extend F} :
        -x = 0 x = 0