Documentation

MathematicalLogic.Part

theorem Part.dom_of_mem {α : Type u_1} {a : α} {o : Part α} (h : a o) :
o.Dom
def Part.bindVec {α : Type u_1} {n : } (v : Vec (Part α) n) :
Part (Vec α n)
Equations
Instances For
    @[simp]
    theorem Part.bindVec_dom {α✝ : Type u_1} {n✝ : } {v : Vec (Part α✝) n✝} :
    (bindVec v).Dom ∀ (i : Fin n✝), (v i).Dom
    @[simp]
    theorem Part.mem_bindVec_iff {α✝ : Type u_1} {n✝ : } {w : Vec (Part α✝) n✝} {v : Vec α✝ n✝} :
    v bindVec w ∀ (i : Fin n✝), v i w i
    @[simp]
    theorem Part.bindVec_get {α✝ : Type u_1} {n✝ : } {v : Vec (Part α✝) n✝} {h : (bindVec v).Dom} :
    (bindVec v).get h = fun (i : Fin n✝) => (v i).get
    theorem Part.bindVec_some {α✝ : Type u_1} {n✝ : } {v : Vec α✝ n✝} :
    (bindVec fun (i : Fin n✝) => some (v i)) = some v
    @[simp]
    theorem Part.bindVec_nil {α : Type u_1} {v : Vec (Part α) 0} :
    theorem Part.bindVec_cons {α : Type u_1} {n : } {v : Vec (Part α) (n + 1)} :
    bindVec v = do let av.head let wbindVec v.tail some (a ∷ᵥ w)
    @[simp]
    theorem Part.bindVec_1 {α : Type u_1} {v : Vec (Part α) 1} :
    bindVec v = do let av 0 some [a]ᵥ
    @[simp]
    theorem Part.bindVec_2 {α : Type u_1} {v : Vec (Part α) 2} :
    bindVec v = do let av 0 let bv 1 some [a, b]ᵥ
    @[simp]
    theorem Part.bindVec_3 {α : Type u_1} {v : Vec (Part α) 3} :
    bindVec v = do let av 0 let bv 1 let cv 2 some [a, b, c]ᵥ
    def Part.natrec {α : Type u_1} (a : Part α) (f : α →. α) (n : ) :
    Part α
    Equations
    Instances For
      theorem Part.natrec_zero {α✝ : Type u_1} {a : Part α✝} {f : α✝ →. α✝} :
      a.natrec f 0 = a
      theorem Part.natrec_succ {α✝ : Type u_1} {a : Part α✝} {f : α✝ →. α✝} {n : } :
      a.natrec f (n + 1) = do let aa.natrec f n f n a
      theorem Part.natrec_dom_le {α✝ : Type u_1} {a : Part α✝} {f : α✝ →. α✝} {n k : } :
      (a.natrec f n).Domk n(a.natrec f k).Dom
      @[instance 10000]
      Equations
      • One or more equations did not get rendered due to their size.
      theorem Part.le_iff {α : Type u} [PartialOrder α] {x y : Part α} :
      x y ax, by, a b
      theorem Part.lt_iff {α : Type u} [PartialOrder α] {x y : Part α} :
      x < y by, ax, a < b
      @[simp]
      theorem Part.none_le {α : Type u} [PartialOrder α] {x : Part α} :
      @[simp]
      theorem Part.none_lt_some {α : Type u} [PartialOrder α] {a : α} :
      @[simp]
      theorem Part.some_le_some_iff {α : Type u} [PartialOrder α] {a b : α} :
      some a some b a b
      @[simp]
      theorem Part.some_lt_some_iff {α : Type u} [PartialOrder α] {a b : α} :
      some a < some b a < b
      theorem Part.some_le_iff {α : Type u} [PartialOrder α] {x : Part α} {a : α} :
      some a x bx, a b
      theorem Part.some_lt_iff {α : Type u} [PartialOrder α] {x : Part α} {a : α} :
      some a < x bx, a < b
      @[simp]
      theorem Part.zero_lt_some_iff {α : Type u} [PartialOrder α] {a : α} [Zero α] :
      0 < some a 0 < a
      theorem Part.pos_iff {α : Type u} [PartialOrder α] {x : Part α} [Zero α] :
      0 < x ax, 0 < a
      theorem Part.pos_iff_get {α : Type u} [PartialOrder α] {x : Part α} [Zero α] (h : x.Dom) :
      0 < x 0 < x.get h
      theorem Part.dom_of_pos {α : Type u} [PartialOrder α] {x : Part α} [Zero α] (h : 0 < x) :
      x.Dom
      @[simp]
      theorem Part.bind_pos_iff {α : Type u} [PartialOrder α] [Zero α] {β : Type u_1} {a : Part β} {f : βPart α} :
      0 < a.bind f xa, 0 < f x
      theorem Part.zero_or_pos_of_dom {a : Part } (h : a.Dom) :
      0 < a 0 a
      theorem Part.not_pos_iff_of_dom {a : Part } (h : a.Dom) :
      ¬0 < a 0 a
      @[irreducible]
      def Part.find_aux (f : →. ) (h : ∃ (n : ), 0 < f n k < n, (f k).Dom) (n : ) (ih : k < n, 0 f k) :
      { n : // 0 < f n k < n, 0 f k }
      Equations
      Instances For
        Equations
        Instances For
          theorem Part.mem_find_iff {f : →. } {n : } :
          n find f 0 < f n k < n, 0 f k
          theorem Part.find_dom {f : →. } :
          (find f).Dom ∃ (n : ), 0 < f n k < n, (f k).Dom