Documentation

Semantic.CC.Syntax.Ty

Type definitions and operations for CC.

inductive CC.TySort :

The sort of a type: capturing, shape, or existential.

Instances For
    inductive CC.CaptureBound :
    SigType

    A capture bound, either unbound or bounded by a capture set. It bounds capture set parameters.

    Instances For
      inductive CC.Ty :
      TySortSigType

      A type in CC, indexed by its sort (capturing, shape, or existential).

      Instances For
        def CC.CaptureBound.rename {s1 s2 : Sig} :
        CaptureBound s1Rename s1 s2CaptureBound s2

        Applies a renaming to a capture bound.

        Equations
        Instances For

          Renaming by the identity renaming leaves a capture bound unchanged.

          Equations
          • =
          Instances For
            theorem CC.CaptureBound.rename_comp {s1 s2 s3 : Sig} {cb : CaptureBound s1} {f : Rename s1 s2} {g : Rename s2 s3} :
            (cb.rename f).rename g = cb.rename (f.comp g)

            Renaming distributes over composition of renamings.

            def CC.Ty.rename {sort : TySort} {s1 s2 : Sig} :
            Ty sort s1Rename s1 s2Ty sort s2

            Applies a renaming to all bound variables in a type.

            Equations
            Instances For
              def CC.Ty.rename_id {sort : TySort} {s : Sig} {T : Ty sort s} :

              Renaming by the identity renaming leaves a type unchanged.

              Equations
              • =
              Instances For
                theorem CC.Ty.rename_comp {sort : TySort} {s1 s2 s3 : Sig} {T : Ty sort s1} {f : Rename s1 s2} {g : Rename s2 s3} :
                (T.rename f).rename g = T.rename (f.comp g)

                Renaming distributes over composition of renamings.

                theorem CC.Ty.weaken_rename_comm {sort : TySort} {s1 s2 : Sig} {k0 : Kind} {T : Ty sort s1} {f : Rename s1 s2} :

                Weakening commutes with renaming under a binder.

                Extracts the capture set from a capturing type.

                Equations
                Instances For

                  A capture bound is closed if it contains no heap pointers.

                  Instances For
                    inductive CC.Ty.IsClosed {sort : TySort} {s : Sig} :
                    Ty sort sProp

                    A type is closed if it contains no heap pointers.

                    Instances For