Documentation

Foundation.Vorspiel.Matrix

@[simp]
theorem Matrix.vecCons_zero {α✝ : Type u_1} {a : α✝} {n✝ : } {s : Fin n✝α✝} :
(a :> s) 0 = a
@[simp]
theorem Matrix.vecCons_succ {n : } {α✝ : Type u_1} {a : α✝} {s : Fin nα✝} (i : Fin n) :
(a :> s) i.succ = s i
@[simp]
theorem Matrix.vecCons_last {n : } {C : Type u_1} (a : C) (s : Fin (n + 1)C) :
(a :> s) (Fin.last (n + 1)) = s (Fin.last n)
def Matrix.vecConsLast {α : Type u} {n : } (t : Fin nα) (h : α) :
Fin n.succα
Equations
Instances For
    @[simp]
    theorem Matrix.cons_app_one {α : Type u} {n : } (a : α) (s : Fin n.succα) :
    (a :> s) 1 = s 0
    @[simp]
    theorem Matrix.cons_app_two {α : Type u} {n : } (a : α) (s : Fin n.succ.succα) :
    (a :> s) 2 = s 1
    @[simp]
    theorem Matrix.cons_app_three {α : Type u} {n : } (a : α) (s : Fin n.succ.succ.succα) :
    (a :> s) 3 = s 2
    @[simp]
    theorem Matrix.cons_app_four {α : Type u} {n : } (a : α) (s : Fin n.succ.succ.succ.succα) :
    (a :> s) 4 = s 3
    @[simp]
    theorem Matrix.cons_app_five {α : Type u} {n : } (a : α) (s : Fin n.succ.succ.succ.succ.succα) :
    (a :> s) 5 = s 4
    @[simp]
    theorem Matrix.cons_app_six {α : Type u} {n : } (a : α) (s : Fin n.succ.succ.succ.succ.succ.succα) :
    (a :> s) 6 = s 5
    @[simp]
    theorem Matrix.cons_app_seven {α : Type u} {n : } (a : α) (s : Fin n.succ.succ.succ.succ.succ.succ.succα) :
    (a :> s) 7 = s 6
    @[simp]
    theorem Matrix.cons_app_eight {α : Type u} {n : } (a : α) (s : Fin n.succ.succ.succ.succ.succ.succ.succ.succα) :
    (a :> s) 8 = s 7
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem Matrix.rightConcat_last {n : } {α✝ : Type u_1} {s : Fin nα✝} {a : α✝} :
        (s <: a) (Fin.last n) = a
        @[simp]
        theorem Matrix.rightConcat_castSucc {n : } {α✝ : Type u_1} {s : Fin nα✝} {a : α✝} (i : Fin n) :
        (s <: a) i.castSucc = s i
        @[simp]
        theorem Matrix.rightConcat_zero {n : } {α : Type u} (a : α) (s : Fin n.succα) :
        (s <: a) 0 = s 0
        @[simp]
        @[simp]
        theorem Matrix.zero_cons_succ_eq_self {n : } {α : Type u} (f : Fin (n + 1)α) :
        (f 0 :> fun (x : Fin n) => f x.succ) = f
        theorem Matrix.eq_vecCons {n : } {C : Type u_1} (s : Fin (n + 1)C) :
        s 0 :> s Fin.succ = s
        theorem Matrix.eq_vecCons' {n : } {C : Type u_1} (s : Fin (n + 1)C) :
        (s 0 :> fun (x : Fin n) => s x.succ) = s
        @[simp]
        theorem Matrix.vecCons_ext {n : } {α : Type u} (a₁ a₂ : α) (s₁ s₂ : Fin nα) :
        a₁ :> s₁ = a₂ :> s₂ a₁ = a₂ s₁ = s₂
        theorem Matrix.vecCons_assoc {n : } {α : Type u} (a b : α) (s : Fin nα) :
        a :> s <: b = (a :> s) <: b
        def Matrix.decVec {α : Type u_1} {n : } (v w : Fin nα) :
        ((i : Fin n) → Decidable (v i = w i))Decidable (v = w)
        Equations
        Instances For
          theorem Matrix.comp_vecCons {n : } {α : Type u} {β : Type u_1} (f : αβ) (a : α) (s : Fin nα) :
          (fun (x : Fin n.succ) => f ((a :> s) x)) = f a :> f s
          theorem Matrix.comp_vecCons' {n : } {α : Type u} {β : Type u_1} (f : αβ) (a : α) (s : Fin nα) :
          (fun (x : Fin n.succ) => f ((a :> s) x)) = f a :> fun (i : Fin n) => f (s i)
          theorem Matrix.comp_vecCons'' {n : } {α : Type u} {β : Type u_1} (f : αβ) (a : α) (s : Fin nα) :
          f (a :> s) = f a :> f s
          theorem Matrix.comp_vecCons₂' {n : } {α : Type u} {β : Sort u_1} {γ : Type u_2} (g : βγ) (f : αβ) (a : α) (s : Fin nα) :
          (fun (x : Fin n.succ) => g (f ((a :> s) x))) = g (f a) :> fun (i : Fin n) => g (f (s i))
          @[simp]
          theorem Matrix.comp₀ {α : Type u} {δ✝ : Type u_1} {f : αδ✝} :
          @[simp]
          theorem Matrix.comp₁ {α : Type u} {δ✝ : Type u_1} {f : αδ✝} (a : α) :
          f ![a] = ![f a]
          @[simp]
          theorem Matrix.comp₂ {α : Type u} {δ✝ : Type u_1} {f : αδ✝} (a₁ a₂ : α) :
          f ![a₁, a₂] = ![f a₁, f a₂]
          @[simp]
          theorem Matrix.comp₃ {α : Type u} {δ✝ : Type u_1} {f : αδ✝} (a₁ a₂ a₃ : α) :
          f ![a₁, a₂, a₃] = ![f a₁, f a₂, f a₃]
          @[simp]
          theorem Matrix.comp₄ {α : Type u} {δ✝ : Type u_1} {f : αδ✝} (a₁ a₂ a₃ a₄ : α) :
          f ![a₁, a₂, a₃, a₄] = ![f a₁, f a₂, f a₃, f a₄]
          theorem Matrix.comp_vecConsLast {n : } {α : Type u} {β : Type u_1} (f : αβ) (a : α) (s : Fin nα) :
          (fun (x : Fin n.succ) => f ((s <: a) x)) = f s <: f a
          @[simp]
          theorem Matrix.vecHead_comp {n : } {α : Type u} {β : Type u_1} (f : αβ) (v : Fin (n + 1)α) :
          vecHead (f v) = f (vecHead v)
          @[simp]
          theorem Matrix.vecTail_comp {n : } {α : Type u} {β : Type u_1} (f : αβ) (v : Fin (n + 1)α) :
          vecTail (f v) = f vecTail v
          theorem Matrix.vecConsLast_vecEmpty {α : Type u} {s : Fin 0α} (a : α) :
          s <: a = ![a]
          theorem Matrix.constant_eq_singleton {α : Type u} {a : α} :
          (fun (x : Fin (Nat.succ 0)) => a) = ![a]
          theorem Matrix.fun_eq_vec_one {α : Type u} (v : Fin 1α) :
          v = ![v 0]
          theorem Matrix.constant_eq_vec₂ {α : Type u} {a : α} :
          (fun (x : Fin (Nat.succ 0).succ) => a) = ![a, a]
          theorem Matrix.fun_eq_vec_two {α : Type u} (v : Fin 2α) :
          v = ![v 0, v 1]
          theorem Matrix.fun_eq_vec_three {α : Type u} (v : Fin 3α) :
          v = ![v 0, v 1, v 2]
          theorem Matrix.fun_eq_vec_four {α : Type u} (v : Fin 4α) :
          v = ![v 0, v 1, v 2, v 3]
          theorem Matrix.fun_eq_vec_four' {α : Type u} {β : Type u_1} (f : αβ) (v : Fin 4α) :
          f v = ![f (v 0), f (v 1), f (v 2), f (v 3)]
          theorem Matrix.injective_vecCons {n : } {α : Type u} {f : Fin nα} (h : Function.Injective f) {a : α} (ha : ∀ (i : Fin n), a f i) :
          @[simp]
          theorem Matrix.vecCons_empty_eq_singleton {α : Type u} (v : Fin 0α) (x : α) :
          x :> v = ![x]
          @[simp]
          theorem Matrix.vecConsLast_empty_eq_singleton {α : Type u} (v : Fin 0α) (x : α) :
          v <: x = ![x]
          def Matrix.toList {α : Type u_1} {n : } :
          (Fin nα)List α
          Equations
          Instances For
            @[simp]
            theorem Matrix.toList_zero {α : Type u_1} (v : Fin 0α) :
            @[simp]
            theorem Matrix.toList_succ {α : Type u_1} {n : } (v : Fin (n + 1)α) :
            @[simp]
            theorem Matrix.toList_length {α : Type u_1} {n : } (v : Fin nα) :
            @[simp]
            theorem Matrix.mem_toList_iff {α : Type u_1} {n : } {v : Fin nα} {a : α} :
            a toList v ∃ (i : Fin n), v i = a
            def Matrix.getM {m : Type u → Type v} [Monad m] {n : } {β : Fin nType u} :
            ((i : Fin n) → m (β i))m ((i : Fin n) → β i)
            Equations
            Instances For
              theorem Matrix.getM_pure {m : Type u → Type v} [Monad m] [LawfulMonad m] {n : } {β : Fin nType u} (v : (i : Fin n) → β i) :
              (getM fun (i : Fin n) => pure (v i)) = pure v
              @[simp]
              theorem Matrix.getM_some {n : } {β : Fin nType u} (v : (i : Fin n) → β i) :
              (getM fun (i : Fin n) => some (v i)) = some v
              def Matrix.appendr {α : Type w} {n m : } (v : Fin nα) (w : Fin mα) :
              Fin (m + n)α
              Equations
              Instances For
                @[simp]
                theorem Matrix.appendr_nil {α : Type w} {m : } (w : Fin mα) :
                @[simp]
                theorem Matrix.appendr_cons {α : Type w} {m n : } (x : α) (v : Fin nα) (w : Fin mα) :
                appendr (x :> v) w = x :> appendr v w
                theorem Matrix.vecForall_iff {α : Type w} {n : } (φ : (Fin (n + 1)α)Prop) :
                (∀ (v : Fin (n + 1)α), φ v) ∀ (a : α) (v : Fin nα), φ (a :> v)
                theorem Matrix.vecExists_iff {α : Type w} {n : } (φ : (Fin (n + 1)α)Prop) :
                (∃ (v : Fin (n + 1)α), φ v) ∃ (a : α) (v : Fin nα), φ (a :> v)
                def Matrix.foldr {α : Type w} {β : Type u} (f : αββ) (init : β) {k : } :
                (Fin kα)β
                Equations
                Instances For
                  def Matrix.vecMap {α : Type w} {β : Type u} {k : } (f : αβ) :
                  (Fin kα)Fin kβ
                  Equations
                  Instances For
                    @[simp]
                    theorem Matrix.vecMap_nil {α : Type w} {β : Type u} (f : αβ) (v : Fin 0α) :
                    f v = ![]
                    @[simp]
                    theorem Matrix.vecMap_cons {α : Type w} {β : Type u} (f : αβ) {k : } (a : α) (v : Fin kα) :
                    f (a :> v) = f a :> f v
                    @[simp]
                    theorem Matrix.vecMap_cons' {α : Type w} {β : Type u} (f : αβ) {k : } (v : Fin (k + 1)α) :
                    f v = f (vecHead v) :> f (vecTail v)
                    @[simp]
                    theorem Matrix.vecMap_app {α : Type w} {β : Type u} (f : αβ) {k : } (v : Fin kα) (i : Fin k) :
                    f v i = f (v i)
                    theorem Matrix.vecMap_vecMap_comp {α : Type w} {β : Type u} {γ : Type u_1} {k : } (g : βγ) (f : αβ) (v : Fin kα) :
                    g (f v) = (g f) v
                    theorem Matrix.vecMap_vecMap_comp' {α : Type w} {β : Type u} {γ : Type u_1} {k : } (g : βγ) (f : αβ) (v : Fin kα) :
                    g (f v) = (fun (x : α) => g (f x)) v
                    @[simp]
                    theorem Matrix.foldr_zero {α : Type w} {β : Type u} (f : αββ) (init : β) (v : Fin 0α) :
                    foldr f init v = init
                    @[simp]
                    theorem Matrix.foldr_succ {α : Type w} {β : Type u} (f : αββ) (init : β) {k : } (v : Fin (k + 1)α) :
                    foldr f init v = f (vecHead v) (foldr f init (vecTail v))
                    def Matrix.foldl {α : Type w} {β : Type u} (f : αβα) (init : α) {k : } :
                    (Fin kβ)α
                    Equations
                    Instances For
                      @[simp]
                      theorem Matrix.foldl_zero {α : Type w} {β : Type u} (f : αβα) (init : α) (v : Fin 0β) :
                      foldl f init v = init
                      @[simp]
                      theorem Matrix.foldl_succ {α : Type w} {β : Type u} (f : αβα) (init : α) {k : } (v : Fin (k + 1)β) :
                      foldl f init v = foldl f (f init (vecHead v)) (vecTail v)
                      theorem Matrix.eq_iff_eq_vecHead_of_eq_vecTail {α : Type w} {n : } {v₁ v₂ : Fin (n + 1)α} :
                      vecHead v₁ = vecHead v₂ vecTail v₁ = vecTail v₂ v₁ = v₂
                      def Matrix.vecToNat {n : } (v : Fin n) :
                      Equations
                      Instances For
                        @[simp]
                        theorem Matrix.vecToNat_empty (v : Fin 0) :
                        @[simp]
                        theorem Matrix.encode_succ {n : } (x : ) (v : Fin n) :
                        vecToNat (x :> v) = Nat.pair x (vecToNat v) + 1
                        @[simp]
                        theorem Matrix.appeendr_addCast {α : Type w} {m n : } (u : Fin mα) (v : Fin nα) (i : Fin m) :
                        appendr u v (Fin.addCast n i) = u i
                        @[simp]
                        theorem Matrix.appeendr_addNat {α : Type w} {m n : } (u : Fin mα) (v : Fin nα) (i : Fin n) :
                        appendr u v (i.addNat m) = v i