Documentation

Iris.Algebra.Frac

The Frac CMRA #

This CMRA captures the notion of fractional ownership of another resource. Traditionally the underlying set is assumed to be the half open interval $$(0,1]$$.

class Iris.Fraction (α : Type u_1) extends Add α :
Type u_1
  • add : ααα
  • Proper : αProp

    Validity predicate on fractions. Generalizes the notion of (· ≤ 1) from rational fractions.

  • add_comm (a b : α) : a + b = b + a
  • add_assoc (a b c : α) : a + (b + c) = a + b + c
  • add_left_cancel {a b c : α} : a + b = a + cb = c
  • add_ne {a b : α} : a b + a

    There does not exist a zero fraction.

  • proper_add_mono_left {a b : α} : Proper (a + b)Proper a
Instances
    def Iris.Fraction.Fractional {α : Type u_1} [Fraction α] (a : α) :

    A fraction does not represent the entire resource. Generalizes the notion of (· < 1) from rational fractions.

    Equations
    Instances For
      def Iris.Fraction.Whole {α : Type u_1} [Fraction α] (a : α) :

      A fraction that is tne entire resource. Generalizes the notion of 1 from rational fractions.

      Equations
      Instances For
        theorem Iris.Fraction.Fractional.not_whole {α : Type u_1} [Fraction α] {a : α} (H : Fractional a) :
        theorem Iris.Fraction.Whole.not_fractional {α : Type u_1} [Fraction α] {a : α} (H : Whole a) :
        theorem Iris.Fraction.add_right_cancel {α : Type u_1} [Fraction α] {a b c : α} (H : b + a = c + a) :
        b = c
        theorem Iris.Fraction.Fractional.proper {α : Type u_1} [Fraction α] {a : α} :
        theorem Iris.Fraction.Fractional.of_add_left {α : Type u_1} [Fraction α] {a a' : α} (H : Fractional (a + a')) :
        theorem Iris.Fraction.Fractional.of_add_right {α : Type u_1} [Fraction α] {a a' : α} (H : Fractional (a + a')) :
        def Iris.Frac (α : Type u_1) :
        Type u_1
        Equations
        Instances For
          instance Iris.instCoeFracOfFraction {α : Type u_1} [Fraction α] :
          Coe (Frac α) α
          Equations
          instance Iris.instCoeFracOfFraction_1 {α : Type u_1} [Fraction α] :
          Coe α (Frac α)
          Equations
          instance Iris.instAddFracOfFraction {α : Type u_1} [Fraction α] :
          Add (Frac α)
          Equations
          instance Iris.Frac_CMRA {α : Type u_1} [Fraction α] :
          CMRA (Frac α)
          Equations
          • One or more equations did not get rendered due to their size.
          instance Iris.instCancelableFrac {α : Type u_1} [Fraction α] {a : Frac α} :
          instance Iris.instIdFreeFrac {α : Type u_1} [Fraction α] {a : Frac α} :
          class Iris.UFraction (α : Type u_1) extends Iris.Fraction α, One α :
          Type u_1

          A type of fractions with a unique whole element.

          Instances
            class Iris.NumericFraction (α : Type u_1) extends One α, Add α, LE α, LT α :
            Type u_1

            Generic fractional instance for types with comparison and 1 operators.

            • one : α
            • add : ααα
            • le : ααProp
            • lt : ααProp
            • add_comm (a b : α) : a + b = b + a
            • add_assoc (a b c : α) : a + (b + c) = a + b + c
            • add_left_cancel {a b c : α} : a + b = a + cb = c
            • le_def {a b : α} : a b a = b a < b
            • lt_def {a b : α} : a < b (c : α), a + c = b
            • lt_irrefl {a : α} : ¬a < a
            Instances
              Equations
              Equations
              theorem Iris.le_rfl {α : Type u_1} [NumericFraction α] {a : α} :
              a a
              theorem Iris.lt_trans {α : Type u_1} [NumericFraction α] {a b c : α} :
              a < bb < ca < c
              theorem Iris.le_trans {α : Type u_1} [NumericFraction α] {a b c : α} :
              a bb ca c
              theorem Iris.add_le_mono {α : Type u_1} [NumericFraction α] {a b c : α} :
              a + b ca c
              theorem Iris.lt_le {α : Type u_1} [NumericFraction α] {a b : α} :
              a < ba b
              theorem Iris.add_ne_self {α : Type u_1} [NumericFraction α] {a b : α} :
              a + b a
              theorem Iris.not_add_lt_self {α : Type u_1} [NumericFraction α] {a b : α} :
              ¬a + b < a
              theorem Iris.not_add_le_self {α : Type u_1} [NumericFraction α] {a b : α} :
              ¬a + b a
              instance Iris.instUFraction {α : Type u_1} [NumericFraction α] :
              Equations
              • One or more equations did not get rendered due to their size.
              theorem Iris.Frac.inc_iff_lt {α : Type u_1} [NumericFraction α] {p q : Frac α} :
              p q p < q
              theorem Iris.Frac.le_of_inc {α : Type u_1} [NumericFraction α] {p q : Frac α} (H : p q) :
              p q