Documentation

Isotope.SExp.Defs

inductive Isotope.SExp2 (A : Type ua) :
Type ua
Instances For
    inductive Isotope.SExp (A : Type ua) :
    Type ua
    Instances For
      @[implicit_reducible]
      instance Isotope.SExp.instCoe {A : Type ua} :
      Coe A (SExp A)
      Equations
      def Isotope.SExp.parL {A : Type ua} (es : List (SExp A)) :
      Equations
      Instances For
        @[implicit_reducible]
        Equations
        @[implicit_reducible]
        Equations
        theorem Isotope.SExp.par_congr {A : Type ua} {length length' : } (h : length = length') {es : Fin lengthSExp A} {es' : Fin length'SExp A} (hes : ∀ (i : Fin length), es i = es' (Fin.cast h i)) :
        par es = par es'
        theorem Isotope.SExp.parL_congr {A : Type ua} {es es' : List (SExp A)} (hlength : es.length = es'.length) (helem : ∀ (i : ) (x : i < es.length), es[i] = es'[i]) :
        parL es = parL es'
        theorem Isotope.SExp.parL_ofFn {A : Type ua} {length : } (es : Fin lengthSExp A) :
        theorem Isotope.SExp.par_get {A : Type ua} (es : List (SExp A)) :
        par es.get = parL es
        inductive Isotope.SExp.ParF (A : Type ua) (X : Type ux) :
        Type (max ua ux)
        Instances For
          @[simp]
          theorem Isotope.SExp.ParF.unroll_roll {A : Type ua} (e : ParF A (SExp A)) :
          @[simp]
          theorem Isotope.SExp.roll_unrollF {A : Type ua} (e : SExp A) :
          inductive Isotope.SExp.ParL (A : Type ua) (X : Type ux) :
          Type (max ua ux)
          Instances For
            @[simp]
            theorem Isotope.SExp.ParL.unroll_roll {A : Type ua} (e : ParL A (SExp A)) :
            @[simp]
            theorem Isotope.SExp.roll_unrollL {A : Type ua} (e : SExp A) :
            def Isotope.SExp.listInduction {A : Type ua} {motive : SExp ASort ui} (atom : (a : A) → motive (atom a)) (parL : (es : List (SExp A)) → ((i : ) → (x : i < es.length) → motive es[i])motive (parL es)) (e : SExp A) :
            motive e
            Equations
            Instances For
              @[implicit_reducible]
              Equations
              def Isotope.SExp.mapAtom {A : Type ua} {A' : Type u_1} (f : AA') :
              SExp ASExp A'
              Equations
              Instances For
                @[simp]
                theorem Isotope.SExp.mapAtom_id {A : Type ua} (e : SExp A) :
                @[simp]
                theorem Isotope.SExp.mapAtom_mapAtom {A : Type ua} {A' : Type u_2} {A'' : Type u_1} (f : AA') (g : A'A'') (e : SExp A) :
                mapAtom g (mapAtom f e) = mapAtom (g f) e
                def Isotope.SExp.substAtom {A : Type ua} {A' : Type u_1} (f : ASExp A') :
                SExp ASExp A'
                Equations
                Instances For
                  @[simp]
                  theorem Isotope.SExp.substAtom_atom_comp {A : Type ua} {A' : Type u_1} (f : AA') :
                  @[simp]
                  theorem Isotope.SExp.substAtom_atom {A : Type ua} (e : SExp A) :
                  @[simp]
                  theorem Isotope.SExp.substAtom_substAtom {A : Type ua} {A' : Type u_1} {A'' : Type u_2} (f : ASExp A') (g : A'SExp A'') (e : SExp A) :
                  substAtom g (substAtom f e) = substAtom (fun (a : A) => substAtom g (f a)) e
                  @[simp]
                  theorem Isotope.SExp.substAtom_parL {A : Type ua} {A' : Type u_1} (f : ASExp A') (es : List (SExp A)) :
                  @[simp]
                  theorem Isotope.SExp.mapAtom_parL {A : Type ua} {A' : Type u_1} (f : AA') (es : List (SExp A)) :
                  mapAtom f (parL es) = parL (List.map (mapAtom f) es)
                  @[simp]
                  theorem Isotope.SExp.mapAtom_nil {A : Type ua} {A' : Type u_1} (f : AA') :
                  @[simp]
                  theorem Isotope.SExp.substAtom_nil {A : Type ua} {A' : Type u_1} (f : ASExp A') :
                  @[implicit_reducible]
                  Equations
                  • One or more equations did not get rendered due to their size.
                  theorem Isotope.SExp.map_def {A A' : Type ua} (f : AA') (e : SExp A) :
                  f <$> e = mapAtom f e
                  @[simp]
                  theorem Isotope.SExp.map_atom {A A' : Type ua} (f : AA') (a : A) :
                  f <$> atom a = atom (f a)
                  @[simp]
                  theorem Isotope.SExp.map_par {A A' : Type ua} (f : AA') {length : } (es : Fin lengthSExp A) :
                  f <$> par es = par fun (i : Fin length) => f <$> es i
                  @[simp]
                  theorem Isotope.SExp.map_parL {A A' : Type ua} (f : AA') (es : List (SExp A)) :
                  f <$> parL es = parL (mapAtom f <$> es)
                  theorem Isotope.SExp.bind_def {A A' : Type ua} (f : ASExp A') (e : SExp A) :
                  e >>= f = substAtom f e
                  @[simp]
                  theorem Isotope.SExp.bind_atom {A A' : Type ua} (f : ASExp A') (a : A) :
                  atom a >>= f = f a
                  @[simp]
                  theorem Isotope.SExp.bind_par {A A' : Type ua} (f : ASExp A') {length : } (es : Fin lengthSExp A) :
                  par es >>= f = par (es >=> f)
                  @[simp]
                  theorem Isotope.SExp.bind_parL {A A' : Type ua} (f : ASExp A') (es : List (SExp A)) :
                  parL es >>= f = parL ((fun (e : SExp A) => e >>= f) <$> es)
                  def Isotope.SExp.inlAtom {L : Type u_1} {R : Type u_2} :
                  SExp LSExp (L R)
                  Equations
                  Instances For
                    def Isotope.SExp.inrAtom {L : Type u_1} {R : Type u_2} :
                    SExp RSExp (L R)
                    Equations
                    Instances For
                      def Isotope.SExp.cswapAtom {L : Type u_1} {R : Type u_2} :
                      SExp (L R)SExp (R L)
                      Equations
                      Instances For
                        def Isotope.SExp.fstAtom {L : Type u_1} {R : Type u_2} :
                        SExp (L × R)SExp L
                        Equations
                        Instances For
                          def Isotope.SExp.sndAtom {L : Type u_1} {R : Type u_2} :
                          SExp (L × R)SExp R
                          Equations
                          Instances For
                            def Isotope.SExp.pswapAtom {L : Type u_1} {R : Type u_2} :
                            SExp (L × R)SExp (R × L)
                            Equations
                            Instances For
                              def Isotope.SExp.zeroAtom {A : Type ua} {A' : Type u_1} :
                              SExp ASExp A'
                              Equations
                              Instances For
                                @[simp]
                                theorem Isotope.SExp.zeroAtom_atom {A : Type ua} {A' : Type u_1} (a : A) :
                                @[simp]
                                theorem Isotope.SExp.zeroAtom_par {A : Type ua} {A' : Type u_1} {length : } (es : Fin lengthSExp A) :
                                (par es).zeroAtom = par fun (i : Fin length) => (es i).zeroAtom
                                @[simp]
                                theorem Isotope.SExp.zeroAtom_parL {A A' : Type ua} (es : List (SExp A)) :
                                @[simp]
                                theorem Isotope.SExp.zeroAtom_mapAtom {A : Type ua} {A' : Type u_2} {A'' : Type u_1} (f : AA') (e : SExp A) :
                                @[simp]
                                theorem Isotope.SExp.mapAtom_zeroAtom {A : Type ua} {A' : Type u_2} {A'' : Type u_1} (f : A'A'') (e : SExp A) :
                                @[simp]
                                theorem Isotope.SExp.zeroAtom_zeroAtom {A : Type ua} {A' : Type u_2} {A'' : Type u_1} (e : SExp A) :
                                def Isotope.SExp.constAtom {A : Type ua} {C : Type u_1} (c : C) :
                                SExp ASExp C
                                Equations
                                Instances For
                                  @[simp]
                                  theorem Isotope.SExp.constAtom_atom {A : Type ua} {C : Type u_1} (c : C) (x : A) :
                                  @[simp]
                                  theorem Isotope.SExp.constAtom_par {A : Type ua} {C : Type u_1} (c : C) {length : } (es : Fin lengthSExp A) :
                                  constAtom c (par es) = par fun (i : Fin length) => constAtom c (es i)
                                  @[simp]
                                  theorem Isotope.SExp.constAtom_parL {A C : Type ua} (c : C) (es : List (SExp A)) :
                                  @[simp]
                                  theorem Isotope.SExp.constAtom_mapAtom {A : Type ua} {A' : Type u_2} {C : Type u_1} (c : C) (f : AA') (e : SExp A) :
                                  @[simp]
                                  theorem Isotope.SExp.constAtom_constAtom {A : Type u_1} {C : Type u_2} {C' : Type u_3} (c : C) (c' : C') (e : SExp A) :
                                  @[simp]
                                  theorem Isotope.SExp.zeroAtom_constAtom {A : Type ua} {A' : Type u_1} {C : Type u_2} (c : C) (e : SExp A) :
                                  @[simp]
                                  theorem Isotope.SExp.constAtom_zeroAtom {A : Type ua} {A' : Type u_2} {C : Type u_1} (c : C) (e : SExp A) :
                                  @[reducible, inline]
                                  abbrev Isotope.SExp.eraseAtom {A : Type ua} :
                                  Equations
                                  Instances For
                                    @[reducible, inline]
                                    Equations
                                    Instances For