Documentation

ISAR.Kernel

inductive ISAR.SK :
Instances For
    Equations
    Instances For
      @[implicit_reducible]
      Equations
      inductive ISAR.ITerm :
      Instances For
        def ISAR.instDecidableEqITerm.decEq (x✝ x✝¹ : ITerm) :
        Decidable (x✝ = x✝¹)
        Equations
        Instances For
          @[implicit_reducible]
          Equations
          Equations
          Instances For
            inductive ISAR.SKStep :
            SKSKProp
            Instances For
              inductive ISAR.IStep :
              ITermITermProp
              Instances For
                @[reducible, inline]
                abbrev ISAR.SKRed (a : SK) :
                SKProp
                Equations
                Instances For
                  @[reducible, inline]
                  abbrev ISAR.IRed (a : ITerm) :
                  Equations
                  Instances For
                    def ISAR.NormalSK (t : SK) :
                    Equations
                    Instances For
                      Equations
                      Instances For
                        theorem ISAR.encode_K (x y : ITerm) :
                        IRed (encode SK.K · x · y) x
                        theorem ISAR.encode_S (x y z : ITerm) :
                        IRed (encode SK.S · x · y · z) (x · z · (y · z))
                        theorem ISAR.IRed_app_left {f f' x : ITerm} :
                        IRed f f'IRed (f · x) (f' · x)
                        theorem ISAR.IRed_app_right {f x x' : ITerm} :
                        IRed x x'IRed (f · x) (f · x')
                        theorem ISAR.IRed_app {f f' x x' : ITerm} (hf : IRed f f') (hx : IRed x x') :
                        IRed (f · x) (f' · x')
                        theorem ISAR.simulate_step {t u : SK} :
                        SKStep t uIRed (encode t) (encode u)
                        theorem ISAR.simulate_red {t u : SK} :
                        SKRed t uIRed (encode t) (encode u)
                        inductive ISAR.ISKTerm :

                        Identifies ISAR terms that belong to the pure SKI fragment.

                        Instances For

                          Any term produced by encode belongs to the ISK fragment.

                          inductive ISAR.ParStep :
                          ITermITermProp
                          Instances For
                            theorem ISAR.ParStep_cd (t : ITerm) {u : ITerm} :
                            ParStep t uParStep u (cd t)
                            theorem ISAR.ParStep_diamond {t u₁ u₂ : ITerm} (h₁ : ParStep t u₁) (h₂ : ParStep t u₂) :
                            (v : ITerm), ParStep u₁ v ParStep u₂ v
                            theorem ISAR.IStep_to_ParStep {t u : ITerm} (h : IStep t u) :
                            theorem ISAR.ParStep_to_IRed {t u : ITerm} (h : ParStep t u) :
                            IRed t u
                            theorem ISAR.IRed_confluence {t u₁ u₂ : ITerm} (h₁ : IRed t u₁) (h₂ : IRed t u₂) :
                            (v : ITerm), IRed u₁ v IRed u₂ v
                            theorem ISAR.ISKTerm_preserved {t u : ITerm} (ht : ISKTerm t) (h : IStep t u) :
                            theorem ISAR.ISKTerm_IRed_preserved {t u : ITerm} (ht : ISKTerm t) (h : IRed t u) :
                            theorem ISAR.isar_fragment_confluence {t u₁ u₂ : ITerm} (ht : ISKTerm t) (r₁ : IRed t u₁) (r₂ : IRed t u₂) :
                            (v : ITerm), IRed u₁ v IRed u₂ v ISKTerm v

                            The operational semantics restricted to the ISK fragment is confluent.

                            theorem ISAR.IRed_normal_eq {n v : ITerm} (hn : NormalI n) (h : IRed n v) :
                            n = v
                            theorem ISAR.isar_fragment_unique_normal_forms {t n₁ n₂ : ITerm} (ht : ISKTerm t) (r₁ : IRed t n₁) (hn₁ : NormalI n₁) (r₂ : IRed t n₂) (hn₂ : NormalI n₂) :
                            n₁ = n₂

                            An encoded term in the ISK fragment has at most one normal form.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              inductive ISAR.IStepBasis :
                              ITermITermProp
                              Instances For
                                @[reducible, inline]
                                abbrev ISAR.IRedBasis (a : ITerm) :
                                Equations
                                Instances For
                                  theorem ISAR.IRedBasis_app_left {f f' x : ITerm} :
                                  IRedBasis f f'IRedBasis (f · x) (f' · x)
                                  theorem ISAR.IRedBasis_app_right {f x x' : ITerm} :
                                  IRedBasis x x'IRedBasis (f · x) (f · x')
                                  theorem ISAR.IRedBasis_app {f f' x x' : ITerm} (hf : IRedBasis f f') (hx : IRedBasis x x') :
                                  IRedBasis (f · x) (f' · x')
                                  theorem ISAR.derived_s_beta (x y z : ITerm) :
                                  IRedBasis (derived_s · x · y · z) (x · z · (y · z))
                                  inductive ISAR.NoS :
                                  Instances For
                                    theorem ISAR.IStepBasis_preserves_NoS {t u : ITerm} (h : IStepBasis t u) (ht : NoS t) :
                                    NoS u
                                    theorem ISAR.IRedBasis_preserves_NoS {t u : ITerm} (h : IRedBasis t u) (ht : NoS t) :
                                    NoS u