Documentation

Stlc.context

Equations
Instances For
    Equations
    Instances For
      def in_context (a : ) :
      Equations
      Instances For
        theorem in_context_append_neg (a : ) (Γ : context) (Δ : context) :
        ¬in_context a (Γ ++ Δ)¬in_context a Γ ¬in_context a Δ
        theorem in_context_append_neg' (a : ) (Γ : context) (Δ : context) :
        ¬in_context a Γ ¬in_context a Δ¬in_context a (Γ ++ Δ)
        inductive valid_ctx :
        Instances For
          theorem valid_push (Γ : context) (x : ) (T : Typ) :
          valid_ctx Γ¬in_context x Γvalid_ctx ([(x, T)] ++ Γ)
          theorem valid_remove_mid (Γ : context) (Δ : context) (Ψ : context) :
          valid_ctx (Ψ ++ Δ ++ Γ)valid_ctx (Ψ ++ Γ)
          theorem valid_remove_mid_cons (x : ) (T : Typ) (Γ : context) (Δ : context) :
          valid_ctx (Δ ++ (x, T) :: Γ)valid_ctx (Δ ++ Γ)
          theorem valid_remove_cons (x : ) (T : Typ) (Γ : context) :
          valid_ctx ((x, T) :: Γ)valid_ctx Γ
          def get (x : ) :
          Equations
          Instances For
            def binds (x : ) (T : Typ) (Γ : context) :
            Equations
            Instances For
              theorem binds_singleton (x : ) (T : Typ) :
              binds x T [(x, T)]
              theorem binds_singleton_tail (x : ) (T : Typ) (Γ : context) :
              binds x T ([(x, T)] ++ Γ)
              theorem binds_tail (x : ) (T : Typ) (Γ : context) (Δ : context) :
              binds x T Γ¬in_context x Δbinds x T (Δ ++ Γ)
              theorem binds_head (x : ) (T : Typ) (Γ : context) (Δ : context) :
              binds x T Γbinds x T (Γ ++ Δ)
              theorem binds_concat_inv' (x : ) (T : Typ) (Γ : context) (Δ : context) :
              binds x T (Γ ++ Δ)in_context x Γ ¬binds x T Δbinds x T Γ
              theorem binds_concat_inv (x : ) (T : Typ) (Γ : context) (Δ : context) :
              binds x T (Γ ++ Δ)¬in_context x Γ binds x T Δ binds x T Γ
              theorem binds_singleton_inv (x : ) (y : ) (X : Typ) (Y : Typ) :
              binds x X [(y, Y)]x = y X = Y
              theorem binds_mid (x : ) (T : Typ) (Δ : context) (Γ : context) :
              valid_ctx (Γ ++ [(x, T)] ++ Δ)binds x T (Γ ++ [(x, T)] ++ Δ)
              theorem binds_mid_eq (x : ) (T : Typ) (S : Typ) (Γ : context) (Δ : context) :
              binds x T (Δ ++ [(x, S)] ++ Γ)valid_ctx (Δ ++ [(x, S)] ++ Γ)T = S
              theorem binds_mid_eq_cons (x : ) (T : Typ) (S : Typ) (Γ : context) (Δ : context) :
              binds x T (Δ ++ (x, S) :: Γ)valid_ctx (Δ ++ (x, S) :: Γ)T = S
              theorem binds_in_context (x : ) (T : Typ) (Γ : context) :
              binds x T Γin_context x Γ
              theorem binds_fresh (x : ) (T : Typ) (Γ : context) :
              ¬in_context x Γ¬binds x T Γ
              theorem binds_concat_ok (x : ) (T : Typ) (Γ : context) (Δ : context) :
              binds x T Γvalid_ctx (Δ ++ Γ)binds x T (Δ ++ Γ)
              theorem binds_weaken (x : ) (T : Typ) (Γ : context) (Δ : context) (Ψ : context) :
              binds x T (Ψ ++ Γ)valid_ctx (Ψ ++ Δ ++ Γ)binds x T (Ψ ++ Δ ++ Γ)
              theorem binds_weaken_at_head (x : ) (T : Typ) (Γ : context) (Δ : context) :
              binds x T Δvalid_ctx (Γ ++ Δ)binds x T (Γ ++ Δ)
              theorem binds_remove_mid (x : ) (y : ) (T : Typ) (S : Typ) (Γ : context) (Δ : context) :
              binds x T (Γ ++ ([(y, S)] ++ Δ))x ybinds x T (Γ ++ Δ)
              theorem binds_remove_mid_cons (x : ) (y : ) (T : Typ) (S : Typ) (Γ : context) (Δ : context) :
              binds x T (Δ ++ (y, S) :: Γ)x ybinds x T (Δ ++ Γ)