Documentation

LeanPool.Koethe.Linearization.Basic

Finite homogeneous-linear systems #

A system has a distinguished input, finitely many internal states, and an output row. Its coefficients are linear combinations of the three generators, with no scalar/identity edges. Represents is the elimination property of the internal system. We construct this property directly, without needing a matrix inverse or a nilpotence assumption on the ambient algebra.

noncomputable def KoetheCounterexample.Linearization.edge {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] (a : Fin 3R) (c : Triple k) :

Evaluate one homogeneous-linear edge, as a constant polynomial.

Equations
Instances For
    @[simp]
    theorem KoetheCounterexample.Linearization.edge_zero {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] (a : Fin 3R) :
    edge a 0 = 0
    @[simp]
    theorem KoetheCounterexample.Linearization.edge_add {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] (a : Fin 3R) (c d : Triple k) :
    edge a (c + d) = edge a c + edge a d
    @[simp]
    theorem KoetheCounterexample.Linearization.edge_smul {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] (a : Fin 3R) (r : k) (c : Triple k) :
    edge a (r c) = Polynomial.C ((algebraMap k R) r) * edge a c

    Coefficients selecting just one letter.

    Equations
    Instances For
      @[simp]
      theorem KoetheCounterexample.Linearization.edge_letter {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] (a : Fin 3R) (i : Fin 3) :
      structure KoetheCounterexample.Linearization.System (k : Type u) [Field k] :
      Type (max 1 u)

      A finite homogeneous-linear system. The root is not among State.

      • State : Type

        The internal states.

      • fintype : Fintype self.State

        The states are finitely many.

      • decEq : DecidableEq self.State

        Equality of states is decidable.

      • head : Triple k

        The coefficient of the input in the output row.

      • out : self.StateTriple k

        The coefficient of each internal state in the output row.

      • input : self.StateTriple k

        The coefficient of the input in each internal equation.

      • step : self.Stateself.StateTriple k

        The coefficient of each internal state in each internal equation.

      Instances For
        def KoetheCounterexample.Linearization.Represents {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] (S : System k) (a : Fin 3R) (x : R) :

        Every solution of the internal equations gives the specified output. All equations take place in the polynomial ring over the possibly noncommutative algebra R.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def KoetheCounterexample.Linearization.Linearizable {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] (a : Fin 3R) (x : R) :

          The elements admitting one of these finite linearizations.

          Equations
          Instances For

            A single homogeneous-linear output, with no internal states.

            Equations
            Instances For

              Disjoint union of systems, adding their output rows.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Only the output row is scaled.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  Prepend a generator: a new internal state computes the old output, and one generator edge joins the new output to that state.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem KoetheCounterexample.Linearization.System.sum_atom_state {k : Type u} [Field k] {M : Type u_1} [AddCommMonoid M] (c : Triple k) (g : (atom c).StateM) :
                    j : (atom c).State, g j = 0

                    A sum over the (empty) state type of an atom vanishes.

                    theorem KoetheCounterexample.Linearization.System.sum_add_state {k : Type u} [Field k] {M : Type u_1} [AddCommMonoid M] (S T : System k) (g : (S.add T).StateM) :
                    j : (S.add T).State, g j = j : S.State, g (Sum.inl j) + j : T.State, g (Sum.inr j)

                    A sum over the states of S.add T splits into the two summands.

                    theorem KoetheCounterexample.Linearization.System.sum_prepend_state {k : Type u} [Field k] {M : Type u_1} [AddCommMonoid M] (i : Fin 3) (S : System k) (g : (prepend i S).StateM) :
                    j : (prepend i S).State, g j = g none + j : S.State, g (some j)

                    A sum over the states of S.prepend i isolates the new state.

                    @[simp]
                    theorem KoetheCounterexample.Linearization.represents_atom {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] (a : Fin 3R) (c : Triple k) :
                    Represents (System.atom c) a (∑ i : Fin 3, (algebraMap k R) (c i) * a i)
                    theorem KoetheCounterexample.Linearization.linearizable_letter {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] (a : Fin 3R) (i : Fin 3) :
                    Linearizable a (a i)
                    theorem KoetheCounterexample.Linearization.Represents.add {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] {S T : System k} {a : Fin 3R} {x y : R} (hS : Represents S a x) (hT : Represents T a y) :
                    Represents (S.add T) a (x + y)
                    theorem KoetheCounterexample.Linearization.Represents.smul {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] {S : System k} {a : Fin 3R} {x : R} (hS : Represents S a x) (r : k) :
                    Represents (System.smul r S) a (r x)
                    theorem KoetheCounterexample.Linearization.Represents.prepend {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] {S : System k} {a : Fin 3R} {x : R} (hS : Represents S a x) (i : Fin 3) :
                    Represents (System.prepend i S) a (a i * x)
                    theorem KoetheCounterexample.Linearization.linearizable_add {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] {a : Fin 3R} {x y : R} (hx : Linearizable a x) (hy : Linearizable a y) :
                    Linearizable a (x + y)
                    theorem KoetheCounterexample.Linearization.linearizable_smul {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] {a : Fin 3R} {x : R} (hx : Linearizable a x) (r : k) :
                    theorem KoetheCounterexample.Linearization.linearizable_prepend {k : Type u} [Field k] {R : Type v} [Ring R] [Algebra k R] {a : Fin 3R} {x : R} (hx : Linearizable a x) (i : Fin 3) :
                    Linearizable a (a i * x)