Documentation

WeightedNetKAT.EMatrix

def EMatrix (m : Type u_1) (n : Type u_2) (α : Type u_3) [Listed m] [Listed n] :
Type u_3
Equations
Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def EMatrix.getN {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] (M : EMatrix m n α) (i : Fin (Listed.size m)) (j : Fin (Listed.size n)) :
      α
      Equations
      Instances For
        def EMatrix.get {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] (M : EMatrix m n α) (i : m) (j : n) :
        α
        Equations
        Instances For
          def EMatrix.asNMatrix {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] (X : EMatrix m n α) :
          Equations
          Instances For
            def EMatrix.asNMatrix₂ {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {m' : Type u_6} {n' : Type u_7} [Listed m'] [Listed n'] (X : EMatrix m n (EMatrix m' n' α)) :
            Equations
            Instances For
              theorem EMatrix.eq_of_asNMatrix {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X X' : EMatrix m n α} (h : X.asNMatrix = X'.asNMatrix) :
              X = X'
              theorem EMatrix.ext_get {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X X' : EMatrix m n α} (h : ∀ (i : m) (j : n), X.get i j = X'.get i j) :
              X = X'
              theorem EMatrix.get_inj {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] :
              @[implicit_reducible]
              instance EMatrix.instFunLikeForall {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] :
              FunLike (EMatrix m n α) m (nα)
              Equations
              @[simp]
              theorem EMatrix.get_eq_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X : EMatrix m n α} {i : m} :
              X.get i = X i
              @[simp]
              theorem EMatrix.asNMatrix_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X : EMatrix m n α} {i : Fin (Listed.size m)} {j : Fin (Listed.size n)} :
              @[simp]
              theorem EMatrix.getN_eq {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X : EMatrix m n α} {i : Fin (Listed.size m)} {j : Fin (Listed.size n)} :
              theorem EMatrix.ext {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X X' : EMatrix m n α} (h : ∀ (i : m) (j : n), X i j = X' i j) :
              X = X'
              theorem EMatrix.ext_iff {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X X' : EMatrix m n α} :
              X = X' ∀ (i : m) (j : n), X i j = X' i j
              def EMatrix.ofFn {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] :
              (Fin (Listed.size m)Fin (Listed.size n)α)EMatrix m n α
              Equations
              Instances For
                def EMatrix.ofFnSlow {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] (f : mnα) :
                EMatrix m n α
                Equations
                Instances For
                  def EMatrix.ofNMatrix {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] (N : NMatrix (Listed.size m) (Listed.size n) α) :
                  EMatrix m n α
                  Equations
                  Instances For
                    @[simp]
                    theorem EMatrix.ofFn_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {f : Fin (Listed.size m)Fin (Listed.size n)α} {i : m} {j : n} :
                    @[simp]
                    theorem EMatrix.NMatrix_coe_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {M : EMatrix m n α} (i : m) (j : n) :
                    @[simp]
                    theorem EMatrix.NMatrix_ofFn_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] (i : m) (j : n) {f : Matrix (Fin (Listed.size m)) (Fin (Listed.size n)) α} :
                    @[simp]
                    theorem EMatrix.apply_ofFnSlow {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X : EMatrix m n α} :
                    ofFnSlow X = X
                    @[simp]
                    theorem EMatrix.ofFnSlow_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {f : mnα} {i : m} :
                    (ofFnSlow f) i = f i
                    def EMatrix.asMatrix {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] (M : EMatrix m n α) :
                    Matrix m n α
                    Equations
                    Instances For
                      def EMatrix.ofMatrix {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] (M : Matrix m n α) :
                      EMatrix m n α
                      Equations
                      Instances For
                        @[simp]
                        theorem EMatrix.ofMatrix_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {f : mnα} {i : m} :
                        (ofMatrix f) i = f i
                        @[simp]
                        theorem EMatrix.asMatrix_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {f : EMatrix m n α} {i : m} :
                        f.asMatrix i = f i
                        @[simp]
                        theorem EMatrix.asMatrix_apply₂ {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {f : EMatrix m n α} {i : m} {j : n} :
                        f.asMatrix i j = f i j
                        @[simp]
                        theorem EMatrix.asMatrix_ofMatrix {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X : EMatrix m n α} :
                        @[simp]
                        theorem EMatrix.ofMatrix_asMatrix {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {M : Matrix m n α} :
                        def EMatrix.map {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {β : Type u_8} (f : αβ) (M : EMatrix m n α) :
                        EMatrix m n β
                        Equations
                        Instances For
                          def EMatrix.asMatrix₂ {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {m' : Type u_6} {n' : Type u_7} [Listed m'] [Listed n'] (M : EMatrix m n (EMatrix m' n' α)) :
                          Matrix m n (Matrix m' n' α)
                          Equations
                          Instances For
                            def EMatrix.ofMatrix₂ {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {m' : Type u_6} {n' : Type u_7} [Listed m'] [Listed n'] (M : Matrix m n (Matrix m' n' α)) :
                            EMatrix m n (EMatrix m' n' α)
                            Equations
                            Instances For
                              @[simp]
                              theorem EMatrix.asMatrix₂_ofMatrix₂ {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {m' : Type u_6} {n' : Type u_7} [Listed m'] [Listed n'] {X : EMatrix m n (EMatrix m' n' α)} :
                              @[simp]
                              theorem EMatrix.ofMatrix₂_asMatrix₂ {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {m' : Type u_6} {n' : Type u_7} [Listed m'] [Listed n'] {M : Matrix m n (Matrix m' n' α)} :
                              theorem EMatrix.eq_ofMatrix {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X X' : EMatrix m n α} (h : X.asMatrix = X'.asMatrix) :
                              X = X'
                              @[implicit_reducible]
                              instance EMatrix.instOneOfZero {n : Type u_3} {α : Type u_5} [Listed n] [Zero α] [One α] :
                              One (EMatrix n n α)
                              Equations
                              @[implicit_reducible]
                              instance EMatrix.instZero {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] [Zero α] :
                              Zero (EMatrix m n α)
                              Equations
                              @[implicit_reducible]
                              instance EMatrix.instAdd {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] [Add α] :
                              Add (EMatrix m n α)
                              Equations
                              theorem EMatrix.add_def {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X X' : EMatrix m n α} [Add α] :
                              X + X' = X.asNMatrix + X'.asNMatrix
                              theorem EMatrix.one_def {n : Type u_3} {α : Type u_5} [Listed n] [Zero α] [One α] :
                              theorem EMatrix.zero_def {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] [Zero α] :
                              theorem EMatrix.one_apply {n : Type u_3} {α : Type u_5} [Listed n] [DecidableEq n] [Zero α] [One α] {i j : n} :
                              1 i j = if i = j then 1 else 0
                              @[simp]
                              theorem EMatrix.zero_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] [Zero α] {i : m} {j : n} :
                              0 i j = 0
                              @[simp]
                              theorem EMatrix.zero_apply' {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] [Zero α] {i : m} {j : n} :
                              (OfNat.ofNat 0) i j = 0
                              @[simp]
                              theorem EMatrix.zero_asMatrix {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] [Zero α] :
                              @[implicit_reducible]
                              instance EMatrix.instHSMulOfMul {α : Type u_5} [Mul α] {X : Type u_8} {Y : Type u_9} [Listed X] [Listed Y] :
                              HSMul α (EMatrix X Y α) (EMatrix X Y α)
                              Equations
                              @[implicit_reducible]
                              instance EMatrix.instHSMulMulOppositeOfMul {α : Type u_5} [Mul α] {X : Type u_8} {Y : Type u_9} [Listed X] [Listed Y] :
                              HSMul αᵐᵒᵖ (EMatrix X Y α) (EMatrix X Y α)
                              Equations
                              @[simp]
                              theorem EMatrix.NMatrix_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {M : Matrix (Fin (Listed.size m)) (Fin (Listed.size n)) α} {i : m} {j : n} :
                              @[simp]
                              theorem EMatrix.add_apply {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X X' : EMatrix m n α} [Add α] {i : m} {j : n} :
                              (X + X') i j = X i j + X' i j
                              @[simp]
                              theorem EMatrix.asMatrix_add {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] {X X' : EMatrix m n α} [Add α] :
                              @[implicit_reducible, defaultInstance 100]
                              instance EMatrix.instHMul {l : Type u_1} {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed l] [Listed m] [Listed n] [Mul α] [AddCommMonoid α] :
                              HMul (EMatrix l m α) (EMatrix m n α) (EMatrix l n α)
                              Equations
                              @[implicit_reducible]
                              instance EMatrix.instMul {m : Type u_2} {α : Type u_5} [Listed m] [Mul α] [AddCommMonoid α] :
                              Mul (EMatrix m m α)
                              Equations
                              @[simp]
                              theorem EMatrix.hmul_eq_hmul {m : Type u_2} {α : Type u_5} [Listed m] [Mul α] [AddCommMonoid α] :
                              @[implicit_reducible]
                              instance EMatrix.instAddCommMonoid {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] [AddCommMonoid α] :
                              Equations
                              • One or more equations did not get rendered due to their size.
                              @[implicit_reducible, defaultInstance 100]
                              instance EMatrix.instSemiring {n : Type u_3} {α : Type u_5} [Listed n] [Semiring α] :
                              Semiring (EMatrix n n α)
                              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]
                              instance EMatrix.instOrderBot {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed m] [Listed n] [OmegaCompletePartialOrder α] [OrderBot α] :
                              OrderBot (EMatrix m n α)
                              Equations
                              theorem EMatrix.mul_def {l : Type u_1} {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed l] [Listed m] [Listed n] {X : EMatrix m n α} {Y : EMatrix n l α} [Mul α] [AddCommMonoid α] :
                              theorem EMatrix.mul_apply {l : Type u_1} {m : Type u_2} {n : Type u_3} {α : Type u_5} [Listed l] [Listed m] [Listed n] {X : EMatrix m n α} {Y : EMatrix n l α} [Fintype n] [Mul α] [AddCommMonoid α] {a : m} {b : l} :
                              (X * Y) a b = c : n, X a c * Y c b
                              theorem EMatrix.mul_assoc {l : Type u_1} {m : Type u_2} {n : Type u_3} {w : Type u_4} {α : Type u_5} [Listed l] [Listed m] [Listed n] [Listed w] {X : EMatrix m n α} {Y : EMatrix n l α} {Z : EMatrix l w α} [NonUnitalSemiring α] :
                              X * Y * Z = X * (Y * Z)
                              @[simp]
                              theorem EMatrix.NMatrix.map_apply {m n : } {𝒮 : Type u_8} {𝒮' : Type u_9} {f : NMatrix m n 𝒮} {g : 𝒮𝒮'} {i : Fin m} {j : Fin n} :
                              (f.map g) i j = g (f i j)
                              @[simp]
                              theorem EMatrix.NMatrix.ofFn_map {m n : } {𝒮 : Type u_8} {𝒮' : Type u_9} {f : Fin mFin n𝒮} {g : 𝒮𝒮'} :
                              (NMatrix.ofFn f).map g = NMatrix.ofFn fun (i : Fin m) (j : Fin n) => g (f i j)
                              @[simp]
                              theorem EMatrix.ofFn_asMatrix {m : Type u_8} {n : Type u_9} {𝒮 : Type u_10} [Listed m] [Listed n] {f : Fin (Listed.size m)Fin (Listed.size n)𝒮} :
                              (ofFn f).asMatrix = fun (i : m) (j : n) => f (Listed.encodeFin i) (Listed.encodeFin j)
                              @[simp]
                              theorem EMatrix.map_apply {m : Type u_8} {n : Type u_9} {𝒮 : Type u_10} {𝒮' : Type u_11} [Listed m] [Listed n] {f : EMatrix m n 𝒮} {g : 𝒮𝒮'} {i : m} {j : n} :
                              (map g f) i j = g (f i j)
                              @[simp]
                              theorem EMatrix.map_asMatrix {m : Type u_8} {n : Type u_9} {𝒮 : Type u_10} {𝒮' : Type u_11} [Listed m] [Listed n] {f : EMatrix m n 𝒮} {g : 𝒮𝒮'} {i : m} {j : n} :
                              (map g f).asMatrix i j = g (f.asMatrix i j)
                              @[simp]
                              theorem EMatrix.ofMatrix₂_apply {m : Type u_8} {m' : Type u_9} {n : Type u_10} {n' : Type u_11} {𝒮 : Type u_12} [Listed m] [Listed n] [Listed m'] [Listed n'] {M : Matrix m n (Matrix m' n' 𝒮)} {i : m} {j : n} :
                              (ofMatrix₂ M) i j = ofMatrix (M i j)
                              @[simp]
                              theorem EMatrix.toMatrix₂_ofMatrix₂ {m : Type u_8} {m' : Type u_9} {n : Type u_10} {n' : Type u_11} {𝒮 : Type u_12} [Listed m] [Listed n] [Listed m'] [Listed n'] {M : EMatrix m n (EMatrix m' n' 𝒮)} :
                              @[simp]
                              theorem EMatrix.ofMatrix_add {m : Type u_8} {n : Type u_9} {𝒮 : Type u_10} [Listed m] [Listed n] [Add 𝒮] (a b : Matrix m n 𝒮) :
                              @[simp]
                              theorem EMatrix.ofMatrix_sum {m : Type u_8} {n : Type u_9} {𝒮 : Type u_10} [Listed m] [Listed n] [AddCommMonoid 𝒮] {ι : Type u_11} {S : Finset ι} [DecidableEq ι] (f : ιMatrix n m 𝒮) :
                              ofMatrix (∑ iS, f i) = iS, ofMatrix (f i)
                              @[simp]
                              theorem EMatrix.ofMatrix_pow {m : Type u_8} {𝒮 : Type u_9} [Listed m] [Semiring 𝒮] [DecidableEq m] [Fintype m] (M : Matrix m m 𝒮) (i : ) :
                              ofMatrix (M ^ i) = ofMatrix M ^ i
                              @[simp]
                              theorem EMatrix.sum_apply {m : Type u_8} {n : Type u_9} {𝒮 : Type u_10} [Listed m] [Listed n] [AddCommMonoid 𝒮] {ι : Type u_11} {S : Finset ι} (f : ιEMatrix m n 𝒮) {x : m} {y : n} :
                              (∑ iS, f i) x y = iS, (f i) x y
                              @[simp]
                              theorem EMatrix.asMatrix_sum {m : Type u_8} {n : Type u_9} {𝒮 : Type u_10} [Listed m] [Listed n] [AddCommMonoid 𝒮] {ι : Type u_11} {S : Finset ι} (f : ιEMatrix m n 𝒮) :
                              (∑ iS, f i).asMatrix = iS, (f i).asMatrix
                              @[simp]
                              theorem EMatrix.ωSum_apply {m : Type u_8} {n : Type u_9} {𝒮 : Type u_10} [Listed m] [Listed n] [AddCommMonoid 𝒮] {ι : Type u_11} [Countable ι] [OmegaCompletePartialOrder 𝒮] [OrderBot 𝒮] [IsPositiveOrderedAddMonoid 𝒮] (f : ιEMatrix m n 𝒮) {x : m} {y : n} :
                              (ω∑ (i : ι), f i) x y = ω∑ (i : ι), (f i) x y
                              @[simp]
                              theorem EMatrix.asMatrix_ωSum {m : Type u_8} {n : Type u_9} {𝒮 : Type u_10} [Listed m] [Listed n] [AddCommMonoid 𝒮] {ι : Type u_11} [Countable ι] [OmegaCompletePartialOrder 𝒮] [OrderBot 𝒮] [IsPositiveOrderedAddMonoid 𝒮] (f : ιEMatrix m n 𝒮) :
                              (ω∑ (i : ι), f i).asMatrix = ω∑ (i : ι), (f i).asMatrix
                              @[simp]
                              theorem EMatrix.asMatrix_ωSum' {m : Type u_8} {n : Type u_9} {𝒮 : Type u_10} [Listed m] [Listed n] [AddCommMonoid 𝒮] {ι : Type u_11} [Countable ι] [OmegaCompletePartialOrder 𝒮] [OrderBot 𝒮] [IsPositiveOrderedAddMonoid 𝒮] (f : ιNMatrix (Listed.size m) (Listed.size n) 𝒮) :
                              asMatrix (ω∑ (i : ι), f i) = ω∑ (i : ι), asMatrix (f i)