Documentation

Semantic.CC.Denotation.Retype

def CC.interp_var {s : Sig} (env : TypeEnv s) (x : Var Kind.var s) :

Interpret a variable in an environment to get its free variable index.

Equations
Instances For
    structure CC.Retype {s1 s2 : Sig} (env1 : TypeEnv s1) (σ : Subst s1 s2) (env2 : TypeEnv s2) :
    Instances For
      theorem CC.weaken_interp_var {s : Sig} {env : TypeEnv s} {n : } {x : Var Kind.var s} :
      theorem CC.Retype.liftVar {a✝ : Sig} {env1 : TypeEnv a✝} {s2✝ : Sig} {σ : Subst a✝ s2✝} {env2 : TypeEnv s2✝} {x : } (ρ : Retype env1 σ env2) :
      Retype (env1.extend_var x) σ.lift (env2.extend_var x)
      theorem CC.Retype.liftTVar {a✝ : Sig} {env1 : TypeEnv a✝} {s2✝ : Sig} {σ : Subst a✝ s2✝} {env2 : TypeEnv s2✝} {d : PreDenot} (ρ : Retype env1 σ env2) :
      Retype (env1.extend_tvar d) σ.lift (env2.extend_tvar d)
      theorem CC.Retype.liftCVar {a✝ : Sig} {env1 : TypeEnv a✝} {s2✝ : Sig} {σ : Subst a✝ s2✝} {env2 : TypeEnv s2✝} {cs : CaptureSet } (ρ : Retype env1 σ env2) :
      Retype (env1.extend_cvar cs) σ.lift (env2.extend_cvar cs)
      @[irreducible]
      def CC.retype_shape_val_denot {s1 s2 : Sig} {env1 : TypeEnv s1} {σ : Subst s1 s2} {env2 : TypeEnv s2} (ρ : Retype env1 σ env2) (T : Ty TySort.shape s1) :
      Equations
      • =
      Instances For
        def CC.retype_capturebound_denot {s1 s2 : Sig} {env1 : TypeEnv s1} {σ : Subst s1 s2} {env2 : TypeEnv s2} (ρ : Retype env1 σ env2) (B : CaptureBound s1) :
        Equations
        • =
        Instances For
          def CC.retype_resolved_capture_set {s1 s2 : Sig} {env1 : TypeEnv s1} {σ : Subst s1 s2} {env2 : TypeEnv s2} (ρ : Retype env1 σ env2) (C : CaptureSet s1) :
          Equations
          • =
          Instances For
            def CC.retype_captureset_denot {s1 s2 : Sig} {env1 : TypeEnv s1} {σ : Subst s1 s2} {env2 : TypeEnv s2} (ρ : Retype env1 σ env2) (C : CaptureSet s1) :
            Equations
            • =
            Instances For
              @[irreducible]
              def CC.retype_capt_val_denot {s1 s2 : Sig} {env1 : TypeEnv s1} {σ : Subst s1 s2} {env2 : TypeEnv s2} (ρ : Retype env1 σ env2) (T : Ty TySort.capt s1) :
              Equations
              • =
              Instances For
                @[irreducible]
                def CC.retype_exi_val_denot {s1 s2 : Sig} {env1 : TypeEnv s1} {σ : Subst s1 s2} {env2 : TypeEnv s2} (ρ : Retype env1 σ env2) (T : Ty TySort.exi s1) :
                Equations
                • =
                Instances For
                  def CC.retype_capt_exp_denot {s1 s2 : Sig} {env1 : TypeEnv s1} {σ : Subst s1 s2} {env2 : TypeEnv s2} (ρ : Retype env1 σ env2) (T : Ty TySort.capt s1) :
                  Equations
                  • =
                  Instances For
                    @[irreducible]
                    def CC.retype_exi_exp_denot {s1 s2 : Sig} {env1 : TypeEnv s1} {σ : Subst s1 s2} {env2 : TypeEnv s2} (ρ : Retype env1 σ env2) (T : Ty TySort.exi s1) :
                    Equations
                    • =
                    Instances For
                      def CC.Retype.open_arg {s : Sig} {env : TypeEnv s} {y : Var Kind.var s} :
                      Equations
                      • =
                      Instances For
                        Equations
                        • =
                        Instances For
                          Equations
                          • =
                          Instances For