Documentation

Flypitch.Compat.Core

Flypitch.Compat.Core collects small compatibility definitions that emulate the dependent-vector utilities used by the original development. They provide the lightweight data structures and arity helpers that the first-order syntax layer builds on.

theorem Flypitch.Function.Injective.ne_iff {α : Sort u_1} {β : Sort u_2} {f : αβ} (hf : Function.Injective f) {a₁ a₂ : α} :
f a₁ f a₂ a₁ a₂
inductive Flypitch.dvector (α : Type u) :
Type u
Instances For
    inductive Flypitch.dfin :
    Type
    Instances For
      @[implicit_reducible]
      Equations
      theorem Flypitch.dvector.zero_eq {α : Type u} (xs : dvector α 0) :
      xs = nil
      def Flypitch.dvector.nth {α : Type u} {n : } (xs : dvector α n) (m : ) :
      m < nα
      Equations
      Instances For
        @[simp]
        theorem Flypitch.dvector.nth_cons {α : Type u} {n : } (x : α) (xs : dvector α n) (m : ) (h : m < n) :
        (cons x xs).nth (m + 1) = xs.nth m h
        @[reducible]
        def Flypitch.dvector.last {α : Type u} {n : } (xs : dvector α (n + 1)) :
        α
        Equations
        Instances For
          def Flypitch.dvector.nth' {α : Type u} {n : } (xs : dvector α n) (m : Fin n) :
          α
          Equations
          Instances For
            def Flypitch.dvector.nth'' {α : Type u} {n : } :
            dvector α ndfin nα
            Equations
            Instances For
              @[implicit_reducible]
              instance Flypitch.dvector.instMembership {α : Type u} {n : } :
              Equations
              theorem Flypitch.dvector.mem_of_pmem {α : Type u} {x : α} {n : } {xs : dvector α n} :
              ∀ (a : pmem x xs), x xs
              theorem Flypitch.dvector.map_congr_pmem {α : Type u} {β : Type v} {f g : αβ} {n : } {xs : dvector α n} (h : ∀ (x : α) (a : pmem x xs), f x = g x) :
              map f xs = map g xs
              theorem Flypitch.dvector.map_congr_mem {α : Type u} {β : Type v} {f g : αβ} {n : } {xs : dvector α n} (h : ∀ (x : α), x xsf x = g x) :
              map f xs = map g xs
              @[simp]
              theorem Flypitch.dvector.map_id {α : Type u} {n : } (xs : dvector α n) :
              map (fun (x : α) => x) xs = xs
              @[simp]
              theorem Flypitch.dvector.map_map {α : Type u} {β : Type v} {γ : Type w} (g : βγ) (f : αβ) {n : } (xs : dvector α n) :
              map g (map f xs) = map (fun (x : α) => g (f x)) xs
              @[simp]
              theorem Flypitch.dvector.map_nth {α : Type u} {β : Type v} (f : αβ) {n : } (xs : dvector α n) (m : ) (h : m < n) :
              (map f xs).nth m h = f (xs.nth m h)
              def Flypitch.arity' (α β : Type u) :
              Type u

              The type α → (α → ... (α → β)...) with n copies of α.

              Equations
              Instances For
                def Flypitch.arity'.constant {α β : Type u} {n : } :
                βarity' α β n
                Equations
                Instances For
                  def Flypitch.arity'.app {α β : Type u} {l : } :
                  arity' α β ldvector α lβ
                  Equations
                  Instances For
                    @[simp]
                    theorem Flypitch.arity'.app_zero {α β : Type u} (f : arity' α β 0) (xs : dvector α 0) :
                    f.app xs = f
                    def Flypitch.arity'.postcompose {α β γ : Type u} (g : βγ) {n : } :
                    arity' α β narity' α γ n
                    Equations
                    Instances For
                      def Flypitch.arity'.precompose {α β γ : Type u} {n : } :
                      arity' β γ n(αβ)arity' α γ n
                      Equations
                      Instances For